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(*)
理论上的结果为:

但是,在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
运行结果为:

同时,还可以在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)
这时,运行结果为:
以上这个例子是左外联结查询,即:结果表中包含第一个表中所有满足条件的
记录,如果在第二个表中有满足联结条件的记录,则返回相应的值,否则返回NULL
SQLServer2005中的外联结查询用法(续):
有三个表:学生表,学生选课表,课程表,表中数据为:
学生表:

学生选课表:

课程表:

左联结查询举例:
use stu_course select L.sno,sname,ssex,sage,sdept,cno,grade from student L left join sc on L.sno=sc.sno
结果为:

右联结查询举例:
use stu_course select sno,course.cno,course.cname from sc right join course on sc.cno=course.cno
结果为:

全外联结查询举例:
use stu_course select sno,course.cno,course.cname from sc full join course on sc.cno=course.cno
结果为:

如果将这个全外联中的左右两个表交换顺序:
use stu_course select sno,course.cno,course.cname from course full join sc on sc.cno=course.cno
结果仍为:

由以上例子可以看出:
对于左外联结,结果表中包含第一个表中所有满足条件的记录,如果在第二个表中有满足联结条件的记录,则返回相应的值,否则返回NULL;
对于右外联结,结果表中包含第二个表中所有满足条件的记录,如果在第一个表中有满足联结条件的记录,则返回相应的值,否则返回NULL;
对于全外联结,结果表中包含两个表中所有满足条件的记录,如果在其中一个表中有满足联结条件的记录,则返回相应的值,否则返回NULL;
- PHP连接sql server 2005环境配置及问题解决
- PHP连接SQLServer2005方法及代码
- SQLServer2005安装提示服务无法启动原因分析及解决
- SqlServer2005 数据库同步配置图文详解
- sqlserver2005使用row_number() over分页的实现方法
- SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法
- sqlserver2005 安装图解教程以及SQL 2005 SP3补丁安装图文教程
- Sql Server 2005 默认端口修改方法
- SQL Server 2005 还原数据库错误解决方法
- SQL Server 2005 企业版没有 Management Studio管理工具的解决方法
- 零基础学SQL Server 2005 电子教程/随书光盘迅雷下载地址
- Sql Server 2005的1433端口打开局域网访问和进行远程连接
相关文章
Win2008中安装的MSSQL2005后无法访问的解决方法
最近笔者一直在使用Win2008系统,不过发现一个很奇怪的问题,那就是在该系统上安装了SQL2005后,再在其他计算机访问该主机显示不能访问2014-07-07
sql2005 数据库转为sql2000数据库的方法(数据导出导入)
今天一网友问我如何将sql2005数据库转换为sql2000,因为sql2005不如用sql2000更简单与熟悉,其实就是通过数据导出导入的方法即可,这里分享下方便需要的朋友2012-11-11
PowerDesigner16生成SQL2005列注释的方法
使用PowerDesigner16生成SQL2005列注释,其实很简单,下面我们就看看方法2013-11-11
通过创建SQLServer 2005到 Oracle10g 的链接服务器实现异构数据库数据转换方案
通过创建SQL Server 2005到 Oracle10g 的链接服务器实现异构数据库数据转换方案,需要的朋友可以参考下。2011-06-06
sql2005附加数据库操作步骤(sql2005还原数据库)
本文介绍了sql2005附加数据库的操作步骤,简单几步就可以完成,大家参考使用吧2014-01-01


最新评论