MySQL結合の種類| MySQLが[構文付き]に参加

公開: 2020-12-09

目次

序章

MySQLは、オラクルが支援するオープンソースのリレーショナルデータベース管理システム(RDBMS)です。 MySQLは、共同創設者のMichaelWideniusの娘の名前である「My」とStructuredQueryLanguageの略語である「SQL」の2つの単語で構成されています。

RDBMSのリレーショナルという言葉は、MySQLのJOINSの基本です。 どのデータベースにも、多くの種類と数のテーブルが存在する可能性があります。 名前としてのJOINSは、共通の列を使用してテーブルをリンクすることを示しています。 基本的な例の1つは、表1に従業員の詳細があり、表2にプロジェクトの詳細があることです。

従業員が関与しているプロジェクトを確認する必要がある場合は、従業員名または従業員IDでテーブルを結合できるため、テーブルを結合し、必要なすべての情報を使用して新しい仮想テーブル(保存可能)にアクセスできます。 。

特徴

  • MySQLはオープンソースであり、テーブルのレコードにアクセスして管理するための適切なRDBMSです。
  • データベース管理の分野で非常に一般的なSQLコーディング言語をサポートしています。
  • MySQLは基本的で使いやすいです。 誰かが特定の問題で立ち往生している場合、それは圧倒的な量のドキュメントを持っています。
  • MySQLには非常に強力なセキュリティレイヤーがあります。 パスワードは暗号化されているため、機密データは侵入者から安全です。
  • MySQLはマルチスレッドをサポートしているため、スケーラブルです。 マルチスレッドは、テーブルのサイズが非常に大きい場合でも、クエリの高速実行とデータ操作を行います。
  • MySQLにはクライアント/サーバーアーキテクチャがあります。 データベースサーバーと、サーバーに接続されている多くのクライアント(アプリケーションプログラム)があります。

結合の種類

インナージョイン

内部結合は、MySQLのデフォルトの結合タイプです。 2つのテーブルから一致するレコードを結合して返します。 あるテーブルの各行を別のテーブルと比較し、結合条件をチェックします。 条件が満たされると、両方のテーブルの列を使用して新しい行が作成され、この新しい行が出力に含まれます。

コードスニペット:

SELECTt1 _ emp_id t1.emp_name、t2.project_name

t1としての従業員から

t2としてのINNERJOINプロジェクト

ON t1.project_id = t2 project_id

このクエリには、2つのテーブルがあります。 最初の表は従業員の詳細で構成され、2番目の表は現在進行中のすべてのプロジェクトで構成されています。 上記のクエリを実行した後、MySQLはすべての従業員にそれぞれのプロジェクトの詳細を返します。 ここで、project_id列は、employeeテーブルの外部キーとprojectsテーブルの主キーです。 project_idがない従業員または従業員がいないproject_idは返されません。

左参加

左結合、結合して、2つのテーブルの一致するレコードと、最初のテーブルの一致しないレコードを返します。 左結合は、基本的に、最初のテーブルからの内部結合+一致しないレコードの出力を返します。 これらの一致しない行にも表2の列がありますが、これらの列に一致するデータがないため、これらの列の値はnullになります。

コードスニペット:

SELECTt1 _ emp_id t1.emp_name、t2.project_name

t1としての従業員から

t2としてのLEFTJOINプロジェクト

ON t1.project_id = t2 project_id

このクエリには、2つのテーブルがあります。 最初の表は従業員の詳細で構成され、2番目の表は現在進行中のすべてのプロジェクトで構成されています。 上記のクエリを実行した後、MySQLは、それぞれのプロジェクトの詳細と、project_idが割り当てられていない従業員の詳細を含むすべての従業員を返します。 ここで、project_id列は、employeeテーブルの外部キーとprojectsテーブルの主キーです。

読む: SQLで列名の名前を変更する

右参加

右結合は左結合と非常によく似ていますが、2番目のテーブルの一致しないレコードが出力に含まれ、最初のテーブルの一致するレコードのみが含まれるようになりました。

コードスニペット:

SELECTt1 _ emp_id t1.emp_name、t2.project_name

t1としての従業員から

t2としてのRIGHTJOINプロジェクト

ON t1.project_id = t2 project_id

上記のクエリを実行した後、MySQLはすべての従業員にそれぞれのプロジェクトの詳細と、一致する従業員がいないプロジェクトの詳細を返します。 このような場合、従業員の詳細列はNULLになります。

フルジョイン

名前が示すように、完全結合は一致したレコードと一致しないレコードをすべて返します。 MySQLが目的の列で一致する行を見つけることができる場合、それらのレコードは一致します。 残りの行はNULL値になります。

コードスニペット:

SELECT *

t1としての従業員から

t2としてのFULLOUTERJOINプロジェクト

ON t1.project_id = t2 project_id

上記のクエリを実行した後、MySQLはすべての従業員にそれぞれのプロジェクトの詳細を返します。また、プロジェクトがない従業員と一致する従業員がいないプロジェクトの詳細も返します。 それに応じて、特定の列の値がNULLになります。

クロスジョイン

名前が示すように、クロス結合は、テーブル1の各行をテーブル2のすべての行に結合します。一致する列に関係なく。 したがって、各テーブルに5つのレコードがある場合、すべての行が別の行と一致するため、出力には25行が含まれます。

コードスニペット:

SELECT *

t1としての従業員から

t2としてのCROSSJOINプロジェクト

上記のクエリを実行した後、MySQLはすべてのプロジェクトの詳細を含むすべての従業員を返します。 この情報を視覚化することはあまり意味がありませんが、クロス結合は重要であり、いくつかの特別な特定の場合に必要です。

また読む: SQLインタビューの質問と回答

世界のトップ大学のソフトウェアエンジニアリングコースに登録します。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

結論

JOINSは、データ抽出の重要な部分です。 これらは、ユーザーのニーズに応じてさまざまなテーブルのデータを組み合わせるのに役立ちます。 JOINSの唯一の欠点は、書き込みが複雑になる場合があることです。 結局のところ、JOINSは非常に便利であり、さまざまなタイプの結合をMySQLに実装できます。

全体として、この記事に記載されているすべてのデータベースを学び、実践的に実践することで、経験を積むことができます。 コースの概要、学習、それに関連する仕事の機会を確認してください。upGradのようなプラットフォームは、Executive PG Program FullStackDevelopmentのIIIT-Bのような評判の高い機関によって設計されたパワー満載のコースを提供します。

未来のキャリアに備える

ソフトウェアエンジニアリングの修士号を今すぐ申し込む