您的当前位置:首页正文

SQL_Server数据库试题九及答案

2022-02-11 来源:步旅网
SQL Server数据库试题九及答案

一、选择题(每题2分,共30分)

1、下面不属于数据定义功能的SQL语句是:( )

A.CREAT TABLE B.CREAT CURSOR C.UPDATE D.ALTER TABLE 2、SQL数据库中的视图与下列哪项是对应的( )。 A.关系模式 B.存储模式 C.子模式 D.以上都不是 3、下列选项中不是数据库复制类型的是( )。 A.快照复制 B.差异复制 C.事务复制 D.合并复制 4、下列说法错误的是: ( )。

A.一个基本表可以跨一个或多个存储文件 B. 一个存储文件可以跨一个或多个基本表

C.每个存储文件与外部存储器上一个物理文件对应 D.每个基本表与外部存储器上一个物理文件对应

5.显示包含警告信息或其他信息的消息框,应该使用的操作是( )。 A.Echo B.Message C.Warn D.MsgBox

6、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是( )。 A.聚集索引 B.非聚集索引 C.主键索引 D.唯一索引 7. SQL Server的字符型系统数据类型主要包括( )。 A. Int、money、char B. char、varchar、text C. datetime、binary、int D. char、varchar、int

8、以下选项中哪一项不是访问数据库系统的接口( )。 A.ODBC B.OLE DB C.API D.ADO

9、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是( ) A.* B.% C.- D.?

10、SELECT语句中与HAVING子句同时使用的是( )子句。 A.ORDER BY B.WHERE C.GROUP BY D.无需配合 11~15题使用如下数据:

当前盘当前目录下有数据库db_stock,其中有表stock的内容是: 股票代码 股票名称 单价 交易所 青岛啤酒 7.48 上海 方正科技 15.20 上海 广电电子 10.40 上海 兴业房产 12.76 上海 二纺机 9.96 上海 轻工机械 14.59 上海 深发展 7.48 深圳 深万科 12.50 深圳 11、有如下SQL语句

create view stock_view as select * from stock where 交易所=”深圳” 执行该语句后产生的视图包含的记录个数是( ) A.1 B.2 C.3 D.4 12、有如下SQL语句

create view view_stock as select 股票名称 as 名称,单价 from stock 执行该语句后产生的视图含有的字段名是( ) A.股票、名称、单价 B.名称、单价

C 名称、单价、交易所 D 股票名称、单价、交易所 13、执行如下SQL语句后

select distinct 单价 from stock

where 单价=(select min(单价) from stock)into dbf stock_x 表stock_x中的记录个数是 ( ) A.1 B.2 C.3 D.4

14、求每个交易所的平均单价的SQL语句是( )

A.SELECT(交易所,avg(单价)FROM stock GROUP BY 单价 B. SELECT(交易所,avg(单价)FROM stock ORDER BY 单价 C. SELECT(交易所,avg(单价)FROM stock ORDER BY 交易所 D. SELECT(交易所,avg(单价)FROM stock GROUP BY交易所 15、在当前盘当前目录下删除表stock的命令是( ) A.DROP stock B.DELETE TABLE stock C.DROP TABLE stock C.DELETE stock

二、填空题(每空2分,共30分)

1、SQL Server 2000支持5种类型的存储过程:系统存储过程、 、 临时存储过程、 和扩展存储过程。

2、在Microsoft SQL Server系统中,数据库备份的类型包括:数据库备份、 、 和 。 3、触发器有3种类型,即INSERT类型、 和 。

4、Transact-SQL语言有4部分元素组成,分别是: 、数据定义语言、 和一些附加的语言元素。 5、事务的4个属性:原子性、一致性、 和 。

6、ADO的对象模型为层次结构,主要的ADO对象有3个: 、 、和 。

7、函数datediff(year,’1998-10-12’, ’2005-1-17’)的执行结果是 ;函数str(1234.56,3,1)的执行结果是 。

三、简答题(共3题,20分) 1、 为什么要创建索引(4分)

2、 简述INSERT触发器的工作原理(6分)

3、根据所给的商品库和教学库,按照下列所给的每条SQL查询语句写出相应的功能,或者按照下列所给的每种功能写出相应的SQL查询语句。(每小题2分,共10分)

在名称为商品库的数据库中包含有商品表1和商品表2,它们的定义分别为: 商品表1(商品代号 char(8),分类名 char(8),单价 float,数量 int) 商品表2(商品代号 char(8),产地 char(6),品牌 char(6),)

在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为: 学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime, 专业 char(10),年级 int)

课程(课程号 char(4),课程名 char(10),课程学分 int

选课(学生号 char(7),课程号 char(4),成绩 int) 1.select distinct 产地 from 商品表2

2.select * from 学生

where 学生号 in (select 学生号 from 选课

group by 学生号 having count(*)=1 )

3.select * from 学生

where 学生号 in (select 学生号 from 选课

group by 学生号 having count(*)<=2 ) or not exists (select * from 选课

where 学生.学生号=选课.学生号 )

4.从商品库中查询出每类(即分类名相同)商品的最高单价。

5.从教学库中查询出至少选修了姓名为@m1学生所选课程中一门课的全部学生。

四、设计题(每题4分,共20分)

有一个“学生-课程”数据库,数据库中包括三个表: (1) “学生”表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为: Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字。

(2) “课程”表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,可记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。

(3) “学生选课”表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,可记为: SC(Sno,Cno,Grade) (SNO, CNO) 为关键字。 完成下列操作:

1、建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成,其中学号属性不能为空,并且其值是唯一的。

2、查考试成绩有不及格的学生的学号

3、将学生95001的年龄改为22岁

4、计算1号课程的学生平均成绩

5、创建一存储过程getDetailByName,通过输入参数学生姓名(如“章山\"),筛选出该学生的基本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“不存在此学生”。 参考答案

一、选择题(每题2分,共30分)

1、 A 2、C 3、B 4、D 5、D 6、C 7、B 8、C 9、A 10、C 11、B 12、B 13、B 14、D 15、C

二、填空题(每空2分,共30分) 1、本地存储过程、远程存储过程

2、事务日志备份、差异备份、文件和文件组备份 3、UPDATE类型、DELETE类型

4、数据控制语言(或DCL)、数据操作语言(或DML) 5、隔离性、持久性

6、Connection Command和Recordset 7、 7 ***

三、简答题(每题5分,共20分) 1、什么要创建索引?(4分)

答:创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是所以的最主要原因。第三,可以加速表与表之间的连接,特别是实现数据的参考完整性方面特有意义。第四,在使用ORDER BY和GROUP BY子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询过程中,使用优化隐藏器,提高系统性能。

2、简述INSERT触发器的工作原理(6分)

答:当向表中插入数据时,INSERT触发器触发执行。当INSERT触发器触发时,新的记录增加到触发器表中和inserted表中。该inserted表是逻辑表,保存了所插入记录的拷贝,允许用户参考INSERT语句中的数据。触发器可以检查inserted表,来确定该触发器的操作是否应该执行和如何执行。在inserted表中的哪些记录,总是触发表中一行或多行记录的冗余。

3、根据商品库和教学库,按照下列所给的每条SQL查询语句写出相应的功能,或者按照下列所给的每种功能写出相应的SQL查询语句。(每小题2分,共10分) 1. 从商品库中查询出所有商品的不同产地。

2. 从教学库中查询出只选修了一门课程的全部学生。

3. 从教学库中查询出最多选修了2门课程(含未选任何课程)的全部学生。

4. select 分类名,max(单价) as 最高单价 from 商品表1 group by 分类名

5. select distinct 学生.* from 学生,选课

where 学生.学生号=选课.学生号 and 课程号=any(select 课程号 from 学生,选课

where 学生.学生号=选课.学生号 and 姓名=@m1 )

四、设计题(每题4分,共20分)

1、建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成,其中学号属性不能为空,并且其值是唯一的。 CREATETABLE Student

(Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20), Ssex CHAR(1), Sage INT,

Sdept CHAR(15));

2、查考试成绩有不及格的学生的学号 SELECT DISTINCT Sno FROM Course WHERE Grade <60;

3、将学生95001的年龄改为22岁 UPDATE Student SET Sage=22

WHERE Sno='95001';

4、计算1号课程的学生平均成绩 SELECT AVG(Grade) FROM SC

WHERE Cno='1';

5、创建一存储过程getDetailByName,通过输入参数学生姓名(如“章山\"),筛选出该学生的基本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“不存在此学生”。 Create procedure getDetailByName @name nvarchar(10) AS

IF (SELECT COUNT(*) FROM Student WHERE Sname = @Name) > 0 SELECT * FROM Student

Where Sname = @Name ELSE

SELECT 警示 = '不存在姓名为 ' + @Name + ' 的学生资料'

因篇幅问题不能全部显示,请点此查看更多更全内容