服务器之家

服务器之家 > 正文

SQL Server 2005中的外联结用法

时间:2020-07-11 17:28     来源/作者:阳阳

SQL Server 2005中的外联结用法一:

有两个表:学生表,学生选课表,表中数据为:

学生表:

SQL Server 2005中的外联结用法

学生选课表:

SQL Server 2005中的外联结用法

要查看所有学生的选课信息,

标准的SQL语句,外联结语句为


use stu_course
select L.sno,sname,ssex,sage,sdept,cno,grade
from student L,sc
where L.sno=sc.sno(*)

理论上的结果为:

SQL Server 2005中的外联结用法

但是,在SQLServer2005中运行会出现错误,错误提示为:

消息 102,级别 15,状态 1,第 4 行
‘*’ 附近有语法错误。 

在SQLServer2005中,相应的T-SQL语句应该为:


use stu_course
select L.sno,sname,ssex,sage,sdept,cno,grade
from student L left join sc
on L.sno=sc.sno

运行结果为:

SQL Server 2005中的外联结用法

同时,还可以在on后面再加上where限定条件:


use stu_course
select L.sno,sname,ssex,sage,sdept,cno,grade
from student L left join sc
on L.sno=sc.sno
where L.sno in(95001,95002,95003,95004)

 

这时,运行结果为:

SQL Server 2005中的外联结用法

以上这个例子是左外联结查询,即:结果表中包含第一个表中所有满足条件的

记录,如果在第二个表中有满足联结条件的记录,则返回相应的值,否则返回NULL

SQLServer2005中的外联结查询用法(续):

有三个表:学生表,学生选课表,课程表,表中数据为:

学生表:

SQL Server 2005中的外联结用法

学生选课表:

SQL Server 2005中的外联结用法

课程表:

SQL Server 2005中的外联结用法

 左联结查询举例:


use stu_course
select L.sno,sname,ssex,sage,sdept,cno,grade
from student L left join sc
on L.sno=sc.sno

 

结果为:

SQL Server 2005中的外联结用法

右联结查询举例:


use stu_course
select sno,course.cno,course.cname
from sc right join course
on sc.cno=course.cno

 

结果为:

SQL Server 2005中的外联结用法

全外联结查询举例:


use stu_course
select sno,course.cno,course.cname
from sc full join course
on sc.cno=course.cno

 

结果为:

SQL Server 2005中的外联结用法

如果将这个全外联中的左右两个表交换顺序:


use stu_course
select sno,course.cno,course.cname
from course full join sc
on sc.cno=course.cno

 

结果仍为:

SQL Server 2005中的外联结用法

由以上例子可以看出:

       对于左外联结,结果表中包含第一个表中所有满足条件的记录,如果在第二个表中有满足联结条件的记录,则返回相应的值,否则返回NULL; 

       对于右外联结,结果表中包含第二个表中所有满足条件的记录,如果在第一个表中有满足联结条件的记录,则返回相应的值,否则返回NULL; 

       对于全外联结,结果表中包含两个表中所有满足条件的记录,如果在其中一个表中有满足联结条件的记录,则返回相应的值,否则返回NULL;

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意 2019-07-07
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
返回顶部