2024年6月12日发(作者:)
SQL Server 2008复习资料
第1章 数据库基础知识
重点掌握:
1、数据库(DB)、数据库管理系统(DBMS)和数据库系统(DBS)的基本概念及三者之间
的关系。数据库系统(DBS)是由哪几个部分组成的?什么是DBA?
DBS:数据库系统 (DataBase System),是采用了数据库技术的计算机系统,是一个实际可运行的、按照
数据库方法存储、维护和向应用系统提供数据支持的系统 ,它是数据库、硬件和软件,以及数据库管
理员(DBA)的集合体。
DB:数据库(DataBase)
DBMS:数据库管理系统(DataBase Management System),是指数据库系统中对数据进行管理的软件系统,
它是数据库系统的核心组成部分。可以通过DBMS对DB进行定义、查询、更新及各种控制.
三者联系: DBS包含DB和DBMS。
2、数据库的概念模型:E-R图是设计概念模型的有效工具。E-R图中4个基本成分:矩
形框、椭圆框、菱形框和直线。能熟练地将E-R图转换成关系模式。
3、关系模型的基本术语:关系、属性及值域、关系模式及其表示、元组、主键Primary Key、
外键Foreign Key
4、关系模型的完整性规则:关系模型中可以有3类完整性约束,要求通过实例运用规则
(1)实体的完整性规则
(2)参照完整性规则
(3)用户定义的完整性规则
一、选择题
1、在数据库系统中,负责对数据库进行管理的有 ( )
A、操作系统和DBA B、DBMS
C、操作系统和DBMS D、DBMS和DBA
2、下列关于数据库的说法不正确的是( )
A、数据库就是长期存储在计算机中、有组织、可共享的数据集合
B、数据库中的数据没有任何冗余
C、数据库中的数据可同时被多个用户共享
D、数据库中的数据是按一定的数据模型组织、描述和存储的
3、数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是( )。
A、DBS包括DB 和DBMS
B、DBMS包括DB和DBS
C、DB包括DBS 和DBMS
D、DBS就是DB,也就是DBMS
4、DBMS目前最常用的模型是( )。
A、网状模型 B、层次模型
C、面向对象模型 D、关系模型
5.( )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或
应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。
A.DBMS B.DB C.DBS D.DBA
6.SQL Server 2008是一个( )的数据库系统。
A.网状型 B.层次型 C.关系型 D.以上都不是
12.DBA是( )
A.操作系统 B.数据库管理系统 C.数据库 D. 数据库管理员
7、有个学生关系,其关键字为学号;一个课程关系,其关键字为课程号;一个选修关系,
其关键字为学号和课程号的组合,则学号和课程号分别为该关系的( )
A、外关键字(外键) B、主辅关键字 C、主关键字 D、什么都不是
7、包含在任何一个候选关键字中的属性称为( ),不包含在任何一个侯选关键字中的
属性称为( )。
A、主属性 B、次属性 C、非主属性 D、外属性
8、一个同学可以借阅多本图书,一本图书可能有多个同学借阅,学生和图书之间的联系为
( )。
A、一对多 B、多对多 C、多对一 D、一对一
9、关系中的元组和属性分别对应二维表中的( B )和( A )。
A、列 B、行 C、记录 D、结构
10、关系模型中,一个关键字是( )。
A、可由多个任意属性组成
B、至多由一个属性组成
C、可由一个或多个其值能唯一标识该关系模式中任何元组的属性组成
D、以上都不是
11、同一个关系模型的任意两个元组值( )。
A、不能全同 B、可全同 C、必须全同 D、以上都不是
12、一个关系数据库文件中的各条记录( )。
A、前后顺序不能任意颠倒,一定要按照输入的顺序排列
B、前后顺序可以任意颠倒,不影响库中的数据关系
C、前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果就可能不同
D、前后顺序不能任意颠倒,一定要按照关键字段值的顺序排列
13、关系模型的任何属性( )。
A、不可再分 B、可再分
C、命名在该关系模式中可以不惟一 D、以上都不是
*14、若关系R∈1NF,且它的每一非主属性都完全函数依赖于主键,则称R属于( B )。
A、第一范式 B、第二范式 C、第三范式 D、第四范式
*15、若关系R∈2NF,且它的每一非主属性都不传递函数依赖于主键,则称R属于(C )。
A、第一范式 B、第二范式 C、第三范式 D、第四范式
二、填空题
1、为保证多个用户可同时共享数据库中的数据,数据库管理系统(DBMS)必须提供数据库
的安全性控制、数据库的完整性控制、数据库恢复、并发控制和事务支持的功能。
2、客观存在并可相互区别的事物称为 实体 。
3、关系模型的基本结构是 表 ,它又称为 关系 ;关系模型中数据之间的联系是通过
公共属性 实现的。
4、关系模型用表格形式结构来表示实体类型和实体之间的联系。关系在用户看来是一个表,
记录(元组)是其中的 行 ,属性是其中的 列 。
5、一个关系模式的定义主要包括关系名、属性名、属性类型、属性长度和关键字。
6、关系数据库中可命名的最小数据单位是 属性名 。
7、关系模式是关系的 框架 ,相当于 记录格式 。
8、在一个实体表示的信息中,称 能唯一标识实体的属性或属性组为关键字。
9、已知系(系编号,系名称、系主任、电话、地点)和学生(学号,姓名,性别,入学日
期,专业,系编号)两个关系,系关系的主关键字是系编号,学生关系的主关键字是 学号 ,
学生关系的外关键字是 系编号。
10.完整性约束包括实体完整性、_参照_完整性和用户定义完整性。_实体完整性用于保证
数据库中数据表的每一个特定实体的记录都是惟一的。
*7、关键的规范化是对关系的 分解 过程。
*8、在1NF,2NF,3NF之间,相互是一种 包含 的关系。
*9、在一个关系R中,若每个数据项都是不可再分割的,那么R一定属于第一范式。
*10、设有关系R(工号,姓名,工种,定额),则R属于第二 范式,将其转化为第三范式
结果应为R1(工号,姓名,工种)和R2(工种,定额)。
关系R属于第二范式而不属于第三范式的说明:
∵关系R的主键是工号,主键是单属性不可能存在部分函数依赖 ∴R∈2NF
又∵关系R中工号→工种,工种→工号,工种→定额,∴关系R中存在传递函数依赖,关
系R不属于第三范式。
三、数据库概念设计题
1.说明下列E-R图中,矩形、椭圆和菱形各表示什么?从上面的E-R图中,回答学生
的主键和课程的主键各是什么?试将下面的E-R图转换成关系模式。
(1)
成绩
学分
课程名
学号 姓名
m n
选修
学生 课程
年龄
课程号
学时
性别
班级
答:用 表示实体 用 表示属性
用 表示实体间联系
学生的主键是学号,课程的主键是课程号。上面的E-R图转换成三个关系:
学生(学号,姓名,性别,年龄,班级)
课程(课程号,课程名,学分,学时)
选修(学号,课程号,成绩)
在选修关系中,学号、课程号分别称为选修关系的外键。
2、下面的E-R图反映实体间什么联系?实体主键各是什么?请把该E-R图转换为关系模
式。
性别
年龄
学生
n
属于
1
班级
学号 姓名 班编号 班名
地址
答:上面的E-R图表示的是学生实体与班级实体间的联系是多对一联系。转换为关系模式
应该有2个。请同学们自己转换关系模式。
第2章 SQL Server 2008概述
1、了解SQL Server 2008体系结构的4个组成部分
;
Database
Engine
数据库引擎
Reporting
Services
报表服务
Analysis
Services
分析服务
Integration Services 集成服务
2、SQL Server 2008的版本;(6个不同的版本)
企业版:功能最齐全、性能最优
标准版:适合于中小型企业的数据管理
开发人员版:适合于应用程序开发人员
工作组版:入门级的数据库产品
精简版:是一个免费、易用且便于管理的数据库版
企业评估版:运行时间只有120天。
3、了解配置服务器、查看服务器属性
第3章 创建和管理SQL Server2008数据库
1、SQL Server 2008 的两种数据库类型,系统数据库和用户数据库;
系统数据库:
master、tempdb、msdb、ReSource和model
master数据库是SQL Server的核心,如果该数据库被损坏,SQL Server将无法正常工作。
msdb数据库是一个与SQL Server Agent服务有关的数据库
model数据库是所有数据库的模板,当执行CREATE DATABASE语句时,将通过复制 model 数据库中的内
容来创建数据库的第一部分。
Resource数据库是隐藏、只读的,包含了SQL Server 2008中的所有系统对象
Tempdb数据库 保存所有临时表和临时存储过程
用户数据库:如示例数据库AdventureWorks,还有用户自己创建的数据库
2、数据库的组成;
一个SQL Server 2008的数据库由多个文件组成。SQL Server 2008中每个数据库包括主数据库文
件(.mdf)、辅助数据库文件(.ndf)和事务日志文件(.ldf)。一个SQL Server 2008的数据库至少应包
含一个主数据库文件和一个事务日志文件。
每个数据库文件有两个名称:
逻辑文件名:(logical_file_name):是在所有 Transact-SQL 语句中引用文件时所使用的名称。
物理文件名(os_file_name):是包括目录路径的物理文件名。是操作系统下的文件名。
文件组:可以将数据文件分成文件组。有两种类型的文件组:主文件组(
Primary
)和用户定义
文件组。注意:日志文件不包括在文件组内。
3. 掌握建立数据库的方法;用图形界面方式创建和用SQL语句建立:
CREATE DATABASE 数据库名
练习题
一、选择题
1、当执行CREATE DATABASE语句时,将通过复制( )数据库中的内容来创建数据库的
第一部分。
A、Master B、Msdb C、Model D、Tempdb
2、主数据文件的扩展名是( )
A、.mdf B、.ndf C、.ldf D、.pdf
3、在SQL SERVER中不是系统数据库的是( )。
A. Master B. Model C. Tempdb D. Pubs
4.Microsoft SQL Server 2008系统由四个部分组成,这四个部分被称为4个服务,其中
核心服务是( )。
A.数据库引擎 is Services
ing Services ation Services
5.下列哪个不是SQL Server数据库文件的后缀。( )
A..mdf B..ldf C..tif D..ndf
6.下面描述错误的是( )。
A.每个数据文件中有且只有一个主数据文件。
B.日志文件可以存在于任意文件组中。
C.主数据文件默认为在primary文件组。
D.文件组是为了更好的实现数据库文件组织。
二、填空题
1、每个SQL Server 2008的数据库至少具有两个操作系统文件:一个数据文件和一个日志
文件。
2、每个数据库文件有两个名称,分别是逻辑文件名和一个物理文件名。
第4章 创建和管理SQL Server 2008数据表
1. 掌握建立表的方法,特别注意用SQL语句建立约束的方法,6种约束
CREATE TABLE 学生表
( 学号 varchar(11) primary key,
姓名 varchar(20) not null,
性别 char(2) default ‘男’,
出生日期 smalldatetime,
入学日期 smalldatetime,
院系名称 varchar(20),
身份证 char(18) UNIQUE
)
CREATE TABLE 选课表
( 学号 varchar(11) FOREIGN KEY references 学生表(学号),
课程号 varchar(6) FOREIGN KEY references 课程表(课程号),
分数 int check(分数 between 0 and 100),
primary key(学号,课程号)
) 主键约束
检查(check)约束
外键约束
唯一性约束
主键约束
空值约束
默认约束
2、标识列(IDENTITY):需要指定两个值:种子值和增量值,标识列的类型定义为int或
bigint类型。
3、一般掌握修改表结构和删除表的方法: ALTER TABLE DROP TABLE
4、掌握INSERT、UPDATE、DELETE语句的格式和功能
(1)INSERT语句的基本语法:
INSERT INTO 表名 [ (列名1 , 列名2, ……, 列名n)]
VALUES (值1, 值2 , ……, 值n)
有时用:INSERT INTO 表名 (列名1, 列名2, ……, 列名n)
SELECT 语句
(2)UPDATE语句基本语法:
UPDATE 表名 SET 列名1=值1 [, 列名2=值2, ……, 列名n=值n]
WHERE 条件表达式
(2)DELETE语句基本语法:
DELETE FROM 表名 WHERE 条件表达式
练习题
一、选择题
1、设学生表结构是:
学号 varchar(11) primary key,
姓名 varchar(20) not null,
性别 char(2) default ‘男’,
出生日期 smalldatetime,
入学日期 smalldatetime,
院系名称 varchar(20),
身份证 char(18)
需要插入1988年1月2日出生的张三的记录,若执行
Insert into 学生表(学号,姓名,院系名称,出生日期)
Values(‘20080101’,‘张三’,‘计算机系’,1988-1-2)
则命令( )。
A、编译出错 B、编译通过但不能插入
C、能插入出生日期 D、说不准
2、要在学生表中增加一个日期型字段B,应该用( )
A、INSERT INTO 学生表 ADD B
B、ALTER 学生表 ADD B DATETIME
C、ALTER TABLE 学生表 ADD B DATETIME
D、ALTER TABLE 学生表 ADD B DATE()
3、要在学生表中删除一条字符类型字段A的值是字符串
‘
B
’
的记录,应该用(
A、DELETE FROM 学生表 WHERE A=B
B、ALTER 学生表 DROP A
)
C、DELETE FROM 学生表 WHERE A=
‘
B
’
D、DELETE FROM 学生表 WHERE A IS
‘
B
’
4、限制输入到列的值的范围,应使用( )约束。
A. CHECK B. PRIMARY KEY C. FOREIGN KEY D. UNIQUE
第5章 数据查询
SELECT语句一般格式为:
SELECT *| [ALL|TOP n] | DISTINCT ] < 目标列表达式 > [,< 目标列表达式 > ] …
FROM < 表名或视图名 > [, < 表名或视图名 > ] …
[ WHERE < 条件表达式 >]
[ GROUP BY < 列名1 > [ HAVING < 条件表达式 > ] ]
[ ORDER BY < 列名2 > [ ASC | DESC ] ]
SELECT语句练习题:
实验原始数据:Studentmaneger数据库,有三个表:学生表记录24条,计算机系22,财
经系1,机电系1;课程表记录7条 选课表记录77条
1、对单个表的查询,查询结果已给出,请同学们将命令补充完整。
(1)
查询财经系全体学生的信息。
Select * from 学生表where 院系名称='财经系'
(2)
查询姓张的学生的学号和姓名
select 学号,姓名from 学生表where 姓名like '张%'
(3)
查询每门课的学分
select 课程名,学分
from 课程表
(4)
查询平均分大于等于90分的学生学号和平均分
select 学号,avg(分数) as 平均分
from 选课表
group by 学号having avg(分数)>=90
(5)
查询平均分最高的前三名学生学号和平均分
select top 3 学号,avg(分数) as 平均分
from 选课表
group by 学号
order by avg(分数)desc
(6)
查询学号最后一位为5的学生
Select * from 学生表where 学号like '%5'
2、对多个表的连接或嵌套查询:
(7)
查询学生的学号、姓名,选修课程名称和成绩,先按课程号升序排列,相同课程按分数降序排列
use StudentManager
select 学生表.学号,学生表.姓名,课程表.课程名,选课表.分数
from 学生表
inner join 选课表 on 学生表.学号=选课表.学号
inner join 课程表 on 选课表.课程号=课程表.课程号
order by 选课表.课程号 ,分数 desc
请同学们修改为用Where子句的连接查询
select 学生表.学号,学生表.姓名,课程表.课程名,选课表.分数
from 学生表, 选课表, 课程表
where 选课表.课程号=课程表.课程号 and 学生表.学号=选课表.学号
order by 选课表.课程号,分数desc
(8)
查询计算机系总分前5名的学
生信息
use StudentManager
select top 5 学生表.学号,姓名 sum(分数) AS 总分
from 学生表
inner join 选课表 on 学生表.学号=选课表.学号
where 院系名称=’计算机系’
group by 学生表.学号,姓名
order by sum(分数) desc
可以换成总分
请同学们修改为用Where子句的连接查询
select top 5 学生表.学号,姓名,sum(分数) AS 总分
from 学生表, 选课表
where 学生表.学号=选课表.学号and 院系名称='计算机系'
group by 学生表.学号,姓名
order by 总分desc
(9)
查询学分大于等于’经济法’的课程
select 课程名
from 课程表
where 学分>=(select 学分
from 课程表
where 课程名= ‘经济法’)
(10)
查询没有选修任何课程的学生信息
select *
from 学生表
where 学号 not in(select学号from 选课表)
(11)
查询选修了’ ’课程且成绩在85分以上(包括85分)的学
生的学号、姓名和分数
use StudentManager
select 学生表.学号,学生表.姓名,选课表.分数
from 学生表
inner join 选课表 on (学生表.学号= 选课表.学号)
inner join 课程表 on (课程表.课程号= 选课表.课程号)
where 选课表.分数>=85 and 课程名=’’
请同学们修改为用Where子句的连接查询
select 学生表.学号,学生表.姓名,选课表.分数
from 学生表, 选课表, 课程表
where 学生表.学号= 选课表.学号and 课程表.课程号= 选课表.课程号
and 选课表.分数>=85 and 课程名=''
(12)
查询选修课程超过4门的学生
use studentmanager
select *
from 学生表
where 学号 in
( select 学号 from 选课表
group by 学号
having count(*)>4)
(13)
查询有课程考试不及格的学生
use StudentManager
select 学生表.学号,学生表.姓名,学生表.性别,学生表.院系名称
from 学生表 inner Join 选课表 on (学生表.学号= 选课表.学号)
where 选课表.分数<= 59
或者用下列方法:
select *
from 学生表
where 学号 in
( select 学号 from 选课表
where 分数<60)
(14)
查询有学生考试不及格的课程(与上例相同,请用第二种方法作)
use StudentManager
select 课程表.课程号,课程表.课程名
from 课程表
inner Join 选课表 on (课程表.课程号= 选课表.课程号)
where 分数<= 59
(15)
查询考试分数两门不及格的学生人数
use StudentManager
select count(*) as 两门课不及格的人数
from 学生表 where 学号 in
(select 学号
from 选课表
where 分数<60
group by 学号
having count (*) = 2)
第 6 章 Transact-SQL语言
1. 掌握字符数据类型:固定长度字符Char 、 Nchar、可变长度字符Varchar、Nvarchar
数字类型:int、smallint、money、smallmoney
2、局部变量(Local Variable)和全局变量(Global Variable)
局部变量必须以@开头,而且必须先用DECLARE命令说明后才可使用,其说明形式如下:
DECLARE @变量名 变量类型 [, @变量名 变量类型…]
注意:必须使用 SELECT 或 SET 命令来设定变量的值,其语法格式如下:
SELECT @局部变量 = 字段、变量值或表达式
SET @局部变量 = 变量值或表达式
3、全局变量不是由用户的程序定义的,它们是在服务器级定义的。只能使用预先说明及定
义的全局变量。引用全局变量时,必须以@@开头。
4、运算符 增加模糊匹配查找运算符 LIKE
模糊查询的匹配符
‘%’和‘_’
5、聚合函数 SUM、AVERAGE、MAX、MIN、COUNT等
聚合函数经常在SELECT语句中出现,也常常和GROUP BY子句配合使用,
例如:
(1)统计每名学生的考试门数。
SELECT 学号,COUNT(*) as 考试门数
FROM 选课表
GROUP BY 学号
(2)统计多少学生参加考试。
select count(*) as 考试人数 from 学生表
where 学号in (SELECT distinct 学号FROM 选课表)
(3)统计课程号是03001的平均成绩和最高成绩
SELECT AVG(分数) as 平均成绩, MAX(分数) as 最高成绩
FROM 选课表
Where 课程号='03001'
(4)统计学号='063001032'的平均分数、考试的课程门数。
DECLARE @fenshu real , @x int
Set @x=0
SELECT @fenshu=Avg(分数), @x=count(*) FROM 选课表 WHERE 学号='063001032'
Print '平均分数为' +convert(char(3),@fenshu)+',共'+convert(char(1),@x)+'门课'
6.掌握以下函数:
(1)字符串函数(Left,right,Ltrim,len,Lower,Upper)
(2)日期和时间函数
GETDATE():返回系统日期函数
DAY、MONTH、YEAR:日期部分值函数
DATEPART :返回指定日期的部分值函数
DATEADD:指定日期加上一个时间间隔之后的日期
DATEDIFF:返回两个指定日期的部分间隔值
例如:
SELECT dateadd(dd,120,getdate())
SELECT DATEDIFF(dd,getdate(),'2010-2-14')
(3)随机函数RAND格式: RAND([seed]) 产生0~1之间的随机小数
(4)舍入函数ROUND格式: ROUND(数值表达式,小数点后位数[,0或非0])
当第三参数是0或省略时,表示四舍五入。
例如:
SELECT round(RAND()*10,0) 产生什么范围的随机数?[0,10]
(5)求字符串长度函数LEN ,不包含尾部空格
例如:SELECT len(' hello ')
(6)求子串函数LEFT、RIGHT、SUBSTRING
(7)字符串转换函数ASCII、CHAR、LOWER、UPPER 、STR
(8)去空格函数LTRIM、RTRIM
(9)数据类型转换函数-CAST和CONVERT
CAST (表达式 AS 数据类型[ (长度) ])
CONVERT ( 数据类型 [ ( 长度) ] , 表达式[ , style ] )
练习题
1、下列说法中正确的是( )
A. SQL中局部变量可以不声明就使用
B. SQL中全局变量必须先声明再使用
C. SQL中所有变量都必须先声明后使用
D. SQL中只有局部变量先声明后使用,全局变量是由系统提供的用户不能自己建立
2、用于模糊查询的匹配符是( )。
A. ? B. [] C. % D. *
3.在SQL Server 2008中,下列变量名正确的是( A )。
A.@sum B.j C.sum D.4kk
4.用于求系统日期的函数是( )。
A.YEAR() B.GETDATE() C.COUNT() D.SUM()
4.用SELECT进行模糊查询时,可以使用like或not like匹配符,但要在条件值中使用%或下划线等
通配符来配合查询。并且,模糊查询只能针对__字符串___类型字段查询。
5. 语句SELECT len(' 你 是BigTiger ') 的执行结果是:_____。
6. 语句 select upper('beautiful') , ltrim (' 北京欢迎你!') 的执行结果是: ____________
和___________。
7. SQL Server 2008局部变量名字必须以_________开头,而全局变量名字必须以_________开头。
第 7 章 视 图
1、创建视图的基本语法格式:
CREATE VIEW < 视图名 > [ ( < 列名 > [ , < 列名 > …] ) ]
AS < 子查询 >
[ WITH CHECK OPTION ]
说明:其中,子查询可以是任意复杂的SELECT语句,但通常不允许含有ORDER BY子句。如果包含ORDER
BY子句的话,必须同时包含TOP子句。WITH CHECK OPTION表示对视图进行UPDATE、INSERT和DELETE
操作时要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。
2、了解利用视图修改数据时的特点
子查询涉及多个基表时,不可用视图更新多个表字段。
注意每次修改只能影响到一个基表,不能修改计算得到的字段。
1.下列说法正确的是( ) 。
A. 视图是观察数据的一种方法,只能基于基本表建立。
B. 视图是虚表,观察到的数据是实际基本表中的数据。
C. 通过视图可以修改计算得到的字段。
D. 通过视图可以同时修改两个或多个基本表中的数据。
2、在SQL中,建立视图用的命令是 ( )。
SCHEMA TABLE VIEW INDEX
3.关于视图下列哪一个说法是错误的( )。
A. 视图是一种虚拟表 B. 视图中也存有数据
C. 视图也可由视图派生出来 D. 视图是保存在数据库中的SELECT查询
4. ________是由一个或多个数据表(基本表)或视图导出的虚拟表。
第8章 索引
1. 掌握索引的分类及特点,索引的基本操作;
索引的分类:索引分为聚集索引和非聚集索引
▪ 聚集索引(Clustered) :使用表中的一列或多列来排序记录,然后再重新存储在磁盘上,表
的物理行顺序和聚集索引中行的顺序一致。一个表只能有一个聚集索引。
▪ 非聚集索引(Nonclustered):存储指向表数据的指针,称为行定位器。非聚集索引的表中的数
据由存储指针的索引页构成
用SQL语句建立索引的方法:
CREATE UNIQUE CLUSTERED INDEX id_idx ON 学生表(学号)
语句作用:在“学生表”的“学号”列上创建唯一聚集索引
CREATE INDEX name_idx ON 学生表(姓名)
语句作用:在“学生表”的“姓名”列上创建非聚集索引。
练习题
1.在SQL Server 2008中,索引的顺序和数据表的物理顺序相同的索引是( )。
A. 聚集索引 B、非聚集索引 C、主键索引 D、唯一索引
2.要删除mytable表中的myindex索引,可以使用( )语句。
A. DROP myindex x
C. DROP INDEX myindex INDEX myindex ON mytable
3.使用索引下列哪个说法是正确的( )。
A. 节省磁盘空间 B. 缩短查询时间
C. 在执行插入、修改、删除时节省时间 D. 与表无关
4.建立索引的目的是( )。
A.降低SQL Server数据检索的速度
B.与SQL Server数据检索的速度无关
C.加快数据库的打开速度
D.提高SQL Server数据检索的速度
第9章 存储过程
1. 掌握用SQL语句定义与调用存储过程;
SQL语句定义存储过程
CREATE PROCEDURE procedure_name
{@parameter1 输入参数类型[=默认值 ,……]
@parameter2 输出参数类型 OUTPUT
AS
SQL语句
SQL语句调用存储过程
EXEC procedure_name [输入参数实参值,输出参数 OUTPUT,……]
练习题
1、
定义不带参数过程getsc90
create procedure getsc90
as
select * from SC where Grade>90
调用过程:Exec getsc90
2、定义带输入参数过程
create proc getSCminmax
@minfs int, @maxfs int
as
select * from SC
where Grade between @minfs and @maxfs
调用过程:Exec getSCminmax 70,80
3、定义带输入、输出参数过程
create proc getSCMaxMin
@xuehao varchar(12),
@maxfs int output,
@minfs int output
as
select * from SC where Sno=@xuehao
select @maxfs=max(Grade) from SC
where Sno=@xuehao
select @minfs=min(Grade) from SC
where Sno=@xuehao
调用过程:
declare @x1 int,@x2 real
exec getSCMaxMin 20080106 ,@x1 output,@x2 output
select @x1 as 最高分数,@x2 as 最低分数
第10章 触发器和游标
1、触发器:主要掌握DML触发器的功能:主要是通过UPDATE、INSERT、DELETE事件进行
触发而被执行的存储过程。例如,当对某一个表进行诸如UPDATE、INSERT、DELETE这些操
作时,SQL Server就会自动执行触发器所定义的T-SQL语句。触发器可以建立在表或视图
上。按照触发器触发事件的操作时间划分,可以把DML触发器分为AFTER触发器和INSTEAD
OF触发器。
2、SQL Server 2008在为每个触发器都定义了两个虚拟表,一个是插入表(inserted),
一个是删除表(deleted)。触发器表和deleted 、inserted表结构相同。
3、游标:SQL Server 2008通过游标提供了对一个结果集进行逐行处理的能力。游标也可
以被看作是一个表中的记录指针,该指针与某个查询结果相联系。
使用游标示例:
DECLARE Student_Cursor CURSOR FOR
SELECT Sname,Sfzh FROM Student --定义游标
DECLARE @Sname char(8),@Sfzh Char(18)
--定义局部变量
OPEN Student_Cursor --打开游标
FETCH Next FROM Student_Cursor into @Sname,@Sfzh
--游标定位提取数据赋值给局部变量
WHILE @@FETCH_STATUS = 0 --FETCH 语句成功
BEGIN
Print '姓名: '+@Sname+' 身份证号: '+@Sfzh
FETCH NEXT FROM Student_Cursor into @Sname,@Sfzh
END
CLOSE Student_Cursor
DEALLOCATE Student_Cursor;
练习题
1、下面关于触发器的描述,错误的是 ( )
A.触发器是一种特殊的存储过程,用户可以直接调用
B.触发器表和DELETED表结构相同
C.触发器可以用来定义比CHECK约束更复杂的规则
D.删除触发器可以使用DROP TRIGGER命令
2、触发器产生并使用两个特殊的表是( )。
A.Deleted、Inserted B. Delete、Insert
C. View、Table D. View1、table1
3.触发器定义在一个表中,当在表中执行__insert_、_update_或delete操作时被触发自动执行。
第11章 数据库的备份还原与数据传输
重点掌握
1.掌握数据备份物理设备与逻辑设备的区别。
2.数据备份的方式;SQL Server 2008提供了4种数据库备份方法:
(1)完全备份;
(2)差异备份;
(3)日志备份;
(4)数据文件或文件组备份
3.叙述以下各T-SQL语句的功能:
(1)BACKUP DATABASE Mydb TO Student1
(2)BACKUP DATABASE Mydb TO DISK=‘d:'
(3)backup database Mydb to Student1 with differential
(4)RESTORE DATABASE Mydb FROM Student1
(5)RESTORE DATABASE Mydb FROM DISK = ‘D:'
4.掌握数据库附加和分离、数据库的导入和导出的操作;
第12章 SQL Server2008数据库的安全性和完整性管理
1. 掌握SQL Server2008的两种身份验证模式和修改方法;
Windows身份验证模式和SQL Server和Windows混合身份验证模式。
2. 掌握SQL Server2008登陆账户的管理
掌握SQL Server的安全层次;
网络中的主机访问SQL Server 2008服务器。要求拥有登录名。
访问SQL Server 2008数据库—数据库用户。
访问SQL Server 2008数据库中的表和列 ,拥有权限。
3. 掌握SQL Server 2008中角色的概念及分类;
角色:是一组访问权限的集合,通过简单地把用户分配到那个角色中,就能将这一组访问
权限一起指派给用户。
服务器角色:提供了8种固定的服务器角色
数据库角色
1.关于登录和用户,下面说法错误的是 ( )。
A、 登录是在服务器级创建的,用户是在数据库级创建的
B、 用户是登录在某个数据库中的映射
C、 用户和登录必须同名
D、 一个登录可以对应多个用户
2.向用户授予操作权限的SQL语句是( )。
A.CTEATE B.REVOKE C.SELECT D.GRANT
Server 2008采用的身份验证模式有Windows身份验证模式和_________模式。
3.__实体完整性__用于保证数据库中数据表的每一个特定实体的记录都是惟一的。


发布评论