问答一下,轻松解决,电脑应用解决专家!
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win10/Win11
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascriptLinux系统
PHP教程CSS教程XML教程

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

更新时间:2021-09-08 15:32 作者:小小的香辛料点击:

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

内连接:只显示两表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右边的表的所有数据

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容