SQL Set操作用于组合两个或多个SQL SELECT语句。
设置操作的类型
- 联盟
- UnionAll
- 相交
- 减去
1.联盟
- SQL Union操作用于合并两个或多个SQL SELECT查询的结果。
- 在联合操作中, 在两个应用了UNION操作的表中, 数据类型和列的所有数量必须相同。
- 联合操作从其结果集中消除重复的行。
句法
SELECT column_name FROM table1
UNION
SELECT column_name FROM table2;
例:
第一张桌子
ID | NAME |
---|---|
1 | Jack |
2 | Harry |
3 | Jackson |
第二张桌子
ID | NAME |
---|---|
3 | Jackson |
4 | Stephan |
5 | David |
Union SQL查询将是:
SELECT * FROM First
UNION
SELECT * FROM Second;
结果集表如下所示:
ID | NAME |
---|---|
1 | Jack |
2 | Harry |
3 | Jackson |
4 | Stephan |
5 | David |
2.联合所有
联合所有操作等于联合操作。它不删除重复项和对数据进行排序就返回该集合。
句法:
SELECT column_name FROM table1
UNION ALL
SELECT column_name FROM table2;
示例:使用上面的第一个和第二个表。
Union All查询将类似于:
SELECT * FROM First
UNION ALL
SELECT * FROM Second;
结果集表如下所示:
ID | NAME |
---|---|
1 | Jack |
2 | Harry |
3 | Jackson |
3 | Jackson |
4 | Stephan |
5 | David |
3.相交
- 它用于合并两个SELECT语句。 Intersect操作从两个SELECT语句返回公共行。
- 在“相交”操作中, 数据类型和列的数量必须相同。
- 它没有重复项, 并且默认情况下它按升序排列数据。
句法
SELECT column_name FROM table1
INTERSECT
SELECT column_name FROM table2;
例:
使用上面的第一和第二表。
相交查询将是:
SELECT * FROM First
INTERSECT
SELECT * FROM Second;
结果集表如下所示:
ID | NAME |
---|---|
3 | Jackson |
4.减号
- 它合并了两个SELECT语句的结果。减号运算符用于显示第一个查询中存在但第二个查询中不存在的行。
- 默认情况下, 它没有重复项和数据以升序排列。
句法:
SELECT column_name FROM table1
MINUS
SELECT column_name FROM table2;
例
使用上面的第一和第二表。
减查询将是:
SELECT * FROM First
MINUS
SELECT * FROM Second;
结果集表如下所示:
ID | NAME |
---|---|
1 | Jack |
2 | Harry |
评论前必须登录!
注册