SQL基础教程第七章集合运算
SQL基础教程第七章集合运算
Hoshea Zhang表的加减法
UNION
1 | SELECT product_id,product_name |
结果是两个表的并集
注意事项
- 作为运算对象的记录的列数必须相同,否则会发生错误
- 作为运算对象的记录中的列的类型必须保持一致
- 可以使用任何SELECT语句,但是ORDER BY只能在最后使用一次
ALL
包含重复行的运算
1 | SELECT product_id,product_name |
INTERSECT
求交集
1 | SELECT product_id,product_name |
EXCEPT
差集
1 | SELECT product_id,product_name |
上面的sql语句,获得的数据为product表中减去product2表中有的数据,即两表顺序交换的结果不同
联结
上一节讲的是行方向的操作,即行数被增减,这么做不会导致列数的改变,本节讲的就是列数的改变
内联结 INNER JOIN
1 | SELECT SP.shop_id,SP.shop_name,P.product_id |
- FROM 里面有两张表
- ON 联结条件,必须写在FROM和WHERE中间
- SELECT 为了避免混乱,都应该写成表名.列名的格式
外联结 OUTER JOIN
1 | SELECT SP.shop_id, SP.shop_name, SP.product_id, P.product_name, P.sale_price |
- 注意左外联结还是右外联结,只要倒换表的顺序,那么左改成右结果也是一样的