集合运算
所谓集合运算,就是对满足同一规则的记录进行的加减等四则运算,通过集合运算,可以得到两张表中记录的集合或者公共记录的集合,又或者其中某张表中的记录的集合。像这样的用来进行集合运算的运算符称为集合运算符。
- 集合运算符 会 除去重复的记录
- 作为运算对象的记录的列数必须相同,相同位置上的列 必须是 同一数据类型
**
UNION
SELECT product_id, product_name
FROM Product
UNION
SELECT product_id, product_name
FROM Product 2;
- 可以使用任何SELECT语句,但 ORDER BY 子句只能在最后使用一次
**
SELECT product_id, product_name
FROM Product
WHERE product_type = ‘厨房用具’
UNION
SELECT product_id, product_name
FROM Product 2
WHERE product_type = ‘厨房用具’
ORDER BY product_id;
包含重复行的 集合运算- ALL选项
**
SELECT product_id, product_name
FROM Product
UNION ALL
SELECT product_id, product_name
FROM Product 2;
选取表中公共部分,结果中只包含两张表中记录的公共部分
**
INTERSECT应用于两张表,选取出它们当中的公共记录
一般不重复记录,希望保留重复行时同样需要使用 INTERSECT ALL
EXCEPT 是从一个圈中 剔除 与另一个圈的相交部分
SELECT product_id, product_name
FROM Product
EXCEPT
SELECT product_id, product_name
FROM Product 2
ORDER BY product_id;
在ORACLE 中则用 MINUS 替代
SELECT product_id, product_name
FROM Product
MINUS
SELECT product_id, product_name
FROM Product 2
ORDER BY product_id;
