SQL集合操作

广告位

SQL集合操作用于组合两个或多个SQL SELECT语句。 集合操作的类型 联合 – Union …

SQL集合操作用于组合两个或多个SQL SELECT语句。

集合操作的类型

  • 联合 – Union
  • 联合所有 – UnionAll
  • 交集 – Intersect
  • 差集 – Minus

联合 – Union

SQL Union操作用于组合两个或多个SQL SELECT查询的结果。在union操作中,在应用UNION操作的两个表中,所有数据类型和列的数量必须相同。union操作从结果集中删除重复的行。

语法

SELECT column_name FROM table1   UNION   SELECT column_name FROM table2; 

假设有两个表,第一个表:First 的结构和数据如下 –

ID NAME
1 Jack
2 Harry
3 Jackson

第二个表:Second 的结构和数据如下 –

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. 全联合 – Union All

Union All操作等于Union操作。它返回集合但不删除重复和排序数据。

语法:

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; 

示例:

使用上面的First表和Second表。

相交查询语句是:

SELECT * FROM First    INTERSECT   SELECT * FROM Second; 

执行上面查询语句,得到以下结果:

ID    NAME ---------------------------------- 3    Jackson 

4. 差集

它结合了两个SELECT语句的结果。 差集运算符用于显示第一个查询中存在但第二个查询中不存在的行。它没有重复项,默认情况下按升序排列数据。

语法:

SELECT column_name FROM table1   MINUS   SELECT column_name FROM table2; 

示例

使用上面的First表和Second表。

差积查询语句是:

SELECT * FROM First    MINUS   SELECT * FROM Second; 

执行上面查询语句,得到以下结果:

ID    NAME ------------------------------------ 1    Jack 2    Harry 

哥,这回真没有了

贺, 贺朝

关于作者: 贺朝

为您推荐