文档库

最新最全的文档下载
当前位置:文档库 > sql server数据库试题及答案

sql server数据库试题及答案

《数据库技术与应用》样题

一、选择题( 共 30 分,1--20 每小题 1 分,21—25 每小题 2 分。下列各题 A)、B)、

C)、D)四个选项中,只有一个选项是正确的 )

1 在 SQL Server 中,关于视图的正确叙述是

A)视图与数据库表相同,用来存储数据B)视图不能同数据库表进行连接操作

C)在视图上不能进行更新操作D)视图是从一个或多个数据库表导出的虚拟表

2 SQL 是那几个英文单词的缩写

A)Standard Query LanguageB)Structured Query Language

C) Select Query LanguageD)以上都不是

3 不属于 SQL Server 系统全局变量的是()。

A、@@Error

B、@@Connection

C、@@Fetch_Status

D、@Records

4 下面描述错误的是()

A、每个数据文件中有且只有一个主数据文件

B、日志文件可以存在于任意文件组中

C、主数据文件默认为 primary 文件组

D、文件组是为了更好地实现数据库文件组织

5 SQL Server 数据库文件有三类,其中主数据文件的后缀为()

A、.mdf

B、.ldf

C、.ndf

D、.idf

6、下面标识符不合法的是()

A、[my delete]

B、_mybase

C、$money

D、trigger1

7 下面字符串能与通配符表达式[ABC]%a 进行匹配的是()

A、BCDEF

B、A_BCD

C、ABC_a

D、A%

8、下面对索引的相关描述正确的是()列值唯一的列适合间索引

A、经常被查询的列不适合建索引

B、列值惟一的列适合建索引

C、有很多重复值的列适合建索引

D、是外键或主键的列不适合建索引

9、在“连接”组中有两种连接认证方式,其中在()方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。

A、Windows 身份验证

B、SQL Server 身份验证

C、以超级用户身份登录时

D、其他方式登录时

10、索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它能够加快数据的()速度。

A、插入

B、修改

C、删除

D、查询在where子句中出现频率较高的列应尽量创建索引

11、以下哪种情况应尽量创建索引()

A、在 Where 子句中出现频率较高的列

B、具有很多 NULL 值的列

C、记录较少的基本表

D、需要更新频繁的基本表

12、域完整性用于保证给定字段中数据的有效性,它要求表中指定列的数据具有正确的数据类型、格式和有效的()。

A、数据值

B、数据长度

C、取值范围

D、以上都不是

13 以下不属于表之间定义关系的是

A)一对一关系B) 一对多关系C) 多对多关系D) 少对多关系

14 目前数据库有三种基本的数据模型是 ________ 。

A、层次模型、网络模型、关系模型

B、对象模型、网络模型、关系模型

网络模型、对象模型、层次模型D、层次模型、关系模型、对象模型

15 从“产品”表里查询出价格高于产品名称为“海天酱油”的产品的记录,此 SQL 语句为

A、SELECT * FROM 产品WHERE 价格>海天酱油

B、SELECT * FROM 产品WHERE 价格>

(SELECT * FROM 产品WHERE 产品名称>’海天酱油’)

C、SELECT * FROM 产品WHERE EXISTS 产品名称=’海天酱油’

D、SELECT * FROM 产品WHERE 价格>

(SELECT * FROM 价格WHERE 产品名称=’海天酱油’)

16.不允许记录中出现重复索引值的索引是。

A) 主索引B) 主索引、候选索引、普遍索引

C) 主索引和候选索引D) 主索引、候选索引和唯一索引

17 数据库应用系统是由数据库、数据库管理系统(及其开发工具)、应用系统、)和用(户构成。

A) DBMSB) DBC) DBSD) DBA数据库管理员

18、下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是()。

I.人工管理阶段 II.文件系统阶段 III.数据库阶段

A.I 和 II

B.只有 II

C.II 和 III

D.只有 I

19、要保证数据库的数据的逻辑独立性,需要修改的是()。

A.模式与外模式

B.模式与内模式

C.三级模式之间的两层映射

D.三层模式

20、当数据库损坏时,数据库管理员可通过何种方式恢复数据库()

A、事务日志文件

B、主数据文件

C、DELETE 语句

D、联机帮助文档

21、在查询分析器中运行下面的语句

CREATE TABLE numbers( N1 int,N2 numeric(5,0),N3 numeric(4,2))

GO

INSERT INTO numbers VALUES(1.5,1.5,1.5)

SELECT * FROM numbers

后会得到什么样的结果()

A、返回 2,2 和 1.50 的结果集合

B、返回 1.5,1.5 和 1.5 的结果集合

C、CREATE TABLE 命令不会执行,因为你无法为列 N2 设置精度为 0

D、返回 1,2 和 1.50 的结果

22、分析下面的表定义

Create Table autos

(makevarchar(20) not null,modevarchar(20) not null,

acquisition_cost money null, acquisition_datedatetime null)

执行以上语句后,再执行下面的语句会发生()

Truncate table autos

Begin transaction

Insert into autos(make,model) values (‘Tucker’,’Torpedo’)

If exists (select * from autos)

Rollback tran

Else

Commit tran

End

A、该批处理将失败,因为begin tran…commit tran 不正确

B、该批处理结束后,表内空无一行

C、该批处理结束后,表内有一行

D、所有适当的错误处理会被执行

23、有下面的存储过程

Create procedure Myp1 @P int

AS

Select name,age from student where age=@P

假如你要在 student 表中查找年龄是 20 岁的学生,)(可以正确地调用这个存储过程。

A、EXEC Myp1 @P=’20’

B、EXEC Myp1 @P=20’

C、EXEC Myp1 P=’20’

D、EXEC Myp1 P=20’

24、SQL Server 系统中的所有系统级信息存储于哪个数据库( )。

A、master

B、model

C、tempdb

D、msdb

25、找出考试成绩前 5 名的学生

A、select top 5 姓名,分数 from student

B、select top 5 姓名,分数 from student order by 分数 desc

C、select top 5 姓名,分数 from student order by 分数 asc

D、select top 5 percent 姓名,分数 from student order by 分数 desc

二、填空题(共 30 分,第 1~15 小题每空 1 分,16~20 小题每空 2 分)

1、T-SQL 中的查询、更新、删除命令分别用 SELECT、(UPDATE)、DELETE

表示。

2、SQL 中的授权命令是(GRANT),权限回收命令是 REVOKE。

3、数据库的三类完整性约束分别为(实体完整性)(参照完整性、)、

用户自定义完整性。

4、数据库系统的核心是(DBMS)。

5 、在 E-R 图中,图形包括矩形框、菱形框、椭圆框,其中表示实体联系的是(菱形框)。

6、(视图)是由一个或多个基本表导出的虚拟表,是关系数据库系统提

供给用户以多种角度观察数据库中数据的重要机制。

7、关系模型中的元组、属性和关系数据库表中的(记录)、字段对应。

8、将已有数据库加到 SQL Server 系统环境中,可以右单击“数据库”项,选择其快捷菜单

中的(附加),完成操作后,就可使用这个数据库了。

9、多表连接时,为了避免产生笛卡尔积,并且得到所需要的检索结果,要使用 WHERE 子句

给出连接条件。一般来说,对 N 个表(或视图)的检索要有(N-1)个连接条件。

10、若有命令 SELECT S.姓名,C.班组FROM STUDENT S,CLASS C…… 则其中的 S 和 C 称

为表的(别名)。

11、SQL Server 中,存储过程有三种,它们分别是(系统存储过程)、用户自定义的存

储过程和扩展存储过程。

12、表中某列为变长字符数据类型 varchar(100),其中 100 表示字符或字节数。假如输入

字符串为 gtym13e5,存储的长度为(8)字节。

13、 Server 查询分析器中使用的注释方式有两种,SQL它们是(单行注释,多行注释)。

14、触发器是一种特殊类型的存储过程,其特别性在于它不需要用户的显式调用,而是在

(事件触发时)自动执行。

15、如果事务遇到错误,则所有的数据更改被取消,系统(回滚到事务起始点)。

16、begin … end 用来定义一个语句块,begin 和 end 之间的语句作为一个单独的执行单

元来执行。如果if …else 或 while 语句中不使用begin … end 语句块,则只执

。行

17、在人事表中若有条件SELECT……FROM……WHERE 姓名LIKE ‘_宝%’,将检索

宝前任一汉字,宝后多个任意汉字。到

以下填空均使用给出的“学生选课”数据库

学生 S(学号 sno,姓名 sname,性别 sex,年龄 age,民族 nation,籍贯 place,所属班级 clname)课程 C(课程编号 cno,课程名称 cname,学期 term,学时 period,学分 credit)

选课 SC(学号 sno,课程编号 cno,成绩 grade)

学生表 S

sno 20080101 20080102 20080205 20080211 20081008 20081010sname

李枫

张强

王依萍

胡东

李小玲

李萍

sex

age

22

29

18

24

20

30

nation

cname

软件工程

软件工程

网络工程

网络工程

英语

英语

place

陕西渭南

陕西榆林

广西玉林

新疆喀什

浙江温州

宁夏吴忠

选课表 SC

Sno 20080101 20080101 20080101 20080101 20080102 20080102 20080102 20080102 20080205 20081008 20081008 20081010Cno

C01

C03

C04

C05

C01

C03

C04

C05

C01

C01

C02

C01

90

85

88

92

80

85

grade

90

90

85

95

课程表 C

Cno C01 C02 C03 C04 C05 C08 C10cname

英语

英语写作

高等数学

数据结构

离散数学

普通物理

计算机网络

term

1

2

1

4

3

2

5

Period

108

36

108

54

72

54

54

credit

6

2

6

3

3

3

3

18、创建课程表 C 与选课表 SC 的一多关系。

Create table SC

(Snochar(10),Cno char(4),grade real,

Constraint PK_S Primary Key (Sno)

Foreign Key (Cno) reference

)

19、以下程序用于查找 S 表是否存在姓名为马东的记录,并显示相关的信息,完成该程序。char(8)Declare

Set @name=’马东’

(select * from S where sname=@name))If (

Print ‘姓名为’+@name+’的同学存在’

Else

Print ‘姓名为’+@name+’的同学不存在’

20、以下创建一个 st_g 的存储过程

st_gcreate

As

Begin

Select x.sno,x.sname,y.grade from S x,SC y where x.sno=y.sno

End

。该程序完成的功能是

三、用T-SQL 命令完成下列各题,所使用的数据库 DBWSBM 关系如下图。(共 40 分,每小题

4 分)

1、显示 DBWSBM 数据库中的 tblkasheng 表、tblxb 表、tblkhmk 表、tblbmdw 表的全部

信息(如图)。

2、显示 tblkaosheng 表中全部员工的姓名(xm)和考试成绩(kscj)的 80%用作平时成

绩,去掉姓名和考试成绩相同的记录,列标题用汉字姓名和平时成绩显示。

3、对 tblkaosheng 表,列出太原理工大学成教院和山西大学成教院的学生名单。

4、对于 tblbmdwdm 和 tblkaosheng,列出太原理工大学所有考生的信息,并将结果存

入 N1 表中。

5、对 tblkaosheng 表,列出按报名单位代码(bmdwdm)统计的考试成绩平均分数,列

出及格的部门编号及平均分。

6、创建一个视图 V1,要求该视图准确包含所有考生的准考证号、姓名、性别、考核模

块和考试成绩。

7、分)为 tblkaosheng 表定义一个全局滚动动态游标 cur_tblkaosheng,用于访问(6

准考证号、姓名、考试时间和考试成绩。并打开声明的游标,读取游标的数据。

8、创建一个存储过程 P1,要求执行改存储过程能够返回考生数据表(tblkaosheng)中bmdwdm(报名单位代码)为 2490 的考生的 zkzh(准考证号)(xm)姓名、性别和 kscj(考、试成绩)结果集,并且该结果集要按照 bmdwdm 和准考证号升序排列

9、为表 tblzy(职业表)创建一个名为 T1 触发器,当执行添加、更新或删除时,激活该

触发器。

10、分)对 tblkasheng 表,给所有不及格的考生的考试成绩加 5 分。(2

《数据库技术与应用》样题参考答案

一、选择题( 共 30 分,1--20 每小题 1 分,21—25 每小题 2 分。下列各题 A)、B)、C)、

D)四个选项中,只有一个选项是正确的 )

1、D

2、B

3、D

4、A

5、A

6、A

7、C

8、B

9、B10、D11、A 12、C 13、D14、A 15、D16、D

17、D 18、D19、A 20、A 21、D22、C23、B 24、A

25、B

二、填空题(共 30 分,第 1~15 小题每空 1 分,16~20 小题每空 2 分)

1、 update

2、 grant

3、实体完整性参照完整性

4、数据库管理系统或 DBMS

5、菱形

6、视图

7、记录

8、附加

9、 N-1

10、别名

11、系统存储过程

12、8

13、--单行注释,/**/多行注释

14、事件触发时

15、回滚到事务起始点

16、紧跟其后的一条语句

17、宝前一个任意汉字,宝后多个任意汉字

18、C(Cno)

19、@nameexists

20、Procedure查询学生选课数据库中所有学生的选课成绩

三、用T-SQL 命令完成下列各题,所使用的数据库关系如下图。(共 40 分,每小题 4 分)

1、select * from tblkaosheng

select * from tblxb

select * from tblkhmk

select * from tblbmdw

2、select DISTINCT xm as 姓名,kscj*0.8 as 平时成绩from tblkaosheng

3、解一:select bmdwmc,xm from tblkaoshengx,tblbmdw y

where x.bmdwdm=y.bmdwdm and bmdwmc='太原理工大学成教院' or bmdwmc='山西大

学成教院'

解二:SELECT tblbmdw.bmdwmc, tblkaosheng.xm

FROM tblkaosheng INNER JOIN

tblbmdw ON tblkaosheng.bmdwdm = tblbmdw.bmdwdm

WHERE (tblbmdw.bmdwmc = '太原理工大学顾教院') OR

(tblbmdw.bmdwmc = '山西大学成教院')

4、select * from tblkaoshengx,tblbmdw y

where x.bmdwdm=y.bmdwdm and bmdwmc like '太原理工大学%'

5、select bmdwdm,AVG(kscj) from tblkaosheng group by bmdwdm having

AVG(kscj)>=60

6、解一:create view V1 as select xm AS 姓名, xbmc AS 性别,khmkmc AS 考核模块,kscj AS 考试成绩from tblkaosheng x, tblxb y, tblkhmk z

Where x. xbdm=y.xbdm and x.khmkdm=z.khmkdm

解二:create view V1` as SELECTtblkaosheng.xm AS 姓名, tblxb.xbmc AS 性别, tblkhmk.khmkmc AS 考核模块, tblkaosheng.kscj AS 考试成绩FROMtblkaosheng INNER JOIN

tblxb ON tblkaosheng.xbdm = tblxb.xbdm INNER JOIN

tblkhmk ON tblkaosheng.khmkdm = tblkhmk.khmkdm

7、use DBWSBM

DECLARE cur_tblkaosheng CURSOR

GLOBAL SCROLL DYNAMIC

FOR

SELECT zkzh,xm,kssj,kscj

FROM tblkaosheng

OPEN cur_tblkaosheng

FETCH NEXT FROM cur_tblkaosheng

WHILE @@fetch_status = 0

BEGIN

END

CLOSE cur_tblkaosheng

DEALLOCATE cur_tblkaosheng

8、create proc P1 as

SELECTtblkaosheng.zkzh, tblkaosheng.xm, tblxb.xbmc,

tblkaosheng.kscj

FROM WHERE

tblkaosheng INNER JOIN

tblxb ON tblkaosheng.xbdm = tblxb.xbdm (tblkaosheng.bmdwdm = 2490)

ORDER BY tblkaosheng.bmdwdm

9、CREATE TRIGGER T1

ON tblzy FOR INSERT,UPDATE,DELETE AS

SELECT * FROM inserted

SELECT * FROM deleted

/*取第一个数据行*/

/* 检查@@fetch_status是否还有数据可取*/

FETCH NEXT FROM cur_tblkaosheng

10、update tblkaosheng set kscj=kscj+5 where kscj<60