文档库 最新最全的文档下载
当前位置:文档库 › SQL试卷(复习考试含答案)

SQL试卷(复习考试含答案)

SQL Server 2000试卷

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

1.(A)是位于用户和操作系统之间的一层数据管理软件。数据库在建立、使用和维护时由其统一管理、统一控制。

A.DBMS B.DB C.DBS D.DBA

2.在以下系统自带的几个数据库中,可以删除的是()

A. master , tempdb

B. model , msdb

C. pubs , Northwind

D. Northwind , tempdb

答案:C

3.下列哪一个数据库不是SQL Server 2000的系统数据库(C )

A.master数据库B.msdb数据库C.pubs数据库D.model数据库

4.SQL语言允许使用通配符进行字符串匹配,其中‘%’可以表示(d )

A、零个字符

B、1个字符

C、多个字符

D、以上都可以

5、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(_1-B_),使用关键字(_2-A_)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(_3-B__),如果在SELECT语句中使用聚合函数时,一定在后面使用(_4-A_)。

⑴ A、SELECT,INTO B、SELECT,FROM

C、SELECT,GROUP

D、仅SELECT

⑵ A、DISTINCT B、UNION

C、ALL C、TOP

⑶ A、JOIN B、UNION

C、INTO C、LIKE

⑷ A、GROUP BY B、COMPUTE BY

C、HAVING

D、COMPUTE

6、在WINDOWS98操作系统下,只能安装SQL Server2000(C )

A、企业版

B、标准版

C、个人版

D、测试版

7、利用查询分析器,能(B )。

A、直接执行SQL语句

B、提交SQL语句给服务器执行

C、作为企业管理器使用

D、作为服务管理器使用

8、事务日志文件的默认扩展名是(C )。

A、MDF

B、NDF

C、LDF

D、DBF

9、通过使用文件组,可以( D )。

A、提高存取数据的效率。

B、提高数据库备份与恢复的效率

C、简化数据库的维护

D、ABC都可以。

10、 SQL Server的主数据库是(A )。

11、数据库的容量,( D )。

A、只能指定固定的大小。

B、最小为10M

C、最大100M。

D、可以设置为自动增长

12、日期时间型数据类型(datetime)的长度是( C )。

A、2

B、4

C、8

D、16

13、表在数据库中是一个非常重要的数据对象,它是用来(___C___)各种数据内容的。

A、显示

B、查询

C、存放

D、检索

14、为数据表创建索引的目的是(__A____),可以在创建表时用(____C____)来创建唯一索引。

A、提高查询的检索性能

B、创建唯一索引

C、创建主键

D、归类

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

A.master B.model

C.tempdb D.msdb

16.Microsoft公司的SQL Server数据库管理系统一般只能运行于( A )。

A.Windows平台B.UNLX平台

C.LINX平台 https://www.wendangku.net/doc/df4075314.html,Ware平台

17、在SQL Server服务器上,存储过程是一组预先定义并(___B____)的T-SQL语句。

A、保存

B、编译

C、解释

D、编写

18、替代触发器(instead of)是在触发触发器的修改操作( D )执行。

A、执行后

B、停止执行时

C、同时

D、之前

19.下列可以查看表的行数以及表使用的存储空间信息的系统存储过程是( A )

A. sq_spaceused

B. sq_depends

C. sq_help

D. sq_rename

答案:A

20.下列哪个约束不可以为空?(A)

A. 主键

B. 外键

C. 默认键

D. UNIQUE约束

答案:A

21.下列特点哪一项是视图所不具备的?( D )

A 分割数据,屏蔽用户所不需要浏览的数据

B 提高应用程序和表之间的独立性,充当程序和表之间的中间层

C 降低对最终用户查询水平的要求

D 提高数据的网络传输速度

答案:D

23.在SQL2000的查旬语句中,若查询表纪录中所有au_id满足前两个字母为“88”的纪录,则下列正确Where字句是( C )

A. Where au_id='88%'

B. Where au_id = link '88%'

C. Where au_id like '88%'

D. Where au_id link '88%'

答案: C

24.在通常情况下,下列哪个对象不是数据库对象?( D )

A: View B: Table C: Rule D:Word

25.下列哪个数据库是可以在运行在SQL SEVER 过程中被删除的?( D )

A:master B:model C: pubs D:northwind

26.选择要执行操作的数据库,应该哪个SQL命令?( A )

A:USE B:GO C:EXEC D:DB

A:经常被查询搜索的列,如经常在where 子句中出现的列

B:是外键或主键的列

C:包含太多重复选用值的列

D:在DRDER BY子句中使用的列

28、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(1_B__),使用关键字(2_A__)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(3__B_),如果在SELECT语句中使用集合函数时,一定在后面使用(4__A_)。

⑴ A、SELECT,INTO B、SELECT,FROM C、SELECT,GROUP D、仅SELECT

⑵ A、DISTINCT B、UNION C、TOP D、ALL

⑶ A、JOIN B、UNION C、INTO D、LIKE

⑷ A、GROUP BY B、COMPUTE BY C、HAVING D、COMPUTE

29. Transact-SQL对标准SQL的扩展主要表现为( A )。

A. 加入了程序控制结构和变量

B. 加入了建库和建表语句

C. 提供了分组(Group By)查询功能

D. 提供了Min、Max等统计函数

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

A. @@Error

B. @@Connections

C. @@Fetch_Status

D. @Records

31. Transact-SQL支持的程序结构语句中的一种为( A )。

A. Begin…End

B. If….Then…..ELSE

C. Do Case

D. Do While

32. SQL语言中,删除一个视图的命令是(B )。

A.DELETE

B.DROP

C.CLEAR

D.REMOVE

33. 下列的SQL语句中,(D )不是数据定义语句。

A. CREATE TABLE

B. DROP VIEW

C. CREATE VIEW

D. GRANT

34. 若要撤销数据库中已经存在的表S,可用(C )。

A. DELETE TABLE S

B. DELETE S

C. DROP TABLE S

D. DROP S

答案:1. B 2.A 3. D 4.C

35.SQL Server标准版不支持的操作系统是(C )。

A. Windows 2000 Server B. Windows NT Server

C. Windows 98 D. Windows 2000 Advanced Server

36.SQL Server系统中的所有系统级信息存储于哪个数据库(答案 A )。

A.master B.model

C.tempdb D.msdb

37.对于UPDATA语句的实现说法正确的是:( C )

A. 对于UPDATA一次只能修改一列的值

B. 对于UPDATA只能修改不能赋值

C. 对于UPDATA可以指定要修改的列和想赋予的新值

D. 对于UPDATA不能加WHERE条件

38.下列哪个关键字在SELECT 语句中表示所有列:(A)

A. *

B. ALL

C. DESC

D. DISTINCT

A. Int、money、char

B. char、varchar、text

C. datetime、binary、int

D. char、varchar、int

40.如果希望完全安装SQL Server,则应选择( A )。

A. 典型安装

B. 最小安装

C. 自定义安装

D. 仅连接

41.进行SQL Server数据库服务器打开、关闭等操作的工具是( A )

A.服务管理器 B.企业管理器 C.查询分析器 D.网络连接工具

42.数据查询语句SELECT的语法中,必不可少的子句是( B )

A.SELECT和WHERE B.SELECT和FROM C.FROM D.SELECT

43.SQL数据定义语言中,表示外码约束的关键字是( B )

A.UNIQUE B.FOREIGN KEY C.PRIMARY KEY D.CHECK

45. 下列哪个统计函数可以计算平均值?(B)

A:sum B:avg C:count D:min

46. 下列哪个统计函数可以计算某一列上的最大值?(C)

A:sum B:avg C:max D:min

47. 下列哪种数据类型上不能建立IDENTITY列?(B)

A:int B:tiny int C :float D:small int

答案:B

48、下列那种情况适合建立索引(B )

A:在查询中很少被引用的列;B:在Order by子句中式用的列;

C:包含太多重复选用值的列;D:数据类型为bit、text、image等的列。

49、下列那种情况不适合建立索引(B )

A:经常被查询搜索的列;B:包含太多重复选用值的列;

C:是外键或主键的列;D:该列的值唯一的列。

答案:1、B 2、B

假定有3种关系,学生关系S、课程关系C、学生选课关系SC,它们的结构如下:

S(S#(学号) , SN(姓名) , SEX(性别) , AGE(年龄) , DEPT(系别)) C (C#(课程号) , CN(课程名) )

SC (S#(学号) , C#(课程号) , GRADE(成绩) )

其中S# 为学生号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C# 为课程号,CN为课程名,GRADE为成绩。检索所有比“李军”年龄大的学生的姓名、年龄和性别,正确的SQL语句是___A___。

A: SELECT SN,AGE,SEX

FROM S

WHERE AGE > ( SELECT AGE

FROM S

WHERE SN = “李军” )

B: SELECT SN,AGE,SEX

FROM S

WHERE AGE >( SN = “李军”)

C: SELECT SN,AGE,SEX

FROM S

WHERE SN=“李军”)

D: SELECT SN,AGE,SEX

FROM S

WHERE AGE>李军.AGE

答案:A

50. 下列哪个关键字在语句中表示所有的列?(A)

A:* B:ALL C:DESC D:DISTINCT

二、填空题:

1、创建好的规则必须_____邦定_____到列或用户自定义的数据类型上才能起作用.

2、用SELECT进行模糊查询时,可以使用________运算符,并且模糊查询只能针对________字段类型。

3、计算字段的累加和的函数是:__ SUM_____,统计项目数的函数是:________。

4. sqlserver2000数据库使用的操作系统文件为______主数据文件__________和______二级数据文件__________,______日志文件__________三大类。

主数据文件,二级数据文件,日志文件

5. SQL Server中索引类型包括的三种类型分别是________聚集索引_________,_____唯一索引____________和_______非聚集索引_____________。

6、认证模式类型有____ Windows认证模式______ 和 _____混合模式________两种。答案:Windows认证模式、混合模式

7. 与DISTINCT功能相对应的是______UNDISTINCT__________关键字

8、要访问SQL Server数据库,都必须经过安全检查。SQL Server2000使用两层安全机制确认用户的有效性,____________验证和 _____________验证两个阶段。

9、SQL Server中索引类型包括的类型分别是唯一索引, ___非聚集索引___________和聚集索引。

11、数据库存储在磁盘的物理文件有____主数据文件__________、__二级数据文件____________和___日志文件________。

12、创建数据库时,默认是将数据文件存放在_______________文件组中。

13、整型数据有四种类型:___int________、____short_______、____long_______与 ___tiy int_______ 。

14、数据完整性可分为________完整性、________完整性、________完整性和用户自定义完整性。

15、通过外键约束可以为相关联的两个表建立联系,实现数据的__________完整性。

17、触发器可以实现比CHECK约束更为复杂的________________。

18、触发触发器的三个操作是______insert_________,_____update________,_____delete_________,

19、如果一个批处理中包含了一个语法错误,则整个批处理不能成功地____执行________。

8、要访问SQL Server数据库,都必须经过安全检查。SQL Server2000使用两层安全机制

9、SQL Server中索引类型包括的类型分别是唯一索引, ____非聚集索引__________和聚集索引。

20、事务可以用于确保数据能够正确地被修改,事务有四个特性,分别为_________、_________、_________、_________。

21、SQL Server 数据库系统的安全性可以分为四个层次,分别是:客户机操作系统的安全性,SQL Server的登陆安全性, 数据库的使用安全性和数据库对象的使用安全性.

答案:

客户机操作系统的安全性,SQL Server的登陆安全性,

数据库的使用安全性,数据库对象的使用安全性

题型:填空题

题目:向表中添加记录后,添加的记录临时存储在__inserted____表中;删除表中记录后,被删除的记录临时存储在__deleted___表中;修改表中记录后,被修改的记录临时存储在__ inserted或deleted _______表中。

答案:inserted

deleted

inserted或deleted 42

题目:二. 在SQL Server 中一张表可以有多个触发器。用户可以针对______insert_____,_____update_____或_____delete___语句分别设置触发器,也可以针对一张表上的特定操作设置多个触发器。

答案:INSERT,UPDATE,DELETE

约束的用途是限制用户输入到表中的值的范围。SQLServer根据不同的用途提供了多种约束,分别是_主键约束_, _外键约束__, __核查约束__, ___________, _________, ____________。答案:PRIMARYKEY约束,FOREIGNKEY约束,UNIQUE约束,CHECK约束,NULLab ukuty约束, CASCADE级联引用一致性约束。

三、判断题

1、 ( )在CREATE INDEX语句中,使用CLUSTERED来建立聚集索引。

2、 ( ) 在 Transact-SQL 语句中,对不符合所有标识符规则的标识符必须进行分隔。

3、 (√) 在SQL SERVER中,替代触发器的执行是在数据的插入、更新或删除之前执行的。

4、 (√)因为通过视图可以插入、修改或删除数据,因此视图也是一个虚实表,SQL SERVER

5、 (√)当登录到WINDOWS的用户与SQL Server联接时,用户不用提供SQL Server帐号,这种认证模式就是WINDOWS认证机制。

6、(×)可以在企业管理器中修改数据库的名称。

7、()通配符“_”表示某单个字符。

8、()域完整性又称为引用完整性。

9、(×)默认值绑定到列上后,该列上的数据将固定不变。

10 (√)一个表上只能建立一个聚集索引。

11. SQL sever 在进行数据操作时,总是先写数据库,然后记录日志。()

答案:错误

12. 在CREATE INDEX语句中,使用CLUSTERED来建立簇索引。()

13、恢复数据,可以在查询分析器中使用这样的命令:

BACKUP DATABASE database_name FROM backup ( )

答案:判断:1、√ 2、× 3、× 4、×

14. 如果使用别名来代表一个表,那么再定义别名后的所有查询语句中,都必须使用别名来代表表的全名,否则系统会出错(√)

15. 在查询语句中系统最先执行的操作是搜索当前系统查询所使用的表,所以最先执行的语句是 FROM 子句(√)

16. 下列特点那一项是视图所不具备的?(D)

A 分割数据,屏蔽用户所不需要浏览的数据

B 提高应用程序和表之间的独立性,充当程序和表之间的中间层

C 降低对最终用户查询水平的要求

D 提高数据的网络传输速度

答案:D

17. 当用户删除一个表(DROP TABLE)后,建立在该表上的视图不存在了。()

18. 用户要删除视图时,必须隐式的使用DROP VIEW 命令。()

19. EXISTS 所采用的不是等号,也不是IN关键字,它直接与嵌套查询相关。()

答案:

1,错。2,错。3,对。

20. ALL 关键字允许重复数据集合的出现。(对)

21. SQL SEVER 所有操作都将记录在日志里。(错)

23. 在查询中很少被引用的列上创建索引可以极大的提高查询性能。(错)

24:一个数据库文件不能存在于两个或两个以上的文件组里。日志文件不属于任何文件组。(对)

22. 可以在企业管理器中修改数据库的名称。(×)

23. 在CREATE INDEX语句中,使用CLUSTERED来建立簇索引。(√)

1.请阐述进行数据备份时使用的三种设备各有什么特点?

答案:SQL Server提出不三种主要的备份策略,分别是:只备份数据库、备份数据库和事物日志、增量备份。

只备份数据库的特点:

它只备份数据库而不另外备份事务日志,则当数据库出现意外以后,最多能够把数据库恢复到上一次备份操作结束时的状态。自从上次备份结束以后的所有数据库修改将会丢失。

备份数据库和事务日志的特点:

它可以在意外发生时有效地实现数据库的恢复。所有在意外发生时已经完成的事务都将被恢复。只有在意外发生时,还没有提交的事务才会丢失。

增量备份的特点:

增量备份是一种可以增加备份操作速度,从而减少备份时间策略。它自上次全面备份以来,数据库又发生的一系列新的变化。

2.什么情况下必须为视图提供列名?

答案:当遇到以下几种情况时应该为视图提供列名:

(1)该列是从表中的计算或者从一个常量继承

(2)当视图从多个表中产生,而这些表又有数据列重名的情况

(3)当视图中有一个数据列使用了同表格中相应列不同名名字的时候,所有列名都以必须给出。只能在当前数据据库中创建图。视图最多可以引用1024列。

3.请简述COMPUTE子句和GROUP BY子句的区别。

答案:(1)通过使用GROUP子句只能产生一个结果集。对分类分出的每一类数据民只能产生一行结果,包括分类的列和进行统计的列。在使用GROUP BY子句的SELECT句子中也始终只能包含分类所需要的列和进行统计计算的列。

(2)COMPUTE子句可以返回多种结果集。一种是体现数据细节的每一行数据,并按可以按分类要求进行正确的分类。另一类结果是在分类的基础上进行求和运算统计产生的结果。在使用COMPUTE子句的SELECT句子中也可以包含出分类所需的列和统计计算列以外的其他列。

4. SQL中提供了哪几种备份策略?

答案:主要提供了以下几种策略

一,只备份策略二,备份数据库和事务日志三,增量备份

5.请阐述数据库操作系统文件的种类?

答案:主数据文件,二级数据文件,日志文件。

希望出版社

p319

p322 2 5 6 7

二、请查询在NorthWind中的Employees表中,以字母A作第一个字母的雇员的FirstName 和LastName.

答案是:

use NorthWind

go

select FirstName,LastName

from Employees

where FirstName like 'A%'

go 25

三.操作题(共50分)

1.已知学生数据库中存在这样的三张表,Student(Sno,Sname,S***,Sage,Sdept), Course(Cno,Cname,Cpno,Ccredit), SC(Sno,Cno,Grade),按要求完成下列*作:

⑴创建一个规则,规则名为RU_Student,要求将该规则绑定到表Student的字段’Sage’上,限制该字段的值为16—25 (5分)

⑵创建一个默认值,默认值名为DE_Course, 要求将该默认值绑定到表Course的字段’Ccredit’上,设置该字段的默认值为5 (5分)

⑶查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列(2分)

⑷查询选修了课程名为“信息系统”的学生学号和姓名(用嵌套查询完成)(3分)

⑸查询每个学生的学号、姓名、选修的课程名及成绩(涉及到3张表的连接,用2种语法格式完成)(6分)

⑹在查询的基础上创建一张新表student1,把跟’刘晨’在同一个系学习的学生的基本信息放到表student1中(4分)

⑻查询选修了3门以上课程的学生学号(3分)

2.语句转换:

⑴在学生表Student(Sno,Sname,Sage,S***,Sdept)中,Sno是其主码,在表Student中有这样一个元组(‘001’,‘刘晨’,19,‘女’,‘CS’),现在想把其学号修改为‘0421000501’的SQL语句为:

update student set Sno=‘0421000501’where Sno=‘001’

现要求用元组关系演算语言ALPHA来完成上述*作。(5分)

3. 已知学生数据库中存放了这样的两张表,如下所示,一张为毕业生信息表,记录毕业生的一些基本信息,一张为学生缴费表,记录了学生的缴费信息。由于学生毕业,我们要从学生信息表中把毕业生的记录删除,但是如果这个学生欠费的话,则不允许删除这个学生的记录,要求:删除毕业生信息表中的哪条记录,必须通过存储过程实现,并带有输入参数,而判断该学生是否欠费,必须使用触发器实现。(10分)

毕业生信息表

学号姓名性别地址联系方式

001 吴迪男淮南市潘集镇赵前村18号 0554-*******

002 潘倩萍女芜湖市繁昌县孙村镇65号 0553-*******

003 余建星男黄山市歙县北岸镇52号 0559-*******

004 贺艳女蚌埠市长淮卫镇淮上村85号 0552-*******

学生缴费表

学号姓名已交费用欠费

001 吴迪 5000 400

002 潘倩萍 5400 0

003 余建星 4000 1400

004 贺艳 3000 2400

四、操作编码题:

现要为学校建立一个数据库,设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生。 . 现要建立关于系、学生、班级的数据库,关系模式为: 学生 STUDENT (学号,姓名,性别,年龄,班号)

班 CLASS (班号,专业名,系名,入学年份)

系 DEPARTMENT (系号,系名)

试用 SQL 语言完成以下功能:

1、建表,在定义中要求声明:

( 1 )每个表的主外码。

( 2 )学生的年龄介于 15 到 40 岁之间。

( 3 )学生姓名不能为空。

( 4 )只有班里没有学生的时候,才能删除该班级。

2、插入如下数据

CLASS (

101 ,软件,计算机, 1995 ; 102 ,微电子,计算机, 1996 ;

111 ,无机化学,化学, 1995 ; 112 ,高分子化学,化学, 1996 ;

141 ,国际贸易,经济, 1997 ; 142 ,国际金融,经济, 1996 ;

STUDENT (

8101 ,张三,男, 18 , 101 ; 8102 ,钱四,女, 16 , 121 ;

8103 ,王玲,女, 17 , 131 ; 8105 ,李飞,男, 19 , 102 ;

8109 ,赵四,女, 18 , 141 ; 8110 ,李可,女, 20 , 142;

8201 ,张飞,男, 18 , 111 ; 8302 ,周瑜,男, 16 , 112 ;

8203 ,王亮,男, 17 , 111 ; 8305 ,董庆,男, 19 , 102 ;

8409 ,赵龙,男, 18 , 101 ; 8510 ,李丽,女, 20 , 142 )

DEPARTMENT(

01,中文; 02,计算机;

03,数学; 04,化学;

05,经济;)

3 完成以下查询功能

( 1 )找出所有姓李的学生,并按其年龄由小到大排序。

( 2 )列出所有开设超过两个专业的系的名字。

( 3 )列出学生的基本信息、入学年份、所在系的名称。

( 4 )列出年龄在19~20之间的学生的姓名、系名和年龄

4.创建一个视图,包含学生的姓名,性别,班号和系号。

5.在班级表建立一个触发器,当某班号的记录被删除时,学生表中对应班号的记录自动删除。

6. 找出当月的天数

select datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' as datetime))))

7. 用查询分析器创建一个学生数据库(student),将数据文件和日志文件都存放在D 盘自已学号的目录下。其中数据文件和日志文件初始大小都为1MB,自动增长率都为10%。答案:

CREATE DATABASE student

ON

(NAME = student_Data,

FILENAME = 'D:\自己的学号\student.MDF' ,

SIZE = 1, FILEGROWTH = 10%)

LOG ON (NAME = student_Log,

FILENAME = 'D:\自己的学号\student.LDF' ,

SIZE = 1, FILEGROWTH = 10%)

GO

题目:使用触发器阻止用户修改Employees表中的EmployeeID列。

解答:

USE Northwind

GO

CREATE TRIGGER Employee_Update

ON Employees

FOR UPDATE

AS

IF UPDATE (EmployeeID)

BEGIN

RAISERROR ('Transaction cannot be processed.\

***** Employee ID number cannot be modified.', 10, 1)

ROLLBACK TRANSACTION

END

学生(学号,姓名,性别,年龄,系)课程(科称号,课程名称)选课(学号,课程号,成绩)将选课在5门以上(包括5门)的学生的学号,姓名,平均分和选课门数按平均分降序排序,并将结果存于数据库表stu_temp(字段名为学号,姓名,平均分和选课门数)方法一: select 学生.学号,姓名,avg(成绩) as 平均分,count(*) as 选课门数 from 学生,选课; where 学生.学号=选课.学号; order by 平均分desc; group by 选课.学号having count(*)>=5; into table stu_temp 方法二: select a.学号,a.姓名,avg(b.成绩) 平均分,count(b.课程号) 选课门数 from 学生 a,选课 b where a.学号=b.学号group by b.学号 having(count(b.课程号))>=5 order by 平均分 desc into dbf stu_temp 10

题型:简答题目: 在数据库company的表employee中创建二个触发器,报告员工加入和离开本公司. USE company GO Create TRIGGER 触发器_欢迎新员工 ON employee AFTER Insert AS PRINT'新员工加入本公司,欢迎欢迎!' GO Create TRIGGER 触发器_员工走了 ON employee AFTER Delete AS PRINT'真遗憾看你离开公司!' 11

出题人:秦飞飞题型:简答题目: 在数据库company的表employee中创建二个触发器,报告员工加入和离开本公司. USE company GO Create TRIGGER 触发器_欢迎新员工 ON employee AFTER Insert AS PRINT'新员工加入本公司,欢迎欢迎!' GO Create TRIGGER 触发器_员工走了 ON employee AFTER Delete AS PRINT'真遗憾看你离开公司!'

6. 现有1销售表,它们结构如下:

id int (标识号)

codno char(7) (商品编码)

codname varchar(30) (商品名称)

spec varchar(20) (商品规格)

price numeric(10,2) (价格)

sellnum int (销售数量)

deptno char(3) (售出分店编码)

selldate datetime (销售时间)

要求:写出查询销售时间段在2002-2-15日到2002-4-29之间,分店编码是

答案:SELECT * FROM 销售表

WHERE (selldate >= '2002-2-15' AND selldate <='2002-4-29') AND deptno = '01'

7. 从表student中查询年龄在20至23岁之间的学生的姓名(Sname)、系别(Sdept)、和年龄(Sage)。答案: SELECT Sname, Sdept, Sage FROM Student WHERE Sage BETWEEN 20 AND 23

8. 基于学生-课程数据库中的三个基本表:

学生信息表:s(sno, sname, sex, age, dept) 主码为sno

课程信息表:c(cno, cname, teacher) 主码为cno

学生选课信息表:sc(sno, cno, grade) 主码为(sno, cno)

(1) “从学生选课信息表中找出无成绩的元组”的SQL语句是

A) SELECT * FROM sc WHERE grade=NULL

B) SELECT * FROM sc WHERE grade IS ‘ ’

C) SELECT * FROM sc WHERE grade IS NULL

D) SELECT * FROM sc WHERE grade =‘ ’

(2) 在“查询选修课程号为4,且成绩在80分以上的所有学生的学号和姓名”的SQL语句中,将使用的表是

A) 学生信息表S

B) 学生信息表S和课程信息表c

C) 学生信息表S、课程信息表c和学生选课信息表sc

D) 学生信息表S和学生选课信息表sc

答案:(1):D

(2):D

已知关系模式:

S (SNO,SNAME)学生关系。SNO 为学号,SNAME 为姓名

C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师

SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩

1. 找出没有选修过“李明”老师讲授课程的所有学生姓名

--实现代码:

SELECT SNAME FROM S

WHERE NOT EXISTS(

SELECT * FROM SC,C

WHERE https://www.wendangku.net/doc/df4075314.html,O=https://www.wendangku.net/doc/df4075314.html,O

AND CNAME='李明'

AND SC.SNO=S.SNO)

2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩--实现代码:

SELECT S.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)

FROM S,SC,(

SELECT SNO

FROM SC

WHERE SCGRADE<60

GROUP BY SNO

HAVING COUNT(DISTINCT CNO)>=2

)A WHERE S.SNO=A.SNO AND SC.SNO=A.SNO

GROUP BY S.SNO,S.SNAME

3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名

SELECT S.SNO,S.SNAME

FROM S,(

SELECT SC.SNO

FROM SC,C

WHERE https://www.wendangku.net/doc/df4075314.html,O=https://www.wendangku.net/doc/df4075314.html,O

AND https://www.wendangku.net/doc/df4075314.html,AME IN('1','2')

GROUP BY SNO

HAVING COUNT(DISTINCT CNO)=2

)SC WHERE S.SNO=SC.SNO

5. 写出一条修改数据库定义的语句,将AAA数据库的初始大小更改为5MB,最大空间限定为10MB。

答案:

ALTER DATABASE AAA

MODIFY FILE (

NAME = AAA_data,

SIZE = 5,

MAXSIZE=10

)

(1)创建一个名为Student的表用于存放学生信息,表包含以下列:学号:Sno(char(5)),姓名:Sname(char(10))、性别:Ssex(char(2)、年龄:Sage(Smallint),系别:Sdep(varchar(10))

各列均不能为空值。(2)并向表中插入记录,学号:’04160’、姓名:’王燕’、性别 :’女’、年龄:22、系别: ’计算机科学系’

答案:输入SQL语句:

(1)create table student(Sno char(5) not null unique

Sname char(10) unique,

Ssex char(2),

Sage smallint,

Sdept char(10));

(2)insert into student(Sno, Sname, Ssex, Sage, Sdep)

Value(‘04160’,‘王燕’,‘女’,22,‘计算机科学系’)

1。假设供应销售数据库有供应商s,零件p,工程项目j,供销情况spj关系,希望建立四个索引,其中,供应商s中sno按升序建立索引,零件p中pno 按升序建立索引,工程项目j中jno按升序建立索引,供销情况 spj中sno按升序,pno按降序,jno按升序建立索引2。检索选修课程名为”MS“的学生号和学生姓名答案:1.根据题意建立的索引如下: CREATE UNIQUE INDEX S-SNO ON S(SNO); CREATE UNIQUE INDEX P-PNO ON P(PNO); CREATE UNIQUE INDEX J-JNO ON J(JNO); CREATE UNIQUE INDEX SPJ-NO ON SPJ(SNO ASC,PNO DESC,JNO ASC);

2.SELECT SNO,SNAME FROM S,SC,C WHERE S.SNO=SC.SNO AND https://www.wendangku.net/doc/df4075314.html,O=https://www.wendangku.net/doc/df4075314.html,O AND

https://www.wendangku.net/doc/df4075314.html,AME='MS'

填空已知关系模式:S (SNO,SNAME)学生关系。SNO 为学号,SNAME 为姓名 C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师 SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩 1. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号 --实现代码: SELECT S.SNO,S.SNAME FROM S,( SELECT SC1.SNO FROM SC SC1,C C1,SC SC2,C C2 WHERE https://www.wendangku.net/doc/df4075314.html,O=https://www.wendangku.net/doc/df4075314.html,O AND https://www.wendangku.net/doc/df4075314.html,='1' AND https://www.wendangku.net/doc/df4075314.html,O=https://www.wendangku.net/doc/df4075314.html,O AND https://www.wendangku.net/doc/df4075314.html,='2' AND SC1.SCGRADE>SC2.SCGRADE )SC WHERE S.SNO=SC.SNO 2. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩 --实现代码: SELECT S.SNO,S.SNAME,SC.[1号课成绩],SC.[2号课成绩] FROM S,( SELECT SC1.SNO,[1号课成绩]=SC1.SCGRADE,[2号课成绩]=SC2.SCGRADE FROM SC SC1,C C1,SC SC2,C C2 WHERE https://www.wendangku.net/doc/df4075314.html,O=https://www.wendangku.net/doc/df4075314.html,O AND https://www.wendangku.net/doc/df4075314.html,='1' AND https://www.wendangku.net/doc/df4075314.html,O=https://www.wendangku.net/doc/df4075314.html,O AND https://www.wendangku.net/doc/df4075314.html,='2' AND SC1.SCGRADE>SC2.SCGRADE )SC WHERE S.SNO=SC.SNO

一填空题。

1、日志文件具有__________________、_________________、_________________的功能。

2、DBA可以通过________来完成数据库的修复和重建。

3、实例级的系统表和系统存储过程都存放在___________数据库。

4、使用系统存储过程_________可以查看当前服务器上所有数据库的信息。如果指定了数据库的名字,则返回指定数据库的信息。

5、SQL Server提供了两种形式的索引,一种是__________和___________。

6、SQL Server使用__________和__________两种方式来标识备份设备。

二选择题

1、下列哪个角色或者用户拥有SQL Server服务器范围内的最高的权限?()

A dbo

B sysadmin

C public

D guest

2、下列哪个帐户可以被删除?()

A sa

B 正在被使用的帐户

C 映射到数据库用户上的帐户 D以上都不可以被删除

3、下列哪个约束不可以为空?(A)

A 主键 B外键 C默认值 D UNIQUE约束

A. int

B.tiny int

C.float

D.small int

5、在通常情况下,下列哪个角色的用户不能够删除视图?()

A db_owner

B db_ddladmin

C sysadmin

D guest

6、在下列哪条命令是用来查询视图对表依赖性的存储过程?(B)

A sp_help

B sp_depends

C sp_select Dsp_relyon

7、下列特点哪一项是视图所不具备的?(D)

A 分割数据、屏蔽用户所不需要浏览的数据

B 提高应用程序和表之间的独立性,充当程序和表之间的中间层

C 降低对最终用户查询水平的要求

D 提高数据的网络传输速度

8、下列哪个统计函数可以计算平均值?(B)

A sum

B avg

C count Dmin

9、下列哪类数据不适合创建索引?(C)

A经常被查询搜索的列,如经常在where子句中出现的列

B是外键或主键的列

C包含太多重复选用值的列

D 在ORDER BY 子句中使用的列

10、下列哪个数据文件是创建和正常使用一个数据库所必不可少的?(C)

A 日志文件 B安装程序文件 C主文件 D 次文件

三简单题

1、简述SQL的全称以及其功能

2、简述所有四个系统数据库各自具有的功能

3 、简述具有数据完整性的数据所具有的三个特点。

4、简述一下视图所具备的功能

5、简述SQL Sever的安全机制的四个层次

四操作题

答案

一填空题

1、记载用户针对数据库进行的操作维护数据完整性帮助用户恢复数据库

2、日志文件

3、master

4、Sp_helpdb

5、簇集索引非簇集索引

6、逻辑设备物理设备

二选择题

1、C

2、D

3、A

4、B

5、D

6、B

7、D

8、B

9、C 10、C

三简答题

1 略

2 答:四个数据库分别为:master tempdb model msdb

Master数据库记录SQL Server 2000所有的服务器级系统信息,所有的注册帐户,和密码,和所有的系统设置信息;master数据库记录了所有用户定义数据库的存储位置和初始化信息。

Model数据库是用户建立新数据库的模版,它包含将复制到每个用户数据库中去的系统表。Msdb数据库主要被SQL Server Agent用来进行复制、作业调度、以及管理报警等活动

3 略

4 答:1、分割数据、屏蔽用户所不需要浏览的数据

2、提高应用程序和表之间的独立性,充当程序和表之间的中间层

3、降低对最终用户查询水平的要求

5 略

251

出题人:叶厚礼——041112124

题型:简答题

已知有两个表

学生表(学号,姓名,地址,电话)

成绩表(学号,科目,成绩,学分)

这时,管理员要在学生表中修改某个学生的学号,

这时就希望修改了学生表中的学号,成绩表中的该学号也应该变成在学生表中修改后的学号,不许使用两个UPDATE,而希望用触发器实现,即修改了学生表中的学号,成绩表中对应的学号也作一致变化,应如何操作?

答案:create trigger 学号_update on 学生

for update

as

if update(学号)

begin

update 成绩 set 学号=(select 学号 from inserted ) where 学号=(select 学号 from deleted)

end

相关文档