📜  SQL-使用联接(1)

📅  最后修改于: 2023-12-03 14:47:38.815000             🧑  作者: Mango

SQL-使用联接

在关系型数据库中,我们可以通过联接操作将两个或多个表中的信息连接在一起,这样我们就能够在查询结果中获得更为完整的信息。

常见的联接类型包括内连接、左连接、右连接和外连接。

内连接

内连接(INNER JOIN)是最常见的联接类型之一,它只返回两个表中匹配的行,即只返回两个表中都有数据的行。

语法如下:

SELECT <column_name>
FROM <table_name1>
INNER JOIN <table_name2>
ON <table_name1>.<column_name> = <table_name2>.<column_name>

示例:

SELECT orders.order_id, customers.customer_name, orders.order_date
FROM orders
INNER JOIN customers
ON orders.customer_id = customers.customer_id;
左连接

左连接(LEFT JOIN)返回左表中所有的行,以及右表中与左表匹配的行,如果右表中没有与左表匹配的行,则返回null。

语法如下:

SELECT <column_name>
FROM <table_name1>
LEFT JOIN <table_name2>
ON <table_name1>.<column_name> = <table_name2>.<column_name>

示例:

SELECT customers.customer_name, orders.order_date
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id;
右连接

右连接(RIGHT JOIN)返回右表中所有的行,以及左表中与右表匹配的行,如果左表中没有与右表匹配的行,则返回null。

语法如下:

SELECT <column_name>
FROM <table_name1>
RIGHT JOIN <table_name2>
ON <table_name1>.<column_name> = <table_name2>.<column_name>

示例:

SELECT customers.customer_name, orders.order_date
FROM customers
RIGHT JOIN orders
ON customers.customer_id = orders.customer_id;
外连接

外连接(FULL OUTER JOIN)返回左右表中所有的行,如果某一个表中没有相匹配的行,则返回null。

语法如下:

SELECT <column_name>
FROM <table_name1>
FULL OUTER JOIN <table_name2>
ON <table_name1>.<column_name> = <table_name2>.<column_name>

示例:

SELECT customers.customer_name, orders.order_date
FROM customers
FULL OUTER JOIN orders
ON customers.customer_id = orders.customer_id;

以上便是SQL中联接的介绍。