集合运算
1.1表的加法union
1、SELECT product_id, product_name
FROM product
UNIONSELECT product_id, product_name
FROM product2;
UNION 等集合运算符通常都会除去重复的记录.
2、对于同一个表的两个不同的筛选结果集, 使用 UNION 对两个结果集取并集, 和把两个子查询的筛选条件用 OR 谓词连接, 会得到相同的结果, 但倘若要将两个不同的表中的结果合并在一起, 就不得不使用 UNION 了。而且, 即便是对于同一张表, 有时也会出于查询效率方面的因素来使用 UNION.
select * from product where sale_price>500 union select * from product 2 where sale_price>500 ;
3、union all 就可以保留重复行
1.2join连接
1、连结(JOIN)就是使用某种关联条件(一般是使用相等判断谓词"="), 将其他表中的列添加过来, 进行“添加列”的集合运算. 可以说,连结是 SQL 查询的核心操作, 掌握了连结, 能够从两张甚至多张表中获取列, 能够将过去使用关联子查询等过于复杂的查询简化为更加易读的形式, 以及进行一些更加复杂的查询.
2、内连接的基本语法:SELECT SP.shop_id
,SP.shop_name
,SP.product_id
,P.product_name
,P.product_type
,P.sale_price
,SP.quantity
FROM shopproduct AS SP
INNER JOIN product AS P
ON SP.product_id = P.product_id;
使用内连结需要注意的问题:
1、进行连结的时候需要在from子句中使用多张表
2、必须使用 ON 子句来指定连结条件.
3、SELECT 子句中的列最好按照 表名.列名 的格式来使用.
3.1外连结要点1:选取中表中全部信息
2、使用left、right来指定主表
(等写完作业之后再来好好补一下笔记)