欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-06-04 08:53:48
...

数据库中内连接、外连接、全连接 内连接:把两个表中数据对应的数据查出来 外连接:以某个表为基础把对应数据查出来(全连接是以多个表为基础) student表 no name 1 a 2 b 3 c 4 d grade表 no grade 1 90 2 98 3 95 www.2cto.com 内连接 inner join(查找条


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

内连接:把两个表中数据对应的数据查出来

外连接:以某个表为基础把对应数据查出来(全连接是以多个表为基础)

student表

no name

1 a

2 b

3 c

4 d

grade表

no grade

1 90

2 98

3 95

www.2cto.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.2cto.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 将左连接和右连接合并后才可以