SQL Server数据库试题九及答案一、选择题(每题2分,共30分)1、下面不属于数据定义功能的SQL语句是:()A.CREAT TABLEB.CREAT CURSORC.UPDA TED.ALTER TABLE2、SQL数据库中的视图与下列哪项是对应的()。
A.关系模式B.存储模式C.子模式D.以上都不是3、下列选项中不是数据库复制类型的是()。
A.快照复制B.差异复制C.事务复制D.合并复制4、下列说法错误的是: ()。
A.一个基本表可以跨一个或多个存储文件B. 一个存储文件可以跨一个或多个基本表C.每个存储文件与外部存储器上一个物理文件对应D.每个基本表与外部存储器上一个物理文件对应5.显示包含警告信息或其他信息的消息框,应该使用的操作是()。
A.Echo B.Message C.Warn D.MsgBox6、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是()。
A.聚集索引B.非聚集索引C.主键索引D.唯一索引7. SQL Server的字符型系统数据类型主要包括()。
A. Int、money、charB. char、varchar、textC. datetime、binary、intD. char、varchar、int8、以下选项中哪一项不是访问数据库系统的接口()。
A.ODBCB.OLE DBC.APID.ADO9、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是()A.*B.%C.-D.?10、SELECT语句中与HA VING子句同时使用的是()子句。
A.ORDER BYB.WHEREC.GROUP BYD.无需配合11~15题使用如下数据:当前盘当前目录下有数据库db_stock,其中有表stock的内容是:股票代码股票名称单价交易所600600 青岛啤酒7.48 上海600601 方正科技15.20 上海600602 广电电子10.40 上海600603 兴业房产12.76 上海600604 二纺机9.96 上海600605 轻工机械14.59 上海000001 深发展7.48 深圳000002 深万科12.50 深圳11、有如下SQL语句create view stock_view as select * from stock where 交易所=”深圳”执行该语句后产生的视图包含的记录个数是()A.1B.2C.3D.412、有如下SQL语句create view view_stock as select 股票名称as 名称,单价from stock执行该语句后产生的视图含有的字段名是()A.股票、名称、单价B.名称、单价C 名称、单价、交易所D 股票名称、单价、交易所13、执行如下SQL语句后select distinct 单价from stockwhere 单价=(select min(单价) from stock)into dbf stock_x表stock_x中的记录个数是()A.1B.2C.3D.414、求每个交易所的平均单价的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 stockB.DELETE TABLE stockC.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 商品表22.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、A2、C3、B4、D5、D6、C7、B8、C9、A10、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和Recordset7、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 商品表1group 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 SnoFROM CourseWHERE Grade <60;3、将学生95001的年龄改为22岁UPDATE StudentSET Sage=22WHERE Sno='95001';4、计算1号课程的学生平均成绩SELECT A VG(Grade)FROM SCWHERE Cno='1';5、创建一存储过程getDetailByName,通过输入参数学生姓名(如“章山"),筛选出该学生的基本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“不存在此学生”。