多表操作:
1、 类型:1 对1 ;1对多(主外键);多对多(中间表 )
2、笛卡尔积:
select * from pet p,emp e where p.ren=e.empno
3、子查询( 嵌套查询 ):将查询语句嵌入到某个查询中
例:查询 张三 所拥有的宠物信息
① select p.* from pet p,emp e where p.ren=e.empno and e.ename =‘张三’
② select * from pet where ren =( select empno from emp where ename=‘张三’)
③ select * from pet p, ( select empno from emp where ename=‘张三’) e where p.ren=e.empno
4、内连接 (等值连接): inner join on
例如:select * from emp e inner join pet p ON e.empno=p.ren
6、左连接left join on 左连看左表
例:查看所有员工及其宠物信息
select * from emp e left join pet p ON e.empno=p.ren
即:展示出左面的表中的所有内容,与之相对应的另外一面有匹配的就显示,没有匹配的为null ;
7、右连接right join on
例:select * from pet p right join emp e ON e.empno=p.ren
注: mysql 没有全连接,
union 关键字 可将左连接和右连接合在一起,从而达到全连接的目的;
例:select * from emp e left join pet p ON e.empno=p.ren UNION select * from emp e right join pet p ON e.empno=p.ren
第三十二天
