この 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を使用して動的領域クリッピング機能を実装します
最近、Docker を使用して Java アプリケーションをデプロイしていたときに、タイムゾーンが間...
レンダリング下の画像のような効果を実現したい場合は、読み続けてアニメーション画像に直接進んでください...
Docker コンテナは互いに分離されており、相互にアクセスできないことは誰もが知っていますが、依存...
IDEA 2020 で Tomcat を構成する手順は次のとおりです。最初のステップはTomcatを...
1. コマンドの紹介contab (cron テーブル) コマンドは、Windows のスケジュール...
1. まず、nginxの位置情報に関する関連知識を確認しましょう1) 位置マッチング手順: ~ #波...
このチュートリアルでは、LinuxにMySQLをインストールする詳細な手順を参考までに紹介します。具...
グラデーションの背景色を作成するときは、 linear-gradient() 関数を使用して線形グラ...
目次マハ1. MAHアーキテクチャの概要2. 適用可能なシナリオ3. MHAの動作原理4. MHAの...
以下はcentos7での設定方法ですsystemc ソース パッケージをダウンロード: System...
目次01 非表示の列を作成する02 非表示の列に対する基本操作03 非表示の列メタデータ04 主キー...
SSH の正式名称は Secure SHell です。 SSH を使用すると、送信されるすべてのデ...
インデックスとは何ですか?インデックスは、データベース ストレージ エンジンが指定されたデータをすば...
述べる:この記事で扱うデータ量は 100 万です。数千万のデータが必要な場合は、量を増やすだけで済み...
MySQL のデータ フィールドのタイプを定義することは、データベースを最適化するために非常に重要で...