SQLServer数据库试题.docx
《SQLServer数据库试题.docx》由会员分享,可在线阅读,更多相关《SQLServer数据库试题.docx(10页珍藏版)》请在冰豆网上搜索。
SQLServer数据库试题
SQL-Server-2008数据库试题
2009-2010学年第二学期科大讯飞公司
SQLServer2008数据库试题
合作院校:
班级:
姓名:
分数
题号
一
二
三
总分
得分
得分
改卷
一、单项选择题(每题2分,共25题,合计50分)
1.SQLServer2008是一个()的数据库系统。
(A)网状型(B)层次型(C)关系型(D)以上都不是
2.关于主键描述正确的是:
()
(A)包含一列(B)包含两列
(C)包含一列或者多列(D)以上都不正确
3.SQLServer2008采用的身份验证模式有()。
(A)仅Windows身份验证模式
(B)仅SQLServer身份验证模式
(C)仅混合模式
(D)Windows身份验证模式和混合模式
4.SQL语言按照用途可以分为三类,下面选项中哪一种不是的:
()
(A)DML(B)DCL(C)DQL(D)DDL
5.在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是()
(A)*(B)%(C)-(D)?
6.SQLServer提供的单行注释语句是使用()开始的一行内容。
(A)“/*”(B)“--”(C)“{”(D)“/”
7.以下那种类型不能作为变量的数据类型()。
(A)text(B)ntext(C)table(D)image
8.下面不属于数据定义功能的SQL语句是:
()
A.CREATETABLEB.CREATECURSORC.UPDATED.ALTERTABLE
9.如果希望完全安装SQLServer,则应选择()。
A.典型安装 B.最小安装 C.自定义安装 D.仅连接
10.在SQLSERVER中局部变量前面的字符为:
()
(A)*(B)#(C)@@(D)@
11.假如有两个表的连接是这样的:
table_1INNERJOINtable_2其中table_1和table_2是两个具有公共属性的表,这种连接会生成哪种结果集?
()
(A)包括table_1中的所有行,不包括table_2的不匹配行
(B)包括table_2中的所有行,不包括table_1的不匹配行
(C)包括和两个表的所有行
(D)只包括table_1和table_2满足条件的行
12.对视图的描述错误的是:
()
(A)是一张虚拟的表
(B)在存储视图时存储的是视图的定义
D、关系模型数据库是数据库发展的最初阶段。
18、关系数据库中,主键是(__)。
A、为标识表中唯一的实体B、创建唯一的索引,允许空值
C、只允许以表中第一字段建立D、允许有多个主键的
19、表在数据库中是一个非常重要的数据对象,它是用来(__)各种数据内容的
A、显示 B、查询 C、存放 D、检索
20、为数据表创建索引的目的是(___)
A、提高查询的检索性能 B、创建唯一索引
C、创建主键 D、归类
21、 在Transact-SQL语法中,用来插入数据的命令是(___),用于更新的命令是(___)。
A、INSERT,UPDATE B、UPDATE,INSERT
C、DELETE,UPDATE D、CREATE,INSERT INTO
22、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(___)。
A、SELECT,INTO B、SELECT,FROM
C、SELECT,GROUP D、仅SELECT
23、视图是一种常用的数据对象,它是提供____和____数据的另一种途径,可以简化数据库操作,
A、查看,存放 B、查看,检索C、插入,更新 D、检索,插入
24、在SQL SERVER服务器上,存储过程是一组预先定义并(__)的Transact-SQL语句。
A、保存 B、编译 C、解释 D、编写
25、在SQLServer2000中,索引的顺序和数据表的物理顺序相同的索引是()。
A.聚集索引B.非聚集索引C.主键索引D.唯一索引
二、填空题(每空1分,共10空,共计10分)
得分
改卷
1.数据库系统的特点分别是数据的结构化、、数据独立性和。
2.在SQLServer2008中,索引的顺序和数据表的物理顺序不相同的索引是___
3.如果要计算表中数据的平均值,可以使用的聚合函数________。
4.游标的概念包括两个部分,它们是和。
5.一个事务的操作必须是具备以下四个属性:
原子性、、_________和持久性。
6.在SQLServer2008中,我们创建数据库的语句是,而修改数据库的语句是。
三、简答(每题5分,共10分)
得分
改卷
1.声明一个长度为16的字符型变量“cname”,并赋初值为”数据库系统概述”。
请按前面的要求写出相应语句。
2.简述视图的意义和优点?
四、程序阅读题(10分)
得分
改卷
下面程序段的功能是:
在数据库中判断是否存在名为my_proc的存储过程,若存在,则删除之,然后创建同名的存储过程,该存储过程的功能是向author_id、author_name、address和telephone字段插入数据。
阅读并回答以下问题:
USEbookdb
GO
IFEXISTS(SELECT①FROMSysobjects
WHEREname=’my_proc’andtype=’②’)
DROPPROCmy_proc
GO
CREATEPROCmy_proc
@aint,@bchar(8),@cchar(50)
③
INSERTINTOclients(client_id,client_name,address)
VALUES(@a,@b,@c)
GO
问题:
(1)填写该程序段中空白处的内容:
①
②
③
(2)任写一条调用该存储过程的语句。
五、编程题(20分,共4题)
得分
改卷
student表(学生表)
学号
姓名
性别
年龄
系别
1
吴好
男
18
计算机系
2
崔平
女
21
经管系
3
钱筱
女
19
电子系
course表(课程表)
课程号
课程名
学分
1
SQLServer
4
2
数据结构
3
3
专业英语
2
sc表(选课表)
学号
课程号
成绩
1
1
88
2
1
90
2
2
70
3
3
79
1、把course表中课程号为3的课程的学分修改为3。
(3分)
2、在student表中查询年龄大于18的学生的所有信息,并按学号降序排列。
(4分)
3、在以上三个表中查询选的课程的“学分”为3,并且成绩大于80的学生的学号、姓名和性别。
(6分)
4、为student表创建一个名称为my_trig的触发器,当用户成功删除该表中的一条或多条记录时,触发器
自动删除SC表中与之有关的记录。
(注:
在创建触发器之前要判断是否有同名的触发器存在,若存在则删除之。
)(7分)
SQLServer数据库试题十及答案
参考答案
一、单项选择题(每题2分,共15题)
1.C2.c3.D4.C5.B6.B7.C8.C9.A10.D11.D12.D13.C14.D15.D25C
二、填空题(每空2分,共15空)
1.数据共享可控冗余2.GO3.64KB4.非聚集索引5.AVG函数6.游标结果集游标位置7.一致性隔离性8.CREATEDATABASEALTERDATABASE9.约束默认值
三、简答(10分)
1.DECLAREcnamechar(16)
SETcname=’数据库系统概述’
或者是
DECLAREcnamechar(16)
SELECTcname=’数据库系统概述’
2.答:
分割数据,简化优点 简化操作 提供自动的安全保护功能 为数据库重构提供一定的逻辑独立性。
四、程序阅读题(5分)
1.namePas
2.EXECmy_proc7,‘李好’,‘考试书店’或者EXECmy_proc@a=7,@b=‘李好’,@c=‘考试书店’
五、编程题(25分,共4题)
1、(4分)
updatecourse(1分)
set学分=4(2分)
where课程号=2(1分)
2、select*fromstudentwhere年龄>18orderby学号desc(5分)
3、(6分)
方法1:
selectdistinctstudent.学号,姓名,性别(1分)
fromstudent,course,sc(1分)
where(student.学号=sc.学号)and(course.课程号=sc.课程号)
and(course.学分=4)and(sc.成绩>80)(1+1+1+1分)
方法2:
selectdistinctstudent.学号,姓名,性别(1分)
fromstudentInnerJoin(scInnerJoincourseOncourse.课程号=sc.课程号)
Onstudent.学号=sc.学号(2分+2分)
where(course.学分=4)and(sc.成绩>80)(1分+1分)
4、(10分)
Ifexists(SelectnameFromsysobjects
Wherename=’my_trig’andtype=’tr’)(整个If语句1分)
Droptriggermy_trig(0.5分)
Go(0.5分)
Createtriggermy_trig(1分)
Onstudent(0.5分)
ForDelete(1分)
As(0.5分)
DeleteFromsc(2分)
Where学号in(Select学号FromDeleted)(1分+2分)
Go
1加到100的存储过程:
declare@numberint,@varnumberint
set@number=0
set@varnumber=0
while@varnumber<=100
begin
set@number=@number+@varnumber
set@varnumber=@varnumber+1
end
select@number
答案为5050