第10课 数据库之多表运用

一、多表查询

1、什么是多表关联查询
从2个表或者更多的表中查询我们需要的数据
2、多表连接的关系?
(1)内连接
(2)左连接
(3)右连接
(4)左独有数据
(5)右独有数据
(6)全外连接
比如: a 表:1,2,3 b 表:1,2,4
内连接:显示左边12和右边12关联 12
左连接:显示左边1,2,3,右 边12 关联 123 4不显示
右连接: 显示右边1,2,4全部显示,左 边12关联 124, 3不显示
左独有数据:显示3
右独有数据:显示4
全外连接:显示1,2,3,4

三、内连接
1、内连接(普通内连接,隐藏内连接)
定义:查询两个表共有的关联的数据
(1)普通内连接:
格式:select * from 表1 inner join 表2 on 表1.关联字段1=表2.关联字段2 ;
案例:select * from dept inner join emp on dept.dept1=emp.dept2 ;

(2)隐藏内连接
格式:select * from 表1 , 表2 where 表1.关联字段1=表2.关联字段2 ;
案例:select * from dept ,emp where dept.dept1=emp.dept2

2、左连接
格式:select * from 表1 left join 表2 on 表1.关联字段1=表2.关联字段2 ;
案例:select * from dept left join emp on dept.dept1=emp.dept2;

3.右连接
格式:select * from 表1 right join 表2 on 表1.关联字段1=表2.关联字段2 ;
案例:select * from dept right join emp on dept.dept1=emp.dept2;

4、左独有数据
格式:select * from 表1 left join 表2 on 表1.关联字段1=表2.关联字段2 where 右表字段 is null ;
案例:select * from dept left join emp on dept.dept1=emp.dept2 wehre name is null;

五、右独有数据
格式:select * from 表1 right join 表2 on 表1.关联字段1=表2.关联字段2 where 左表字段 is null ;
案例:select * from dept right join emp on dept.dept1=emp.dept2 wehre dept1 is null;

六、全外连接 (union)

1内连接+左独有+右独有

select * from dept inner join emp on dept.dept1=emp.dept2
UNION
select * from dept left join emp on dept.dept1=emp.dept2 where name is null
UNION
select * from dept right join emp on dept.dept1=emp.dept2 where dept1 is null;

posted @ 2024-10-28 14:15  何周钦  阅读(6)  评论(0编辑  收藏  举报