sql中内连接和外连接的区别

2022-10-05 11:25:41

对于两张表,外连接和内连接的区别在于:

内连接:只显示两表id匹配的
左外连接:显示join左边的表的所有数据(不管两表是否匹配),对于不匹配的部分都用NULL显示
右外连接:与左外连接相反,显示join右边的表的所有数据

我们直接用题来解释。

 假设有两个表stu和exam,该表结构如上,我们要显示所有学生的成绩,那么内连接和外连接的方式分别为(插入数据请自己补全):

create table stu(
Id int,
Name varchar(40))
create table exam(
Id int,
Grade int)

insert into exam values(11,89)

select * from stu
select * from exam

--【显示所有学生的成绩】
--内连接(只显示两表id匹配的)
select stu.id,exam.id,stu.name,exam.grade from stu inner join exam on stu.id=exam.id
--左外连接(显示join左边的表的所有数据,exam只有两条记录,所以stu.id,grade都用NULL显示)
select stu.id,exam.id,stu.name,exam.grade from stu left join exam on stu.id=exam.id
--右外连接(与左外连接相反,显示join右边的表的所有数据)
select stu.id,exam.id,stu.name,exam.grade from stu right join exam on stu.id=exam.id

 对于插入完的数据查询结果应该是这样的:

1.如果用内连接显示所有学生的成绩, 那么他会只显示两表id匹配的

2.对于左外查询,他会显示join左边的表的所有数据,exam只有两条记录,所以stu.id,grade都用NULL显示

3.右连接与左连接相反,显示join右边的表的所有数据

  • 作者:小小的香辛料
  • 原文链接:https://amazingcoder.blog.csdn.net/article/details/89708227
    更新时间:2022-10-05 11:25:41