下面是 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实现连接与合并查询 - Python技术站