沃梦达 / 编程技术 / 数据库 / 正文

SQL SERVER实现连接与合并查询

下面是 SQL SERVER 实现连接与合并查询的完整攻略:

下面是 SQL SERVER 实现连接与合并查询的完整攻略:

连接查询

内连接查询

内连接查询可以根据两个表之间的共同字段来匹配两个表的数据。内连接查询可以通过 SQL 中的 JOIN 关键字实现。语法如下:

SELECT column_name(s)
FROM table_name1
JOIN table_name2
ON table_name1.column_name = table_name2.column_name;

例如,假设有两个表:学生表(students)和成绩表(scores)。

示例1:

SELECT students.name, scores.score
FROM students
JOIN scores
ON students.id = scores.student_id;

这个查询会返回所有学生的姓名和成绩。

外连接查询

外连接查询可以根据两个表之间的共同字段来匹配两个表的数据。和内连接不同的是,外连接查询还可以返回没有匹配项的数据。外连接查询可以通过 SQL 中的 LEFT JOIN、RIGHT JOIN 或 FULL JOIN 关键字实现。语法如下:

SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name = table_name2.column_name;

上面的 LEFT JOIN 是左外连接,其他两个关键字分别是右外连接和全外连接。

示例2:

假设有两个表:客户表(customers)和订单表(orders)。

SELECT customers.customer_name, orders.order_number
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id;

这个查询会返回所有客户的姓名和订单号,如果某个客户没有订单,则订单号列会是 NULL。

合并查询

UNION 操作符

UNION 操作符可以将两个或多个表中相同的列组合在一起,返回唯一且不重复的行。语法如下:

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2;

示例3:

假设有两个表:表1(table1)和表2(table2)具有相同的结构,且都有列 col1、col2 和 col3。

SELECT col1, col2, col3 FROM table1
UNION
SELECT col1, col2, col3 FROM table2;

这个查询会返回 table1 和 table2 中所有的唯一数据行。

UNION ALL 操作符

UNION ALL 操作符和 UNION 操作符类似,只不过它会返回所有的行,包括重复的行。语法如下:

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2;

示例4:

使用 UNION ALL 操作符合并两个表的数据。

SELECT 'table1' AS tablename, col1, col2, col3 FROM table1
UNION ALL
SELECT 'table2' AS tablename, col1, col2, col3 FROM table2;

这个查询会返回所有的数据行,包括重复的行,并在结果中增加一个名为 tablename 的列,用于区分数据来自哪个表。

本文标题为:SQL SERVER实现连接与合并查询

基础教程推荐