当前位置:操作系统 > Unix/Linux >>

数据库中内连接、外连接、全连接


数据库中内连接、外连接、全连接
 
内连接:把两个表中数据对应的数据查出来 
外连接:以某个表为基础把对应数据查出来(全连接是以多个表为基础) 
 
student表 
no name 
1 a 
2 b 
3 c 
4 d 
 
grade表 
no grade 
1 90 
2 98 
3 95 
  www.zzzyk.com  
内连接 inner join(查找条件中对应的数据,no4没有数据不列出来) 
语法:select * from student inner join grade on student.no = grade.no 
结果 
student.no name grade.no grade 
1 a 1 90 
2 b 2 98 
3 c 3 95 
 
左连接(左表中所有数据,右表中对应数据,即左边一定有数据,右边不一定有) 
语法:select * from student left join grade on student.no = grade.no 
结果: 
student.no name grade.no grade 
1 a 1 90 
2 b 2 98 
3 c 3 95 
4 d 
 
右连接(右表中所有数据,左表中对应数据,即右边一定有,左边不一定有) 
语法:select * from student right join grade on student.no = grade.no 
结果: 
student.no name grade.no grade 
1 a 1 90 
2 b 2 98 
3 c 3 95 
全外连接(表中数据=内连接+左边缺失数据+右边缺失数据)
  www.zzzyk.com  
语法:select * from student full join grade on student.no = grade.no 
结果: 
no name grade 
1 a 90 
2 b 98 
3 c 95 
4 d 
1 a 90 
2 b 98 
3 c 95 
 
交叉连接 (没有where字句时结果为笛卡尔积) 一般不用。
 
注:access 中不能直接使用full join ,需要使用union all 将左连接和右连接合并后才可以
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,