SQLServer数据库试题七及答案.docx
《SQLServer数据库试题七及答案.docx》由会员分享,可在线阅读,更多相关《SQLServer数据库试题七及答案.docx(8页珍藏版)》请在冰豆网上搜索。
SQLServer数据库试题七及答案
SQLServer数据库试题七及答案
一.单项选择题(每题2分,计30分)
1.是数据库系统的核心,它负责数据库的配置、存取、管理和维护等工
作。
(c)
A、操作系统B、关系模型C、数据库管理系统D、数据库
2.SQLServer2000是一款基于体系的关系型数据库管理系统。
(A)
A、客户机/服务器B、主机C、N层D、单机3.下面哪一个不是SQLServer2000的基本数据类型(A)
A、VARIANTB、VARCHAR、CVARBINARY、DNVARCHAR4.下面的类型中宽度最大的是(C)
A、CHAR(5)B、VARCHAR(5)C、NCHAR(5)D、BIGINT
5.表达式LEN('电子学院')+DATALENGTH(GETDATE()的值为(C)
A、8B、10C、12D、16
6.在SQLServer2000中,数据存储的基本单位是页,页的大小是(D)
A、1KB、2KC、4KD、8K
7.在使用CREATEDATABA命令创建数据库时,FILENAMES项定义的是(D)
A、文件增长量B、文件大小C、逻辑文件名D、物理文件名
8.关于表结构的定义,下面说法中错误的是(C)
A、表名在同一个数据库内应是唯一的B、创建表使用CREATETABL命令
C、删除表使用DELETETABL命令D、修改表使用ALTERTABL命令
9.下面哪一个约束用来禁止输入重复值?
(A)
A、UNIQUEB、NULLC、DEFAULTD、FOREIGNKEY
10.下面关于登录账户、用户和角色的说法错误的是(C)
A、登录账户是服务器级的B、用户是登录账户在某个数据库中的映射
C、用户不一定要和登录账户相关联D、角色其实就是用户组11•在SELECT语句中,用于去除重复行的关键字是(B)
A、TOPB、DISTINCTC、PERCENT、DHAVING
12•若想查询出所有姓张的、且出生日期为空的学生信息,则WHEF条件应为(C)
A、
姓名
LIKE
‘张%'
AND出生日期
=NULL
B、
姓名
LIKE
‘张*'
AND出生日期
=NULL
C、
姓名
LIKE
‘张%'
AND出生日期
ISNULL
D、
姓名
LIKE
‘张_'
AND出生日期
ISNULL
13.下面关于视图的说法中,错误的是(C)
A、视图是个虚拟表B、可以使用视图更新数据,但每次更新只能影响一个表
C、不能为视图定义触发器D、可以创建基于视图的视图14.下面关于触发器的描述,错误的是(A)
A、触发器是一种特殊的存储过程,用户可以直接调用
B、触发器表和DELETE表没有共同记录
C、触发器可以用来定义比CHECKS束更复杂的规则
D删除触发器可以使用DROPTRIGGE命令,也可以使用企业管理器15.下面关于事务的描述,错误的是(D)
A、事务可用于保持数据的一致性B、事务应该昼小且应尽快提交
C、应避免人工输入操作出在在事务中D、在事务中可以使用ALTERDATEABSE
二.填空题(每空1分,计20分)
1.SQLServer是作为WindowsNT或2000的一个—服务行的,用户
可以启动、暂停或停止它。
2.SQLServer服务包括有__SQLServer服务、___SQLServerAgent
服务、MicrosoftSearch和MSDTd艮务。
3.SQLServer有两类数据库,__系统数据库和用户数据库。
其中为新
的用户数据库提供模板的系统数据库是model。
4.所有的数据库都有一个主数据文件和一个或多个事务日志文件,
此外,还可能有次要数据文件。
5•向表中添加数据应使用_INSERT或填INSERTINTO)命令,更新数
据应使用___UPDATE命令。
6.在SQLServer2000中,约束有非空约束、缺省约束、_主键约束、
外键约束、检查约束和唯一约束等6种类型。
7.对象权限是指用户基于数据库对象层次上的访问和操作权限,共有5种:
SELEC、TINSERT、DELETE、___UPDAT_E和EXECUTE。
(或填
更新、执行)
8.UNION以把两个或多个SELECT语句的查询结果组合成一个结果集,使用时要求所有SELECTS句的列数应目同___,对应列的数据类型相容。
9.索引表的顺序与数据行的物理顺序目同的索引称为___聚集(或聚簇或簇)索引。
10.使用游标的一般步骤应为:
__创建游标
、打开游标、从游标的结果集中读取数据、对游标中的数据逐行操作、关闭游标和释放游标。
11.___事务是指一个操作序列,这些操作序列要么都被执行,要么都不被执行。
12.___差异备份只记录自上次完整数据库备份后发生更改的数据。
三.判断题(每题1分,计10分)
1.外键是指一个表中含有与另外一个表的主键目同的列或列组,外键不要求惟一。
(V)
2.SQLServer2000支持Unicode字符集,目应数据类型为text、char和varchar。
3.企业管理器是SQLServer提供的最主要的数据库管理工具,它以树形结构的形式来管理数据库服务器、数据库和数据库中的对象。
(V)
4•全局变量与局部变量一样,用户必须进行声明后才能使用。
(X)
5.在SQLServer2000中,由于不能跨页存储数据行,所以页中每一行最多包含的数据量是8060B。
(V)
6.数据完整性就是指数据的正确性、完备性和一致性。
(V)
7•若使用REVOK命令撤消某用户创建表的权限,则该用户将肯定无权创建表。
(X)
8.WITHCHECKOPTION示使用视图更新数据时应满足视图定义中设置的条件
(V)
9•表的每个触发动作只能有一个INSTEADOF触发器。
(V)
10.在使用差异数据库备份还原数据库时,应先还原最新的完整数据库备份。
(V)
四.查询设计(每题5分,计25分)
某个学籍数据库有如下表结构:
学生(学号,姓名,性别,出生日期,班级)
课程(课程号,课程名称,课程类别,课时)
选课(学号,课程号,成绩)
请完成下列查询要求。
1.查询出“软件041”班的所有男生的学号和姓名。
SELECT学号,姓名
FROM学生
WHER班级=‘软件041'AND性别=‘男’
2.查询出所有姓张的同学的姓名和班级。
SELECT
FROM课程
WHER课程名称LIKE‘%§言%
3•查询出“C语言”课程成绩前5名的学生的学号、姓名和班级。
SELECTTOP5学生.学号,姓名,班级
FROM学生JOIN选课ON学生.学号=选课.学号JOIN课程ON课程.课程号
=选课.课程号
WHER课程名称=‘C语言’
ORDERBY成绩DESC
4.查询出各班级学生人数。
SELECT班级,COUNT(*)AS人数
FROM学生
GROUPB班级
5.查询出“计算机应用基础”课程成绩高于张三同学此门课程成绩的学生的学号和姓名。
SELECTS生.学号,姓名
FROM学生JOIN选课ON学生.学号=
=选课.课程号
选课.
学号
JOIN课程ON课程.
课程号
WHER课程名称=
‘计算机应用基础'
AND成绩
>(
SELECT成绩
FROM学生JOIN选课ON学生.学号=
=选课.课程号
选课.
学号
JOIN课程ON课程.
课程号
WHER课程名称=
‘计算机应用基础'
AND姓名
=‘张三'
五.综合题(每空3分,计15分)根据下面某教学管理数据库的表结构,完成下面的程序填空题。
教师(职工号,姓名,学历,职称)课程(课程号,课程名称,课程类别)任课(职工号,课程号,周课时)
1.补填下面的存储过程的定义,使其被调用时,能根据调用程序提供的教师姓名使用输出参数返回该教师任课的课程数。
CREATEPROCEDU按教师姓名查询任课课程数
@姓名VARCHAR(10),
@课程数INT__OUTPUT
AS
SELECT__@课程数=COUNT(*)
FROM教师JOIN任课ON教师.职工号=任课.职工号
WHERE___姓_名=@姓名
2.完成下面的触发器的定义,当向任课表中插入记录时,触发器能判断若插入的记录使该教师的任课周课时总计超过20,则回滚插入操作。
CREATETRIGGERS加教学任务
ON任课
AFTERINSERT
AS
DECLARE总@课时INT
SELECT总课时=SUM(任课.周课时)
FROM任课JOIN_INSERTED0任课.职工号=INSERTED.职工号
IF@总课时>20
ROLLBACKTRANSACTI_O_N_
参考答案
一.单项选择题(每题2分,计30分)
1.C2.A3.A4.C
5.C6.D7.D8.C
9.A10.C11.B12.C
13.C14.A15.D
二.填空题(每空1分,计20分)
1.服务
2.SQLServer服务SQLServerAgent服务(或填主服务、代理服务)
3.系统数据库model4.主数据文件次要数据文件
5.INSERT或填INSERTINTO)UPDATE
6.主键约束外键约束
7.UPDATEEXECUT或填更新、执行)
8.UNION相同
9.聚集(或聚簇或簇)
10.创建游标打开游标
11.事务
12.差异备份
三.判断题(每题1分,计10分)
1.V2.X3.V4.X5.V
6.V7.X8.V9.V10.V
四查询设计(每题5分,计25分)
1查询出“软件041”班的所有男生的学号和姓名
SELECT学号,姓名
FROM学生
WHER班级=‘软件041'AND性别=‘男’
2查询出所有姓张的同学的姓名和班级。
SELECT*
FROM课程
WHER课程名称LIKE‘%§言%
3•查询出“C语言”课程成绩前5名的学生的学号、姓名和班级
SELECTTOP5学生.学号,姓名,班级
FROM学生JOIN选课ON学生.学号=选课.学号JOIN课程ON课程.课程号=选课.课程号
WHER课程名称=‘C语言’
ORDERBY成绩DESC
4.查询出各班级学生人数。
SELECT班级,COUNT(*)AS人数
FROM学生
GROUPB班级5.查询出“计算机应用基础”课程成绩高于张三同学此门课程成绩的学生的学号和姓名。
SELECTS生.学号,姓名
FROM学生JOIN选课ON学生.学号=选课.学号JOIN课程ON课程.课程号=选课.课程号
WHER课程名称=‘计算机应用基础’AND成绩>(
SELECT成绩
FROM学生JOIN选课ON学生.学号=选课.学号JOIN课程ON课程.课程号=选课.课程号
WHER课程名称=‘计算机应用基础’AND姓名='张三’
)
五.综合题(每空3分,计15分)
1.OUTPUT课@程数=COUNT(*)姓名=@姓名
2.INSERTEDO任课.职工号=INSERTED.职工号
ROLLBACKTRANSACTION