SQL Server 2005中的外联结用法,sql联结

网络整理 - 08-17

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

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

学生表:

SQL Server 2005中的外联结用法,sql联结

学生选课表:

SQL Server 2005中的外联结用法,sql联结

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

标准的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中的外联结用法,sql联结

但是,在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中的外联结用法,sql联结

同时,还可以在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中的外联结用法,sql联结

 

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

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

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

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

学生表:

SQL Server 2005中的外联结用法,sql联结

学生选课表:

SQL Server 2005中的外联结用法,sql联结

课程表:

SQL Server 2005中的外联结用法,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中的外联结用法,sql联结

右联结查询举例:

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

结果为:

SQL Server 2005中的外联结用法,sql联结

全外联结查询举例:

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

结果为:

SQL Server 2005中的外联结用法,sql联结

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

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

结果仍为:

SQL Server 2005中的外联结用法,sql联结

由以上例子可以看出:

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

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

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


sql server 2005的具体用法说明

动态关键字:
create 新建 alter 修改 drop删除 add添加

动态关键字后一般给表或数据库名

如:1.create database 'MyQQData' 新建数据库 名字为 MyQQData

2.drop table student 删除学员表

约束关键字:
primary 主要的 unique 唯一的 default 默认的 check检查约束

foreign 外来的(外键) references 引文 涉及(引用对象--主键)

建库:

create database '要新建数据库名'

on primary--主数据库
(
name='数据库文件名',
filename='路径(将数据库创建到哪里)+\数据库物理文件名',

/*如果没有特殊要求其后的描述可以不要*/
size=数字mb--,--初始大小
filegrowth=数字%,--设置增长量
maxsize=数字mb--最大容量
)
,
(
/*次要数据库文件,如果没有则不在主数据库文件描述完毕后加"," 创建方法一样*/
name='数据库文件名',
filename='路径(将数据库创建到哪里)+\数据库物理文件名',
)

log on--日志文件
(
name='日志文件名',
filename='路径(将日志文件创建到哪里)+\日志文件的物理文件名',
)
(
/*日志文件2的具体描述,如果有次要文件就要创建相应的日志文件*/

)

go--有后续语句就得加go
建表:
在S2的T-Sql语句中建表语句是最简单的 其需用到 create 新建 关键字

create table 表名
(
字段 数据类型 非空还可以为空,--可以为空写关键字null 非空在null前加not
/*建标识列*/
字段 数据类型 not null identity(1,1),/*identity关键字表明是标识列
前一个1是标识种子后一1是递增量*/

)
--一般建表后紧跟建约束
/*建约束需奥用到我们的动态关键字 alter 修改*/

/*还需用到*/
add /*必须包含add 添加*/ constraint/*约束,也必须包含*/

--固定用法

alter table '表名'
add constraint 约束名 约束类型 约束描述

/*对应约束*/

alter table '表名'
add
--主键
constraint PK_字段/*此为命名规范要求*/ primary key(字段),

--唯一约束
constraint UK_字段 unique key(字段),

--默认约束
constrint DF_字段 default('默认值') for/*到*/ 字段,

--检查约束
constraint CK_字段 check(约束。如:len(字段)>1),

--主外键关系
constraint FK_主表_从表 foreign(外键字段) references 主表......余下全文>>
 

sql server 2005服务与连接的外围应用配置器

是否正确安装了sql server2005客户端组件?
是否启动了正确的sql server2005实例?
呵呵,希望能有帮助,^_^