《SQL Server数据库技术》期末试卷及答案A
职业技术学院 考试试卷 说明:本次考试 120 分钟, 59 道小题,共计 6 页,总分 100 分
A 考试科目 SQL Server 数据库技术 考试类型 『闭卷』 学年学期
适用专业
年 级
教研室主任
(装订线内不准做答)一、选择题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本
大题共20小题,每小题1分,总计20分)
1、数据库应用系统是由数据库、数据库管理系统及其开发工具、应用系统、()和
用户构成。
A.DBMS B.DB C.DBS D.DBA
2、数据库管理系统的英文缩写是()。
A.DBMS B.DBS C.DBA D.DB
3、在关系运算中,选取符合条件的元组是()运算。
A.除法 B.投影 C.选择 D.连接
4、用于模糊查询的匹配符是( )。
A. _
B. []
C. ^
D. LIKE
5、在SQL SERVER中不是系统数据库的是( )。
A. master
B. pubs
C. tempdb
D. model
6、如果要从数据库中删除触发器,应该使用SQL语言的命令( ) 。
A.DELETE TRIGGER
B.DROP TRIGGER
C.REMOVE TRIGGER
D.DISABLE TRIGGER
7、SQL Server 2000中删除表中记录的命令是()。
A.DELETE B.SELECT
C.UPDATE D.DROP
8、SQL语言中,条件“年龄BETWEEN 20 AND 30”表示年龄在20至30之间,且( )。
A.包括20岁和30岁
B.不包括20岁和30岁
C.包括20岁但不包括30岁
D.包括30岁但不包括20岁
9、在SQL中,建立视图用的命令是 ( )。
A.CREATE SCHEMA
B.CREATE TABLE
C.CREATE VIEW
D.CREATE INDEX
10、在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。
A. sp_dbhelp
B. sp_db
C. sp_help
D. sp_helpdb
11、下列聚合函数中正确的是( )
A. SUM (*)
B. MAX (*)
C. COUNT (*)
D. AVG (*)
12、已知员工和员工亲属两个关系,当员工调出时,应该从员工关系中删除该员工的
元组,同时在员工亲属关系中删除对应的亲属元组。在SQL语言中利用触发器定义这个完整性约束的短语是( )
A. AFTER DELETE
B. INSTEAD OF DROP
C. INSTEAD OF DELETE
D. AFTER UPDATE
13、对于数据库的管理,对SQL Server中guest用户的描述错误的是 ( )
A. 安装系统时,guest用户被加入到master、pubs、tempdb、northwind数据中
B. 用户成功登录到SQL Server后,若该登录账号在某数据库中无合法数据库用户,
则系统将可能允许以guest用户来访问该数据库
C. 不能从master、tempdb数据库中删除guest用户
D. 在新建一个数据库时,guest用户将被自动添加
14、Select 职工号 FROM 职工 WHERE 工资>1250 命令的功能是( )。
(装订线内不准做答)
A.查询工资大于1250的纪录
B.查询1250号记录后的记录
C.检索所有的职工号
D.从[职工]关系中检索工资大于1250的职工号
15、用于求系统日期的函数是()。
A. GETDATE() B.YEAR() C.COUNT() D.SUM()
16、向用户授予操作权限的SQL语句是()。
A.CTEATE B.REVOKE C.SELECT D.GRANT
17、在查询分析器中执行SQL语句的快捷键是()。
A.F1 B.F3 C.F5 D.F6
18、SQL Server提供的单行注释语句是使用()开始的一行内容。
A. “/*”
B. “{”
C. “/”
D. “--”
19、在SQL Server 2000中,当数据表被修改时,系统自动执行的数据库对象是()。
A.存储过程
B.触发器
C.视图
D.其他数据库对象
20、SQL Server的字符型系统数据类型主要包括()。
A. Int、money、char
B. char、varchar、text
C. datetime、binary、int
D. char、varchar、int
二、判断题:(对的打√,错的打×,填在题末的括号中)(每小题1分,共10分)
21、在SQL Server中用户不能建立全局变量。 ( )
22、备份时只能对数据文件进行备份。 ( )
23、自定义函数在对任何表的查询中都可以使用。 ( )
24、触发器是通过事件进行触发而被执行的。 ( )
25、主键字段允许为空。 ( )
26、SQL Server 自动为primary key约束的列建立一个索引。( )
27、SQL Server的数据库可以导出为Access数据库。 ( )
28、删除表时,表中的触发器不被同时删除。 ( )
29、数据库的名称可在企业管理器中重命名。 ( )
30、触发器与约束发生冲突,触发器将不执行。 ( )
三、填空题(每空1分,共20分)
31、 SQL Server登录身份验证模式类型有_________ 和_________ 两种。
32、 MS SQL Server提供多个图形化工具,其中用来启动、停止和暂停SQL Server的
图形化工具称为_______________。
33、 _________是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语
句。
34、 SQL Server数据库的体系结构也是三级模式结构,在SQL Server中,________对
应于视图、_______对应于基本表、______对应于存储文件。
35、表或视图的操作权限有select、___________、___________、___________。
36、用SELECT进行模糊查询时,可以使用like或not like匹配符,但要在条件值中使
用____或____等通配符来配合查询。并且,模糊查询只能针对字符类型字段查询。
37、我们要连接数据库需要使用ADO组件中的Connection对象,创建它的方法是:set
变量名=_________.CreateObject(“__________. Connection”)。
38、 SQL Server有3种类型,即insert触发器、_________触发器和_________触发器。
39、 SQL Server 2005局部变量名字必须以_________开头,而全局变量名字必须
以_________开头。
40、SQL Server的安全性分为两类:_______安全性和_______安全性。
(装订线内不准做答)四、简述题(每小题5分,共20分)
41、假设某公司的备份策略是:每星期日中午12:00进行一次完全数据库备份,每天
进行一次差异备份,每一个小时进行一次事务日志备份。周五17:00时,该公司的数据库遭到破坏,请问你怎样来恢复数据库?
42、在SQL Server 2000数据完整性类型及其实现技术有哪些?
43、什么是视图?它和表有什么区别?
44、简述SQL Server 2005的安全机制(6级)。
(装订线内不准做答)五、程序设计题(每空1分,共13分)
45、计算1+3+5+……+99的和,并使用PRINT显示计算结果。
DECLARE @I int,@sum int,@csum char(10)
SELECT @I=1,@sum=0
WHILE @I<=________
BEGIN
SELECT @sum = __________
SELECT @I=@I+__________
END
SELECT @csum=convert(char(10),@sum)
PRINT ’1+2+3+……+99=’ + @csum
46、使用SQL语句创建一个班级表CLASS,属性如下:CLASSNO,DEPARTNO,CLASSNAME;
类型均为字符型;长度分别为8、2、20且均不允许为空。
CREATE ________ CLASS
(CLASSNO ______ (8) NOT NULL,
DEPARTNO CHAR (2) NOT NULL,
CLASSNAME CHAR (____) NOT NULL
)
47、编写一个自定义函数,根据[学生表]中的[出生日期]列,计算年龄。
CREATE FUNCTION dbo.计算年龄(@vardate datetime,@Curdate datetime)
RETURNS tinyint
AS
BEGIN
return ________(yyyy, @vardate, @Curdate)
END
48、使用SQL语句在XK数据库中创建一个名为V_STUDENT的视图,该视图仅查看
“STUDENT”表中班级代码为“200000001”班的学生信息。
USE XK
CREATE ____________ V_STUDENT
AS
SELECT *
FROM ____________WHERE CLASSNO=’20000001’
49、使用SQL语句在XK数据库中创建一个名为P_STUDENT的存储过程,该存储过程
返回“STUDEND”表中所有班级代码为200000001的记录。
USE XK
CREATE ____________ P_STUDENT
AS
SELECT * ____________ STUDENT
WHERE CLASSNO=’20000001’
50、创建触发器TEST,要求每当在STUDENT表中修改数据时,将向客户端显示一条“记
录已修改”的消息。
USE XK
_________________
ON STUDENT
(装订线内不准做答)
_________________
AS
PRINT ‘记录已修改’
Ⅱ操作题部分
(注意:所有操作画面都应保存在以自己姓名命名的WORD文档中,代码的保存请按题目的编号来命名,代码无需记录在试卷上。最后所有的代码和操作画面文件应以一个压缩文件包的形式递交,压缩包以自己的2位学号+姓名的形式命名,如“01王明”。考试期间,一定要注意文件的保存。)
六、设计题(共17分)
现有关系数据库如下:
数据库名:学生选课数据库
学生表(学号,姓名,性别,年龄,专业)
课程表(课程号,课程名,学分,先行课程号)
选课表(ID, 学号,课程号,分数)
用SQL语言实现下列功能的sql语句代码:
51、创建数据库[学生选课数据库]代码(1分);
52、创建[课程表]代码(2分);
课程表(课程号 char(6),课程名,学分,先行课程号)
要求使用:主键(课程号)、非空(课程名, 学分)
53、创建[学生表]代码(2分);
学生表(学号 char(6),姓名,性别,年龄,专业)
要求使用:主键(学号)、非空(姓名,专业)、检查(性别)
54、创建[选课表]代码(2分);
(装订线内不准做答)
选课表(ID,学号,课号,分数)
要求使用:外键(选课表.学号,选课表.课程号)、检查(分数),自动编号(ID) 55、将下列课程信息添加到课程表的代码(2分)
要求:写出修改“课程号为100003的课程名:SQL数据库”的代码
写出删除“课程号为100002的课程信息”的代码
56、写出创建:选课表视图(学号,姓名,课程号,课程名,学分,分数)的代码;(2
分)
57、写出创建“某门课程高低均分”的存储过程,功能是计算某门课程成绩最高分、
最低分、平均分以及执行的代码;(2分)
执行:所有修《SQL数据库》这门学生的最高分、最低分、平均分;
58、检索姓张的女同学的情况:姓名、学号、专业。(2分)
(装订线内不准做答)59、检索有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、姓名。
(2分)
(装订线内不准做答)
《SQL Server数据库技术》(A卷)评分标准及参考答案
)
31、Windows身份验证、混合
32、SQL Server 服务管理器
33、存储过程
34、外模式、模式、内模式
35、insert、update、delete
36、% 、_
37、Server、ADODB
38、Update、Delete
39、@、@@
40、数据访问、数据运行
四、简述题(每小题5分,共20分)
41.假设某公司的备份策略是:每星期日中午12:00进行一次完全数据库备份,每天进行一次差异备份,每一个小时进行一次事务日志备份。周五17:00时,该公司的数据库遭到破坏,请问你怎样来恢复数据库?
答:第一步,先执行还原上周日的完全数据库备份
第二步,再按顺序执行还原周一的差异备份,周二的差异备份,周三的差异备份,周四的差异备份
第三步,接着按顺序执行还原13:00的事务日志备份,14:00的事务日志备份,15:00的事务日志备份,还原16:00的事务日志备份。
即:周日的完全备份+周一、二、三、四的差异备份+周五的日志备份
42.在SQL Server 2005数据完整性类型及其实现技术有哪些?
答:(1)域完整性:DEFAULT(默认值)、DEFAULT(默认技术)、CHECK(检查)、RULE (规则技术)
(2)实体完整性:PRIMARY KEY(主键)、UNIQUE(唯一键)、IDENTITY(标识列)
(3)参照完整性:FOREIGN KEY(外键)
(4)自定义完整性:自定义函数、触发器
43.什么是视图?它和表有什么区别?
答:视图是由一个或多个数据表(基本表)或视图导出的虚拟表或查询表,是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。
视图是虚表。所谓虚表,就是说视图不是表。因为视图只储存了她的定义(select 语句),而没有储存视图对应的数据,这些数据仍存放在原来的数据表(基表),数
(装订线内不准做答)
据与基表中数据同步,即对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表
44、简述SQL Server 2005的安全机制(6级)。
答:1. 计算机的连接
2. SQL Server登录(账户、固定服务器角色)
3. 数据库的访问(用户/角色:固定/自定义角色)
4. 表/视图的权限(select insert update delete)
5. 存储过程、内嵌表值函数的权限(execute select)
6. 表(视图)中列的权限(select update)。
五、程序设计题(每小题1分,共13分)
45.99 、 @sum+@i 、 2
46.table 、 char 、 20
47.datediff
48.View、student
49.procedure、from
50.Create trigger test、for update
六、设计题(第51小题1分,第52至第59小题每题2分,共17分)
51.
create database [学生选课数据库]
go
use [学生选课数据库]
go
52.
create table 学生表
([学号] char(6) primary key,
[姓名] nchar(4) not null,
[性别] nchar(1) check([性别] in ('男', '女')),
[年龄] numeric(2) ,
[专业] char(18) not null
)
53.
create table课程表
([课程号] char(6) primary key,
[课程名] char(40) not null,
[学分] numeric(2) not null,
[先行课程号] char(6)
)
54.
create table选课表
(ID IDENTITY(1, 1),
(装订线内不准做答)
[学号] char(6) references 学生表(学号),
[课程号] char(6) references 课程表(课程号),
[分数] integer check([分数] between 0 and 100)
)
55.
insert 课程表 values('100001', 'C语言',2)
insert 课程表 values('100002', '数据结构', 2, '100001')
insert 课程表 values('100003', '数据库原理', 2)
update课程表 set 课程名='SQL数据库' where 课程号='100003'
delete课程表 where 课程号='100002'
56. create view [选课表视图] as
select 选课表.学号,姓名,选课表.课程号,课程名, 学分, 分数
from 选课表,学生表,课程表
where 选课表.学号=学生表.学号
and 选课表.课程号=课程表.课程号
--或
create view [选课表视图] as
select 选课表.学号,姓名,选课表.课程号,课程名, 学分,分数
from 选课表 join 学生表 on 选课表.学号=学生表.学号
join 课程表 on 选课表.课程号=课程表.课程号
57.
create procedure 某门课程高低均分
@课程名 varchar(40) as
select 课程名, 最高分=max(分数)、最低分=min(分数)、平均分=avg(分数) from 选课表视图
where 课程名 = @课程名
go
execute [某门课程高低均分] 'SQL数据库'
58.
select 姓名, 学号, 专业 from 学生表
where 姓名 like '张%' and 性别='女'
59.
select 学号, 姓名, 专业 from 学生表 where学号 in
(select distinct 学号 from 选课表 where分数<60)