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;

(0)

相关推荐

  • SQL Server 2005 企业版没有 Management Studio管理工具的解决方法

    在网上找找了半天有以下几种情况: 1.可以直接装上,装上就有. 2.装上后没有,然后把sql 2005全部卸载后再装就有了. 3.装上后没有,从微软官方网站上下载一下:Microsoft SQL Server Management Studio Express, 装上就可以用了. 4.重装系统,先装SQL Server 2005,再装vs2008 看到上面的方法,对我来说可能只有第三种是最好的了,但他是Express,我这人好像有个这个缺 点,如果他不是最好的,而别人可以做到最好的,我就一定要让

  • PHP连接sql server 2005环境配置及问题解决

    一.Windows下PHP连接SQLServer 2005 设定:安装的Windows操作系统(Win7 或XP均可,其他系统暂未测试),在C盘下:PHP的相关文件位于c:/PHP下面,其配置文件php.ini位于C:\Windows下面. 连接前配置系统: 1.检查文件 php\ntwdblib.dll, 默认PHP的安装目录下面有一个,不能连接再替换. 下载正确版本的 ntwdblib.dll (2000.80.194.0) 2.配置php a.打开php.in将extension=php_

  • SQLServer2005安装提示服务无法启动原因分析及解决

    错误日志 安装时出现了如下错误:SQL Server 2005 安装错误码29503.产品: Microsoft SQL Server 2005-- 错误 29503.SQL Server 服务无法启动.有关详细信息,请参阅 SQL Server 联机丛书中的主题"如何查看 SQL Server 2005 安装日志文件"和"手动启动 SQL Server".详情看图: 错误原因 多核cpu安装sql server2005 时不能安装(因为无法启动sql server

  • sqlserver2005使用row_number() over分页的实现方法

    语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) <BR> 例子: 复制代码 代码如下: select * from ( select *, ROW_NUMBER() OVER(Order by a.CreateTime DESC ) AS RowNumber from table_name as a ) as b where RowNumber BETWEEN 1 and 5 将会返回table表 其中有一列名字为 RowNu

  • SQL Server 2005 还原数据库错误解决方法

    在还源数据库时出现以下错误(详情参见下图): System.Data.SqlClient.SqlError: 在对 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BusinessDB.mdf' 尝试 'RestoreContainer::ValidateTargetForCreation' 时,操作系统返回了错误 '5(拒绝访问.)'. (Microsoft.SqlServer.Express.Smo) 原因分析: 没有对"C:\Pro

  • Sql Server 2005 默认端口修改方法

    在SQL Server 配置管理器中,展开SQL Server 2005的网络配置,然后点击服务器实例如:MSSQLSERVER 的协议. 在右窗格中,双击TCP/IP协议. 在TCP/IP属性对话框中,单击IP地址选项卡. 在TCP端口框中的IPAll节,输入一个可用的端口号.对于本教程中,我们将使用1500. 单击确定以关闭该对话框,然后单击确定的警告说,必须重新启动服务. 在左窗格中,单击SQL Server 2005的服务. 在右窗格中,右键单击SQL Server实例如:SQL Ser

  • Sql Server 2005的1433端口打开局域网访问和进行远程连接

    SQL Server 2005 远程连接 配置TCP/IP属性. Surface Area Configuration –> Database Engine –> Remote Connections ->Using TCP/IT SQL Server 外围应用配置器-服务和连接外围配置-database englie-远程连接-启用(远程连接的TCP/IP和named pipes) SQL Server Configuration Manager-SQL2005网络配置-启用TCP/I

  • sqlserver2005 安装图解教程以及SQL 2005 SP3补丁安装图文教程

    MSSQL2005数据库版本    SQL Server 2005 的各版本之间选择 大多数企业都在三个 SQL Server 版本之间选择:SQL Server 2005 Enterprise Edition.SQL Server 2005 Standard Edition 和 SQL Server 2005 Workgroup Edition.大多数企业选择这些版本是因为只有 Enterprise Edition.Standard Edition 和 Workgroup Edition 可以

  • SqlServer2005 数据库同步配置图文详解

    <1>软件准备条件 机器A端:SqlServer2005 Management Studio + WinServer 2003 Enterprise (作为发布服务器) 机器B端:Sqlserver2005 Management Studio Express + WinXP(作为订阅服务器) 一:[准备条件] <1>软件准备条件 机器A端:SqlServer2005 Management Studio + WinServer 2003 Enterprise (作为发布服务器) 机器

  • SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法

    以下仅为参照,如果有多个实例,可能会有些许不同: 本环境是SQL Server 2005 Standard Version 64-bit 和 SQL Server 2008 Standard Version 64-bit 双实例同时安装在一个 Windows Server 2008 Standard Version 64-bit OS上: 代码 复制代码 代码如下: Windows Server 2008 Standard Version 64-bit SQL Server 2005 Stand

  • PHP连接SQLServer2005方法及代码

    1.修改php.ini将extension=php_mssql.dll的注释删除保存. 修改php.in将mssql.secure_connection = Off改为mssql.secure_connection = On. 2.下载连接2005的 ntwdblib.dll (2000.80.194.0) 点击下载 3. 打开文件X:\AppServ\php5\ext ,把php_mssql.dll 复制到system32目录下. 把下载的ntwdblib.dll 复制到system32目录下

随机推荐