SQL結合とはSQL結合の種類
この記事はクリスティーナKopeckyによって書かれ、もともと教育的な、株式会社で公開されました.
構造化クエリ言語(SQL)では、リレーショナルデータベース内の単一のテーブルに対して何らかの種類のアクションを実行できます.これらのアクションは、そのテーブル内のレコードを更新、作成、削除または選択できます.
私たちが同じ人についての異なった情報を持っていた2つのテーブルを持っていたならば、我々はその人の請求書に表示するためにその情報のすべてを使用したいですか?そのためにはjoin節を使う必要があります.
このチュートリアルでは、Join句がどのようなものであるかを定義し、結合句の種類について話をし、それぞれについての結合例をあげます. What are SQL Joins? Types of SQL Joins Inner Joins Right Joins Left Joins Full Joins What to learn next
SQL Joinステートメントでは、複数のテーブルから情報を一度にアクセスできます.また、データベースを正常化します.正規化により、データの冗長性を低く保つことができ、レコードの削除や更新時にアプリケーションのデータ異常量を減らすことができます.
お客様とお客様のご注文をご説明の上、上記の例をご利用ください.お客様とお客様に関する情報をお持ちのお客様テーブルをお持ちの場合は、次のようにします.
これらのテーブルでは、両方のテーブルに同じ情報がたくさんあることに注意してください.join文は、これらの複製値の必要性を大いに減らします.新しいテーブルは次のようになります.
我々は、顧客テーブルから情報を選択するために結合句を使用してデータベースを照会することができますし、注文テーブルからの情報は、我々のアプリケーションに必要な場所を使用します.
あなたのニーズに応じて結合ステートメントのいくつかの異なるタイプがあります.次のセクションでは、各タイプの例を見ていきます.
使用するjoinステートメントの型はユースケースによって異なります.結合演算の4種類があります.
( internal ) join :両方のテーブルに対応する値を持つデータセットを返す
left (外部) join :左のテーブルからのレコードと、右からのレコードを返します.
右(外側)結合:右のテーブルからのレコードと左からのマッチしたレコードを全て返す
フル(外部)結合:左テーブルまたは右テーブルのいずれかにマッチがある場合、すべてのレコードを返す
あなたがVenn図で別々の円として各々のテーブルを考えるならば、内部の結合は両方の円が交差する陰影のついた地域です.
内部結合キーワードは、結合条件が満たされる限り、テーブルからすべての行を選択します.このキーワードは、共通のフィールドが存在するテーブルからの結合された行からなる結果セットを作成します.
以下は内部結合の構文です:
このjoinステートメントはテーブルBからのすべてのレコードを取ります.
右Joinは、一番右のテーブルの行と、一番左のテーブルに対応する行のすべての行を返します.右の結合は、右の外側としても知られています.以下に構文を示します:
left joinは右結合に似ています.left joinは、右側のテーブルの一番左のテーブルと一致する行のすべての行を返します.以下は構文です:
完全な結合は、完全な外部結合としても知られています.これは基本的にクエリがデータと戻りレコードを両方のテーブルから結合することを意味します.
Full Joinは、すべての行を含む左右の結合の結果を組み合わせて結果セットを作成します.を返します.結果セット(結合テーブル)はnull値を示します.構文は以下の通りです.
SQLでの結合方法の学習に関する問題.この単純なスキルを完全に多くのあなたのSQLをコーディングすることができます.しかし、まだ学ぶことがもっとあります.次のステップは クロス結合 ワイルドカードとの結合 外部キーに結合 高度SQL
ハッピーラーニング!
What are database schemas? 5 minute guide with examples
What is a Database Query? SQL and NoSQL queries explained
Database Design Tutorial
構造化クエリ言語(SQL)では、リレーショナルデータベース内の単一のテーブルに対して何らかの種類のアクションを実行できます.これらのアクションは、そのテーブル内のレコードを更新、作成、削除または選択できます.
私たちが同じ人についての異なった情報を持っていた2つのテーブルを持っていたならば、我々はその人の請求書に表示するためにその情報のすべてを使用したいですか?そのためにはjoin節を使う必要があります.
このチュートリアルでは、Join句がどのようなものであるかを定義し、結合句の種類について話をし、それぞれについての結合例をあげます.
SQL結合とは
SQL Joinステートメントでは、複数のテーブルから情報を一度にアクセスできます.また、データベースを正常化します.正規化により、データの冗長性を低く保つことができ、レコードの削除や更新時にアプリケーションのデータ異常量を減らすことができます.
Simplified: A JOIN clause allows us to combine rows from two or more tables based on a related column.
お客様とお客様のご注文をご説明の上、上記の例をご利用ください.お客様とお客様に関する情報をお持ちのお客様テーブルをお持ちの場合は、次のようにします.
これらのテーブルでは、両方のテーブルに同じ情報がたくさんあることに注意してください.join文は、これらの複製値の必要性を大いに減らします.新しいテーブルは次のようになります.
我々は、顧客テーブルから情報を選択するために結合句を使用してデータベースを照会することができますし、注文テーブルからの情報は、我々のアプリケーションに必要な場所を使用します.
あなたのニーズに応じて結合ステートメントのいくつかの異なるタイプがあります.次のセクションでは、各タイプの例を見ていきます.
結合文の型
使用するjoinステートメントの型はユースケースによって異なります.結合演算の4種類があります.
( internal ) join :両方のテーブルに対応する値を持つデータセットを返す
left (外部) join :左のテーブルからのレコードと、右からのレコードを返します.
右(外側)結合:右のテーブルからのレコードと左からのマッチしたレコードを全て返す
フル(外部)結合:左テーブルまたは右テーブルのいずれかにマッチがある場合、すべてのレコードを返す
インナージョンズ
あなたがVenn図で別々の円として各々のテーブルを考えるならば、内部の結合は両方の円が交差する陰影のついた地域です.
内部結合キーワードは、結合条件が満たされる限り、テーブルからすべての行を選択します.このキーワードは、共通のフィールドが存在するテーブルからの結合された行からなる結果セットを作成します.
以下は内部結合の構文です:
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
この例では、null値を持つエントリをすべて削除します.ここでのコードは簡略化されています.どうぞご覧下さいoriginal post 完全なコードのために.create table Customers (
customer_id INT,
first_name VARCHAR(50),
last_name VARCHAR(50),
address VARCHAR(50),
city VARCHAR(50),
state VARCHAR(50),
zip_code VARCHAR(50),
email VARCHAR(50),
PRIMARY KEY(customer_id)
);
insert into Customers (customer_id, first_name, last_name, address, city, state, zip_code, email) values (1, 'Windham', 'McKevitt', '73 Namekagon Park', 'Washington', 'DC', '20525', '[email protected]');
create table Orders (
order_id INT,
order_date VARCHAR(50),
amount VARCHAR(50),
customer_id INT,
PRIMARY KEY(order_id)
);
insert into Orders (order_id, order_date, amount, customer_id) values (34, '07-11-2020', '$56.34', 1);
select first_name, last_name, order_date, amount
from Customers c
inner join Orders o
on c.customer_id = o.customer_id
ORDER BY order_date
右外部結合
このjoinステートメントはテーブルBからのすべてのレコードを取ります.
右Joinは、一番右のテーブルの行と、一番左のテーブルに対応する行のすべての行を返します.右の結合は、右の外側としても知られています.以下に構文を示します:
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
ここでは、お客様のテーブルはテーブルAであり、受注テーブルはテーブルBです.どうぞご覧下さいoriginal post 完全なコードのために.create table Customers (
customer_id INT,
first_name VARCHAR(50),
last_name VARCHAR(50),
address VARCHAR(50),
city VARCHAR(50),
state VARCHAR(50),
zip_code VARCHAR(50),
email VARCHAR(50),
PRIMARY KEY(customer_id)
);
insert into Customers (customer_id, first_name, last_name, address, city, state, zip_code, email) values (1, 'Windham', 'McKevitt', '73 Namekagon Park', 'Washington', 'DC', '20525', '[email protected]');
create table Orders (
order_id INT,
order_date VARCHAR(50),
amount VARCHAR(50),
customer_id INT,
PRIMARY KEY(order_id)
);
insert into Orders (order_id, order_date, amount, customer_id) values (34, '07-11-2020', '$56.34', 1);
select first_name, last_name, order_date, amount
from Customers c
right join Orders o
on c.customer_id = o.customer_id
ORDER BY order_date;
左側外部結合
left joinは右結合に似ています.left joinは、右側のテーブルの一番左のテーブルと一致する行のすべての行を返します.以下は構文です:
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
この例では、Customersテーブルからのすべてのレコードが(Ordersテーブルの)一致する列に沿って表示されます.ここでのコードは簡略化されています.どうぞご覧下さいoriginal post 完全なコードのために.create table Customers (
customer_id INT,
first_name VARCHAR(50),
last_name VARCHAR(50),
address VARCHAR(50),
city VARCHAR(50),
state VARCHAR(50),
zip_code VARCHAR(50),
email VARCHAR(50),
PRIMARY KEY(customer_id)
);
insert into Customers (customer_id, first_name, last_name, address, city, state, zip_code, email) values (1, 'Windham', 'McKevitt', '73 Namekagon Park', 'Washington', 'DC', '20525', '[email protected]');
create table Orders (
order_id INT,
order_date VARCHAR(50),
amount VARCHAR(50),
customer_id INT,
PRIMARY KEY(order_id)
);
insert into Orders (order_id, order_date, amount, customer_id) values (34, '07-11-2020', '$56.34', 1);
select first_name, last_name, order_date, amount
from Customers c
left join Orders o
on c.customer_id = o.customer_id
ORDER BY order_date;
完全な結合
完全な結合は、完全な外部結合としても知られています.これは基本的にクエリがデータと戻りレコードを両方のテーブルから結合することを意味します.
Full Joinは、すべての行を含む左右の結合の結果を組み合わせて結果セットを作成します.を返します.結果セット(結合テーブル)はnull値を示します.構文は以下の通りです.
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;
Note: Full joins are not typically used, which may explain why MySQL doesn’t have support for one. There are some use cases, however.
For example, with view entries where an order is not associated with a customer, or a customer that has not made any orders.
次に学ぶこと
SQLでの結合方法の学習に関する問題.この単純なスキルを完全に多くのあなたのSQLをコーディングすることができます.しかし、まだ学ぶことがもっとあります.次のステップは
Want more blogs? Sign up for our Blog Newsletter for bi-monthly collections of coding tips, top articles, featured writers, and more.
ハッピーラーニング!
SQLについての続きを読む
Reference
この問題について(SQL結合とはSQL結合の種類), 我々は、より多くの情報をここで見つけました https://dev.to/educative/what-are-sql-joins-types-of-sql-joins-explained-5ci5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol