この 2 日間、私はトピックの趣向を変えて、パイチャートの原理といくつかのグラフィックス制作について皆さんに教えました。今日は引き続きMySQLの学習シリーズに戻り、皆さんと一緒にMySQLデータベースの学習を続けていきます。 マルチテーブルクエリは、データアナリストが日常業務で必ず使用する知識ポイントであり、その重要性がわかります。今日の記事では、MySQL のマルチテーブルクエリのいくつかの状況を包括的にまとめています。MySQL の 92 構文と 99 構文をご存知ですか?等価結合と非等価結合についてご存知ですか?特定の知識ポイントはほとんど使われないから、それを知る必要はないと考えないでください。実際、そうではありません。少なくとも、他の人がそれについて書いた後であれば、それが何を意味するのかはわかるはずです。 1. デカルト積現象結果は次のとおりです。 分析は次のとおりです。 テーブル結合条件を追加した後: デカルト積によって最終的に生成されるレコード数は、2 つのテーブルのデータの積であることがわかります。結合クエリを使用しない場合、2 つのテーブルのデータが特に大きいと、メモリが爆発してひどい状態になるため、結合クエリの使用方法を学ぶ必要があります。 2. 接続クエリの知識ポイントのまとめ1) 結合クエリとは何ですか?実際の開発では、ほとんどの場合、単一のテーブルからデータを照会するのではなく、複数のテーブルをまとめて照会して最終結果を取得します。つまり、実際のビジネスでは、ビジネスも複数のテーブルで構成されており、異なるテーブルには異なる情報が格納されています。取得したい情報が複数のテーブルから取得される場合は、結合クエリを使用する必要があります。 2) 接続クエリの分類①時代による分類 MySQL は完全結合をサポートしていないため、完全結合機能を完了するには通常、union キーワードが使用されます。 MySQL のクロス結合はクロス結合であり、めったに使用されないので、気にする必要はありません。 sq192 標準: 内部結合のみサポートされます。 sq199 標準 [推奨]: 内部結合 + 外部結合 (左外部結合と右外部結合のみ) + クロス結合のみがサポートされます。 ② 機能別に分類された内部結合: 等価結合、非等価結合、自己結合。外部結合: 左外部結合、右外部結合、完全外部結合。 3. 内部接続の説明元データは以下のとおりです。 1) 等接続:接続条件が対等な関係であることが最大の特徴です。演習: 従業員名と対応する部門名を照会します。 sql92 の構文は次のとおりです: (古すぎるため、一般的には使用されません。見たときに意味を理解するだけです。) sql99 構文: (よく使用される) 2) sql92 構文と sql99 構文の違い。-- sql92 構文 select ename,dname emp、deptから ここで、emp.deptno=dept.deptno; -- sql99 構文 select ename,dname emp(内部)から部門に参加 emp.deptno=dept.deptno の場合; -- sql92 構文と sql99 構文の違い 1) カンマ (",") は (内部) 結合に置き換えられます。 2) 「where」を「on」に置き換えます。 注: inner は省略できます。inner を記述すると、コードの可読性が向上します。 --sql99 構文の利点は、テーブル接続とその後の where 条件スクリーニングが分離されていることです。 sql92 構文では、where はテーブル結合に使用され、where は where フィルタリングにも使用されますが、これらが混同され、不明瞭になっています。 3) 非等価接続:接続条件が非等価関係であることが最大の特徴です。演習: 各従業員の給与等級を調べ、従業員名、給与、給与等級を表示します。 4) 自己結合:最大の特徴は、1 つのテーブルが 2 つのテーブルとして扱われることです。1 つのテーブルを 2 つのテーブルとして扱うとはどういう意味ですか?つまり、自己結合は同じテーブル間の結合であり、結合条件はこのテーブル内の異なるフィールドです。 人間と機械の最大の違いは、人間には判断力があるということです。人間はテーブルのさまざまなフィールドを区別して使用する方法を知っていますが、機械は知りません。それらはすべて同じテーブルであり、フィールド名もすべて同じです。では、機械はどのようにして(同じテーブルに対して)どのテーブルがどのテーブルであるかを区別できるのでしょうか。 これにはエイリアスが必要です。同じテーブルに、機械が簡単に区別できるように、1 つを A、もう 1 つを B という 2 つの名前を付けます。テーブル A からフィールドを取得する場合は「A. フィールド」、テーブル B からフィールドを取得する場合は「B. フィールド」になります。 演習: 各従業員の上司を調べ、従業員名と対応する上司名を表示します。 4. 外部接続の説明元データは以下のとおりです。 1) 外部結合とは何ですか? 内部結合とどう違うのですか?① 内部結合 テーブル A と B が接続され、内部結合が使用されていると仮定すると、テーブル A と B に一致するすべてのレコードが照会されます。これが内部結合です。メイン テーブル AB とセカンダリ テーブル AB の間には区別はなく、2 つのテーブルは同じです。 ② 外部接続 テーブル A とテーブル B が外部結合を使用して接続されており、2 つのテーブル AB のうちの 1 つがプライマリ テーブルで、もう 1 つがセカンダリ テーブルであるとします。プライマリ テーブルのデータが主にクエリされ、セカンダリ テーブルは付随的にクエリされます。セカンダリ テーブルのデータとプライマリ テーブルのデータとが一致しない場合、セカンダリ テーブルは自動的に NULL をシミュレートして一致させます。 外部結合の最も重要な機能は、メイン テーブル内のすべてのデータを無条件にクエリできることです。 2) 外部結合の分類左結合を右結合として記述する方法があり、対応する右結合を左結合として記述する方法があります。したがって、MySQL を学習する過程で、左結合と右結合の両方を学習する必要はありません。 左外部結合 (左結合): 左側のテーブルがメイン テーブルであることを示します。右外部結合 (右結合): 右側のテーブルがメイン テーブルであることを示します。 3) 事例分析 演習: どの部門に従業員がいないのか調べてください。 上記は、MySQLシリーズのマルチテーブル結合クエリ92および99構文例の詳細チュートリアルの詳細内容です。MySQLクエリ構文の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: ページコンテンツ全体を中央に配置して、高さがコンテンツに合わせて自動的に拡張されるようにする方法
>>: JSはclip-pathを使用して動的領域クリッピング機能を実装します
01. コンパイルオプションとカーネルコンパイルLinux カーネル (英語: linux kern...
最初のステップはmysqlコンテナを作成することです docker exec -it コンテナID ...
Docker をインストールし、Docker コアとインストールを通じて簡単な操作を実行できます。 ...
この記事では主に、MySQL でテーブルを削除する 3 つの操作、つまり delete ステートメン...
導入MySQL データベースを使用する場合、int を主キーとして使用し、自動インクリメントに設定す...
目次1. Cocos Creatorでのオーディオ再生の基本1. 基本2. 一般的な方法2. Coc...
目次1. この Web サイトには SQL インジェクションの脆弱性がある可能性があることが判明しま...
序文ルーティングの管理は、ほとんどのシングルページ アプリケーションにとって不可欠な機能です。 Vu...
MySQL データベースには増分バックアップ メカニズムはありませんが、マスター データベース内のす...
世界で最も有名なウェブサイトのロゴデザインにはどんなフォントが使われているかご存知ですか?これらのフ...
1. 概要mysql-monitor MYSQL 監視ツール、最適化ツール、1 つの Java Sp...
概要最近MySQL関連の知識を勉強し始めました。学んだ知識ポイントと自分の理解を元に整理して共有しま...
導入Redis を詳しく説明する必要はありません。インストールと設定を始めましょう。インストールソー...
MySQL ログイン パスワードを忘れた場合、解決方法は実はとても簡単です。MySQL メイン構成フ...
1. 仮想マシンに共有フォルダを設定します。 1. 処理する仮想マシンを選択し、右クリックして設定...