SQL Server 2005中的外联结用法

网络编程 2021-07-05 16:33www.168986.cn编程入门
这篇文章主要介绍了SQL Server 2005中的外联结用法 ,需要的朋友可以参考下

SQL Server 2005中的外联结用法一

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

学生表

学生选课表

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

标准的SQL语句,外联句为

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

理论上的结果为

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

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

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

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

运行结果为

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

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

这时,运行结果为

 

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

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

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

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

学生表

学生选课表

课程表

 左联结查询举例

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

结果为

右联结查询举例

use stu_course
select sno,course.o,course.ame
from sc right join course
on sc.o=course.o

结果为

全外联结查询举例

use stu_course
select sno,course.o,course.ame
from sc full join course
on sc.o=course.o

结果为

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

use stu_course
select sno,course.o,course.ame
from course full join sc
on sc.o=course.o

结果仍为

由以上例子可以看出

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

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

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

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by