SQL Server数据库试题九及答案一、选择题(每题2分,共30分)1、下面不属于数据定义功能的SQL语句是:()A.C REAT TABLEB.CREAT CURSORC. UPDATED.ALTER TABLE2、S QL数据库屮的视图与下列哪项是对应的()。
A.关系模式B.存储模式C.子模式D.以上都不是3、下列选项中不是数据库复制类型的是()。
A.快照复制B.差异复制C.事务复制D.合并复制4、下列说法错误的是:()。
A.一个基本表可以跨一个或多个存储文件B.一个存储文件可以跨一个或多个基本表C.每个存储文件与外部存储器上一个物理文件对应D.每个基木表与外部存储器上一个物理文件对应5、显示包含警告信息或其他信息的消息框,应该使用的操作是()。
A. EchoB. MessageC. WarnD. MsgBox6、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是()。
A.聚集索引B.非聚集索引C.主键索引D.唯一索引7、S QL Server的字符型系统数据类型主要似括()。
A. Tnt、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语句中与HAVING子句同时使用的是()子句。
A. ORDER BYB. WHEREC. GROUP BYD.无需配合1广15题使用如下数据:当前盘当前S录下有数据库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、在当前盘当前A泶下删除表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、函数 deitediff(yeeir, ’ 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⑻,单价float,数量int)商品表2(商品代号char(8),产地char(6),品牌char(6),)在名称为教学库的数据库屮包含有学生、课程和选课三个表,它们的定义分别为: 学生(学生号char⑺,姓名char(6),性别char (2),出生闩期date time,专业 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.从教学库中查询出至少选修了姓名为咖1学生所选课程中一门课的全部学生。
四、设汁题(每题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, Ccrcdit) 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、A 10、 C 11、B 12、 B 13、 B 14、 D 15、 C二、填空题(每空2分,共30分)1、本地存储过程、远程存储过程2、事务円志备份、差异备份、文件和文件组备份3、U PDATE 类型、DELETE 类型4、数据控制语言(或DCL)、数据操作语言(或DML)5、隔离性、持久性6、C onnection Command 和 Recordset7、 7本本本三、简答题(每题5分,共20分)1、什么要创建索引?(4分)答:创建索引可以大大提高系统的性能。
第一,通过创建唯一性索引,可以保证每一行数据的唯一性。
第二,可以大大加快数据的检索速度,这也是所以的最主要原因。
第三,可以加速表与表之间的连接,特别是实现数据的参考完整性方面特有意义。
第四,在使用ORDER BY和GROUP BY子句进行数据检索时,同样可以显著减少査询中分组和排序的吋间。
第五,通过使用索引,可以在査询过程中,使用优化隐藏器,提高系统性能。
2、简述INSERT触发器的工作原理(6分)答:当向表中插入数据时,INSERT触发器触发执行。
当INSERT触发器触发时,新的记录增加到触发器表中和inserted表中。
该inserted表是逻辑表,保存了所插入记录的拷贝,允许用户参考TNSERT语句中的数据。
触发器可以检査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姓名=@ml四、设计题(每题4分,共20分)1、建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage,所在系Sdept五个属性组成,其中学号属性不能为空,并且其值是唯一的。
CREATETABLE Student(Sno CHAR (5) NOT NULL UNIQUE,Sname CHAR(20),Ssex CHAR(l),Sage 1NT,Sdept CHAR (15));2、查考试成绩有不及格的学生的学号SELECT DISTINCT SnoFROM CourseWHERE Grade <60;3、将学生95001的年龄改为22岁UPDATE StudentSET Sage二22WHERE Sno= 9500f ;4、计算1号课程的学生平均成绩SELECT AVG(Grade)FROM SCWHERE Cno= f ;5、创建一存储过程gctDetailByName,通过输入参数学生姓名(如“章山"),筛选出该学生的基本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“不存在此学生”。