一.选择题(每题2分,共30分)
1.(A)是位于用户和操作系统之间的一层数据管理软件。数据库在建立、使用和维护时由其统一管理、统一控制。
A.DBMSB.DBC.DBSD.DBA
2.在以下系统自带的几个数据库中,可以删除的是(D)
A.master,tempdbB.model,msdb
C.pubs,NorthwindD.Northwind,tempdb
答案:C
3.下列哪一个数据库不是SQLServer2000的系统数据库(D)
A.master数据库B.msdb数据库C.pubs数据库D.model数据库
4.SQL语言允许使用通配符进行字符串匹配,其中‘%’可以表示(C)
A、零个字符B、1个字符C、多个字符D、以上都可以
5、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(_1-B_),使用关键字(_2-A_)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(_3-B__),如果在SELECT语句中使用聚合函数时,一定在后面使用(_4-A_)。
⑴A、SELECT,INTOB、SELECT,FROM
C、SELECT,GROUPD、仅SELECT
⑵A、DISTINCTB、UNION
C、ALLC、TOP
⑶A、JOINB、UNION
C、INTOC、LIKE
⑷A、GROUPBYB、COMPUTEBY
C、HAVINGD、COMPUTE
6、在WINDOWS98操作系统下,只能安装SQLServer2000(C)
A、企业版B、标准版C、个人版D、测试版
7、利用查询分析器,能(B)。
A、直接执行SQL语句B、提交SQL语句给服务器执行
C、作为企业管理器使用D、作为服务管理器使用
8、事务日志文件的默认扩展名是(C)。
A、MDFB、NDFC、LDFD、DBF
9、通过使用文件组,可以(D)。
A、提高存取数据的效率。B、提高数据库备份与恢复的效率
C、简化数据库的维护D、ABC都可以。
10、SQLServer的主数据库是(A)。
A、MASTERB、TEMPDBC、MODELD、MSDB
11、数据库的容量,(D)。
A、只能指定固定的大小。B、最小为10M
C、最大100M。D、可以设置为自动增长
12、日期时间型数据类型(datetime)的长度是(D)。
A、2B、4C、8D、16
13、表在数据库中是一个非常重要的数据对象,它是用来(___C___)各种数据内容的。
A、显示B、查询C、存放D、检索
14、为数据表创建索引的目的是(__A____),可以在创建表时用(____C____)来创建唯一索引。
A、提高查询的检索性能B、创建唯一索引
C、创建主键D、归类
15.SQLServer系统中的所有系统级信息存储于哪个数据库(A)。
A.masterB.model
C.tempdbD.msdb
16.Microsoft公司的SQLServer数据库管理系统一般只能运行于(A)。
A.Windows平台B.UNLX平台
C.LINX平台D.NetWare平台
17在SQLServer服务器上,存储过程是一组预先定义并(_B_)的T-SQL语句
A、保存B、编译C、解释D、编写
18、替代触发器(insteadof)是在触发触发器的修改操作(D)执行。
A、执行后B、停止执行时C、同时D、之前
19.下列可以查看表的行数以及表使用的存储空间信息的系统存储过程是(A)
A.sq_spaceusedB.sq_depends
C.sq_helpD.sq_rename
20.下列哪个约束不可以为空?(A)
A.主键B.外键C.默认键D.UNIQUE约束
21.下列特点哪一项是视图所不具备的?(D)
A分割数据,屏蔽用户所不需要浏览的数据
B提高应用程序和表之间的独立性,充当程序和表之间的中间层
C降低对最终用户查询水平的要求
D提高数据的网络传输速度
23.在SQL2000的查旬语句中,若查询表纪录中所有au_id满足前两个字母为“88”的纪录,则下列正确Where字句是(C)
A.Whereau_id='88%'B.Whereau_id=link'88%'
C.Whereau_idlike'88%'D.Whereau_idlink'88%'
24.在通常情况下,下列哪个对象不是数据库对象?(D)
A:ViewB:TableC:RuleD:Word
25.下列哪个数据库是可以在运行在SQLSEVER过程中被删除的?(D)
A:masterB:modelC:pubsD:northwind
26.选择要执行操作的数据库,应该哪个SQL命令?(A)
A:USEB:GOC:EXECD:DB
27.下列哪类数据库不适合创建索引?(C)
A:经常被查询搜索的列,如经常在where子句中出现的列
B:是外键或主键的列
C:包含太多重复选用值的列
D:在DRDERBY子句中使用的列
28、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(1_B__),使用关键字(2_A__)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(3__B_),如果在SELECT语句中使用集合函数时,一定在后面使用(4__A_)。
⑴A、SELECT,INTOB、SELECT,FROMC、SELECT,GROUPD、仅SELECT
⑵A、DISTINCTB、UNIONC、TOPD、ALL
⑶A、JOINB、UNIONC、INTOD、LIKE
⑷A、GROUPBYB、COMPUTEBYC、HAVINGD、COMPUTE
29.Transact-SQL对标准SQL的扩展主要表现为(A)。
A.加入了程序控制结构和变量
B.加入了建库和建表语句
C.提供了分组(GroupBy)查询功能
D.提供了Min、Max等统计函数
30.不属于SQLServer系统全局变量的是(D)。
A.@@ErrorB.@@Connections
C.@@Fetch_StatusD.@Records
31.Transact-SQL支持的程序结构语句中的一种为(A)。
A.Begin…EndB.If….Then…..ELSE
C.DoCaseD.DoWhile
32.SQL语言中,删除一个视图的命令是(B)。
A.DELETEB.DROP
C.CLEARD.REMOVE
33.下列的SQL语句中,(D)不是数据定义语句。
A.CREATETABLEB.DROPVIEW
C.CREATEVIEWD.GRANT
34.若要撤销数据库中已经存在的表S,可用(C)。
A.DELETETABLESB.DELETES
C.DROPTABLESD.DROPS
35.SQLServer标准版不支持的操作系统是(C)。
A.Windows2000ServerB.WindowsNTServer
C.Windows98D.Windows2000AdvancedServer
36.SQLServer系统中的所有系统级信息存储于哪个数据库(答案A)。
A.masterB.model
C.tempdbD.msdb
37.对于UPDATA语句的实现说法正确的是;(C)
A.对于UPDATA一次只能修改一列的值
B.对于UPDATA只能修改不能赋值
C.对于UPDATA可以指定要修改的列和想赋予的新值
D.对于UPDATA不能加WHERE条件
38.下列哪个关键字在SELECT语句中表示所有列;(A)
A.*B.ALLC.DESCD.DISTINCT
39.SQLServer的字符型系统数据类型主要包括(D)。
A.Int、money、charB.char、varchar、text
C.datetime、binary、intD.char、varchar、int
40.如果希望完全安装SQLServer,则应选择(A)。
A.典型安装B.最小安装C.自定义安装D.仅连接
41.进行SQLServer数据库服务器打开、关闭等操作的工具是(A)
A.服务管理器B.企业管理器C.查询分析器D.网络连接工具
42.数据查询语句SELECT的语法中,必不可少的子句是(B)
A.SELECT和WHEREB.SELECT和FROMC.FROMD.SELECT
43.SQL数据定义语言中,表示外码约束的关键字是(B)
A.UNIQUEB.FOREIGNKEYC.PRIMARYKEYD.CHECK
45.下列哪个统计函数可以计算平均值?(B)
A:sumB:avgC:countD:min
46.下列哪个统计函数可以计算某一列上的最大值?(C)
A:sumB:avgC:maxD:min
47.下列哪种数据类型上不能建立IDENTITY列?(B)
A:intB:tinyintC:floatD:smallint
48、下列那种情况适合建立索引(B)
A:在查询中很少被引用的列;B:在Orderby子句中式用的列;
C:包含太多重复选用值的列;D:数据类型为bit、text、image等的列
49、下列那种情况不适合建立索引(B)
A:经常被查询搜索的列;B:包含太多重复选用值的列;
C:是外键或主键的列;D:该列的值唯一的列。
假定有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:SELECTSN,AGE,SEXFROMSWHEREAGE>(SELECTAGEFROMSWHERESN=“李军”)
B:SELECTSN,AGE,SEXFROMSWHEREAGE>(SN=“李军”)
C:SELECTSN,AGE,SEXFROMSWHEREAGE>(SELECTAGEWHERESN=李军”)
D:SELECTSN,AGE,SEXFROMSWHEREAGE>李军.AGE
50.下列哪个关键字在语句中表示所有的列?(A)
A:*B:ALLC:DESCD:DISTINCT
1、创建好的规则必须____邦定___到列或用户自定义的数据类型上才能起作用.
2、用SELECT进行模糊查询时,可以使用___运算符,并且模糊查询只能针对___字段类型。
3、计算字段的累加和的函数是:__SUM___,统计项目数的函数是:____。
4.sqlserver2000数据库使用的操作系统文件为____主数据文件____和____二级数据文件_____,_____日志文件______三大类。
主数据文件,二级数据文件,日志文件
5.SQLServer中索引类型包括的三种类型分别是_______聚集索引______,_____唯一索引______和______非聚集索引______。
6、认证模式类型有____Windows认证模式______和_____混合模式______两种。答案:Windows认证模式、混合模式
7.与DISTINCT功能相对应的是_____UNDISTINCT______关键字
8、要访问SQLServer数据库,都必须经过安全检查。SQLServer2000使用两层安全机制确认用户的有效性,_______验证和______验证两个阶段。
9、SQLServer中索引类型包括的类型分别是唯一索引,___非聚集索引_____和聚集索引。
11、数据库存储在磁盘的物理文件有___主数据文件___、___二级数据文件___和___日志文件_____。
12、创建数据库时,默认是将数据文件存放在_______________文件组中。
13、整型数据有四种类型:___int________、____short_______、__long___与___tiyint_____.
14、数据完整性可分为___完整性,____完整性,____完整性和用户自定义完整性。
15、通过外键约束可以为相关联的两个表建立联系,实现数据的______完整性。
17、触发器可以实现比CHECK约束更为复杂的_______。
18、触发触发器的三个操作____insert___,____update____,___delete____.
19、如果一个批处理中包含了一个语法错误,则整个批处理不能成功地__执行__.
8、要访问SQLServer数据库,都必须经过安全检查。SQLServer2000使用两层安全机制确认用户的有效性,_____验证和_____验证两个阶段。
9、SQLServer中索引类型包括的类型分别是唯一索引,___非聚集索引____和聚集索引。
20、事务可以用于确保数据能够正确地被修改,事务有四个特性,分别为____,____、_____、______。
21、SQLServer数据库系统的安全性可以分为四个层次,分别是:客户机操作系统的安全性,SQLServer的登陆安全性,数据库的使用安全性和数据库对象的使用安全性.
答案:
客户机操作系统的安全性,SQLServer的登陆安全性,
数据库的使用安全性,数据库对象的使用安全性
题型:填空题
题目:向表中添加记录后,添加的记录临时存储在__inserted____表中;删除表中记录后,被删除的记录临时存储在__deleted___表中;修改表中记录后,被修改的记录临时存储在__inserted或deleted_______表中。
答案:inserted
deleted
inserted或deleted42
题目:二.在SQLServer中一张表可以有多个触发器。用户可以针对______insert_____,_____update_____或_____delete___语句分别设置触发器,也可以针对一张表上的特定操作设置多个触发器。
答案:INSERT,UPDATE,DELETE
约束的用途是限制用户输入到表中的值的范围。SQLServer根据不同的用途提供了多种约束,分别是_主键约束_,_外键约束__,__核查约束__,____,___,____.答案:PRIMARYKEY约束,FOREIGNKEY约束,UNIQUE约束,CHECK约束,NULLabukuty约束,CASCADE级联引用一致性约束。
三、判断题
1、()在CREATEINDEX语句中,使用CLUSTERED来建立聚集索引。
2、()在Transact-SQL语句中,对不符合所有标识符规则的标识符必须进行分隔。
3、(√)在SQLSERVER中,替代触发器的执行是在数据的插入、更新或删除之前执行的。
4、(√)因为通过视图可以插入、修改或删除数据,因此视图也是一个虚实表,SQLSERVER将它保存在syscommens系统表中。
5、(√)当登录到WINDOWS的用户与SQLServer联接时,用户不用提供SQLServer帐号,这种认证模式就是WINDOWS认证机制。
6、(×)可以在企业管理器中修改数据库的名称。
7、()通配符“_”表示某单个字符。
8、()域完整性又称为引用完整性。
9、(×)默认值绑定到列上后,该列上的数据将固定不变。
10(√)一个表上只能建立一个聚集索引。
11.SQLsever在进行数据操作时,总是先写数据库,然后记录日志。(错)
12.在CREATEINDEX语句中,使用CLUSTERED来建立簇索引。()
13、恢复数据,可以在查询分析器中使用这样的命令:
BACKUPDATABASEdatabase_nameFROMbackup()
答案:判断:1、√2、×3、×4、×
14.如果使用别名来代表一个表,那么再定义别名后的所有查询语句中,都必须使用别名来代表表的全名,否则系统会出错(√)
15.在查询语句中系统最先执行的操作是搜索当前系统查询所使用的表,所以最先执行的语句是FROM子句(√)
16.下列特点那一项是视图所不具备的?(D)
A分割数据,屏蔽用户所不需要浏览的数据
B提高应用程序和表之间的独立性,充当程序和表之间的中间层
C降低对最终用户查询水平的要求
D提高数据的网络传输速度
17.当用户删除一个表(DROPTABLE)后,建立在该表上的视图不存在了。()
18.用户要删除视图时,必须隐式的使用DROPVIEW命令。()
19.EXISTS所采用的不是等号,也不是IN关键字,它直接与嵌套查询相关。()
答案:1,错。2,错。3,对。
20.ALL关键字允许重复数据集合的出现。(对)
21.SQLSEVER所有操作都将记录在日志里。(错)
23.在查询中很少被引用的列上创建索引可以极大的提高查询性能。(错)
24:一个数据库文件不能存在于两个或两个以上的文件组里。日志文件不属于任何文件组。(对)
22.可以在企业管理器中修改数据库的名称。(×)
23.在CREATEINDEX语句中,使用CLUSTERED来建立簇索引。(√)
1.请阐述进行数据备份时使用的三种设备各有什么特点?
答案:SQLServer提出不三种主要的备份策略,分别是:只备份数据库、备份数据库和事物日志、增量备份。
只备份数据库的特点:
它只备份数据库而不另外备份事务日志,则当数据库出现意外以后,最多能够把数据库恢复到上一次备份操作结束时的状态。自从上次备份结束以后的所有数据库修改将会丢失。
备份数据库和事务日志的特点:
它可以在意外发生时有效地实现数据库的恢复。所有在意外发生时已经完成的事务都将被恢复。只有在意外发生时,还没有提交的事务才会丢失。
增量备份的特点:
增量备份是一种可以增加备份操作速度,从而减少备份时间策略。它自上次全面备份以来,数据库又发生的一系列新的变化。
2.什么情况下必须为视图提供列名?
答案:当遇到以下几种情况时应该为视图提供列名:
(1)该列是从表中的计算或者从一个常量继承
(2)当视图从多个表中产生,而这些表又有数据列重名的情况
(3)当视图中有一个数据列使用了同表格中相应列不同名名字的时候,所有列名都以必须给出。只能在当前数据据库中创建图。视图最多可以引用1024列。3.请简述COMPUTE子句和GROUPBY子句的区别。
答案:(1)通过使用GROUP子句只能产生一个结果集。对分类分出的每一类数据民只能产生一行结果,包括分类的列和进行统计的列。在使用GROUPBY子句的SELECT句子中也始终只能包含分类所需要的列和进行统计计算的列。
(2)COMPUTE子句可以返回多种结果集。一种是体现数据细节的每一行数据,并按可以按分类要求进行正确的分类。另一类结果是在分类的基础上进行求和运算统计产生的结果。在使用COMPUTE子句的SELECT句子中也可以包含出分类所需的列和统计计算列以外的其他列。
4.SQL中提供了哪几种备份策略?
答案:主要提供了以下几种策略
一,只备份策略二,备份数据库和事务日志三,增量备份
5.请阐述数据库操作系统文件的种类?
答案:主数据文件,二级数据文件,日志文件。
二、请查询在NorthWind中的Employees表中,以字母A作第一个字母的雇员的FirstName和LastName.
答案:
useNorthWind
go
selectFirstName,LastName
fromEmployees
whereFirstNamelike'A%'
go25
三.操作题(共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分)
⑺求各个课程号及相应的选课人数(2分)
⑻查询选修了3门以上课程的学生(3分)
2.语句转换:
⑴在学生表Student(Sno,Sname,Sage,S***,Sdept)中,Sno是其主码,在表Student中有这样一个元组(‘001’,‘刘晨’,19,‘女’,‘CS’),现在想把其修改为‘0421000501’的SQL语句为:
updatestudentsetSno=‘0421000501’whereSno=‘001’
现要求用元组关系演算语言ALPHA来完成上述*作。(5分)
3.已知学生数据库中存放了这样的两张表,如下所示,一张为毕业生信息表,记录毕业生的一些基本信息,一张为学生缴费表,记录了学生的缴费信息。由于学生毕业,我们要从学生信息表中把毕业生的记录删除,但是如果这个学生欠费的话,则不允许删除这个学生的记录,要求:删除毕业生信息表中的哪条记录,必须通过存储过程实现,并带有输入参数,而判断该学生是否欠费,必须使用触发器实现。(10分)
毕业生信息表
性别地址联系方式
001吴迪男淮南市潘集镇赵前村18号0554-6840157
002潘倩萍女芜湖市繁昌县孙村镇65号0553-4855986
003余建星男黄山市歙县北岸镇52号0559-7852013
004贺艳女蚌埠市长淮卫镇淮上村85号0552-6589421
学生缴费表
已交费用欠费
001吴迪5000400
002潘倩萍54000
003余建星40001400
004贺艳30002400
四、操作编码题:
现要为建立一个数据库,设环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生。.现要建立关于系、学生、班级的数据库,关系模式为:
学生STUDENT(,,性别,年龄,班号)
班CLASS(班号,专业名,系名,入学年份)
系DEPARTMENT(系号,系名)
试用SQL语言完成以下功能:
1、建表,在定义中要求声明:
(1)每个表的主外码。
(2)学生的年龄介于15到40岁之间。
(3)学生不能为空。
(4)只有班里没有学生的时候,才能删除该班级。
2、插入如下数据
CLASS(
101,软件,计算机,1995;102,微电子,计算机,1996;
111,无机化学,化学,1995;112,高分子化学,化学,1996;
121,统计数学,数学,1995;131,现代语言,中文,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.找出当月的天数
selectdatepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate())asvarchar)+'-'+cast(month(getdate())asvarchar)+'-01'asdatetime))))
7.用查询分析器创建一个学生数据库(student),将数据文件和日志文件都存放在D盘自已的目录下。其中数据文件和日志文件初始大小都为1MB,自动增长率都为10%。
答案:
CREATEDATABASEstudent
ON
(NAME=student_Data,
FILENAME='D:\自己的\student.MDF',
SIZE=1,FILEGROWTH=10%)
LOGON(NAME=student_Log,
FILENAME='D:\自己的\student.LDF',
SIZE=1,FILEGROWTH=10%)
GO
题目:使用触发器阻止用户修改Employees表中的EmployeeID列。
解答:
USENorthwind
GO
CREATETRIGGEREmployee_Update
ONEmployees
FORUPDATE
AS
IFUPDATE(EmployeeID)
BEGIN
RAISERROR('Transactioncannotbeprocessed.\
*****EmployeeIDnumbercannotbemodified.',10,1)
ROLLBACKTRANSACTION
END
学生(,,性别,年龄,系)课程(科称号,课程名称)选课(,课程号,成绩)将选课在5门以上(包括5门)的学生的,,平均分和选课门数按平均分降序排序,并将结果存于数据库表stu_temp(字段名为,,平均分和选课门数)方法一:select学生.,,avg(成绩)as平均分,count(*)as选课门数from学生,选课;where学生.=选课.;orderby平均分desc;groupby选课.havingcount(*)>=5;intotablestu_temp方法二:selecta.,a.,avg(b.成绩)平均分,count(b.课程号)选课门数from学生a,选课bwherea.=b.groupbyb.having(count(b.课程号))>=5orderby平均分descintodbfstu_temp10
题型:简答题目:在数据库company的表employee中创建二个触发器,报告员工加入和离开本公司.USEcompanyGOCreateTRIGGER触发器_欢迎新员工ONemployeeAFTERInsertASPRINT'新员工加入本公司,欢迎欢迎!'GOCreateTRIGGER触发器_员工走了ONemployeeAFTERDeleteASPRINT'真遗憾看你离开公司!'11
出题人:秦飞飞题型:简答题目:在数据库company的表employee中创建二个触发器,报告员工加入和离开本公司.USEcompanyGOCreateTRIGGER触发器_欢迎新员工ONemployeeAFTERInsertASPRINT'新员工加入本公司,欢迎欢迎!'GOCreateTRIGGER触发器_员工走了ONemployeeAFTERDeleteASPRINT'真遗憾看你离开公司!'
6.现有1销售表,它们结构如下:
idint(标识号)
codnochar(7)(商品编码)
codnamevarchar(30)(商品名称)
specvarchar(20)(商品规格)
pricenumeric(10,2)(价格)
sellnumint(销售数量)
deptnochar(3)(售出分店编码)
selldatedatetime(销售时间)
要求:写出查询销售时间段在2002-2-15日到2002-4-29之间,分店编码是01的所有记录
答案:SELECT*FROM销售表
WHERE(selldate>='2002-2-15'ANDselldate<='2002-4-29')ANDdeptno='01'
7.从表student中查询年龄在20至23岁之间的学生的(Sname)、系别(Sdept)、和年龄(Sage)。答案:SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23
8.基于学生-课程数据库中的三个基本表:
学生信息表:s(sno,sname,sex,age,dept)主码为sno
课程信息表:c(cno,cname,teacher)主码为cno
学生选课信息表:sc(sno,cno,grade)主码为(sno,cno)
(1)“从学生选课信息表中找出无成绩的元组”的SQL语句是
A)SELECT*FROMscWHEREgrade=NULL
B)SELECT*FROMscWHEREgradeIS‘’
C)SELECT*FROMscWHEREgradeISNULL
D)SELECT*FROMscWHEREgrade=‘’
(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.找出没有选修过“李明”老师讲授课程的所有学生--实现代码:
SELECTSNAMEFROMS
WHERENOTEXISTS(
SELECT*FROMSC,C
WHERESC.CNO=C.CNO
ANDCNAME='李明'
ANDSC.SNO=S.SNO)
2.列出有二门以上(含两门)不及格课程的学生及其平均成绩--实现代码
SELECTS.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)
FROMS,SC,(
SELECTSNO
FROMSC
WHERESCGRADE<60
GROUPBYSNO
HAVINGCOUNT(DISTINCTCNO)>=2
)AWHERES.SNO=A.SNOANDSC.SNO=A.SNO
GROUPBYS.SNO,S.SNAME
3.列出既学过“1”号课程,又学过“2”号课程的所有学生--实现代码:
SELECTS.SNO,S.SNAME
FROMS,(
SELECTSC.SNO
FROMSC,C
WHERESC.CNO=C.CNO
ANDC.CNAMEIN('1','2')
GROUPBYSNO
HAVINGCOUNT(DISTINCTCNO)=2
)SCWHERES.SNO=SC.SNO
5.写出一条修改数据库定义的语句,将AAA数据库的初始大小更改为5MB,最大空间限定为10MB。
答案ALTERDATABASEAAA
MODIFYFILE(
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)createtablestudent(Snochar(5)notnullunique
Snamechar(10)unique,
Ssexchar(2),
Sagesmallint,
Sdeptchar(10));
(2)insertintostudent(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.根据题意建立的索引如下:CREATEUNIQUEINDEXS-SNOONS(SNO);CREATEUNIQUEINDEXP-PNOONP(PNO);CREATEUNIQUEINDEXJ-JNOONJ(JNO);CREATEUNIQUEINDEXSPJ-NOONSPJ(SNOASC,PNODESC,JNOASC);2.SELECTSNO,SNAMEFROMS,SC,CWHERES.SNO=SC.SNOANDSC.CNO=C.CNOANDC.CNAME='MS'
填空已知关系模式:S(SNO,SNAME)学生关系。SNO为,SNAME为C(CNO,CNAME,CTEACHER)课程关系。CNO为课程号,CNAME为课程名,CTEACHER为任课教师SC(SNO,CNO,SCGRADE)选课关系。SCGRADE为成绩1.列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的--实现代码:SELECTS.SNO,S.SNAMEFROMS,(SELECTSC1.SNOFROMSCSC1,CC1,SCSC2,CC2WHERESC1.CNO=C1.CNOANDC1.NAME='1'ANDSC2.CNO=C2.CNOANDC2.NAME='2'ANDSC1.SCGRADE>SC2.SCGRADE)SCWHERES.SNO=SC.SNO2.列出“1”号课成绩比“2”号课成绩高的所有学生的及其“1”号课和“2”号课的成绩--实现代码:SELECTS.SNO,S.SNAME,SC.[1号课成绩],SC.[2号课成绩]FROMS,(SELECTSC1.SNO,[1号课成绩]=SC1.SCGRADE,[2号课成绩]=SC2.SCGRADEFROMSCSC1,CC1,SCSC2,CC2WHERESC1.CNO=C1.CNOANDC1.NAME='1'ANDSC2.CNO=C2.CNOANDC2.NAME='2'ANDSC1.SCGRADE>SC2.SCGRADE)SCWHERES.SNO=SC.SNO
一填空题。
1、日志文件具有________、________、________的功能。
2、DBA可以通过_____来完成数据库的修复和重建。
3、实例级的系统表和系统存储过程都存放在___________数据库。
4、使用系统存储过程_____可以查看当前服务器上所有数据库的信息。如果指定了数据库的名字,则返回指定数据库的信息。
5、SQLServer提供了两种形式的索引,一种是_______和________。
6、SQLServer使用________和________两种方式来标识备份设备。
二选择题
1、下列哪个角色或者用户拥有SQLServer服务器范围内的最高的权限?(c)
AdboBsysadminCpublicDguest
2、下列哪个帐户可以被删除?(d)
AsaB正在被使用的帐户
C映射到数据库用户上的帐户D以上都不可以被删除
3、下列哪个约束不可以为空?(A)
A主键B外键C默认值DUNIQUE约束
4、下列哪种数据类型上不能建立IDENTITY列?(B)
A.intB.tinyintC.floatD.smallint
5、在通常情况下,下列哪个角色的用户不能够删除视图?(d)
Adb_ownerBdb_ddladminCsysadminDguest
6、在下列哪条命令是用来查询视图对表依赖性的存储过程?(B)
Asp_helpBsp_dependsCsp_selectDsp_relyon
7、下列特点哪一项是视图所不具备的?(D)
A分割数据、屏蔽用户所不需要浏览的数据
B提高应用程序和表之间的独立性,充当程序和表之间的中间层
C降低对最终用户查询水平的要求
D提高数据的网络传输速度
8、下列哪个统计函数可以计算平均值?(B)
AsumBavgCcountDmin
9、下列哪类数据不适合创建索引?(C)
A经常被查询搜索的列,如经常在where子句中出现的列
B是外键或主键的列
C包含太多重复选用值的列
D在ORDERBY子句中使用的列
10、下列哪个数据文件是创建和正常使用一个数据库所必不可少的?(C)
A日志文件B安装程序文件C主文件D次文件
三简单题
1、简述SQL的全称以及其功能
2、简述所有四个系统数据库各自具有的功能
3、简述具有数据完整性的数据所具有的三个特点。
4、简述一下视图所具备的功能
5、简述SQLSever的安全机制的四个层次
四操作题
略答案
一填空题
1、记载用户针对数据库进行的操作维护数据完整性帮助用户恢复数据库
2、日志文件3、master4、Sp_helpdb5、簇集索引非簇集索引
6、逻辑设备物理设备
三简答题
1略2答:四个数据库分别为:mastertempdbmodelmsdb
Master数据库记录SQLServer2000所有的服务器级系统信息,所有的注册帐户,和密码,和所有的系统设置信息;master数据库记录了所有用户定义数据库的存储位置和初始化信息。
Tempdb数据库记录了所有的临时表格、临时数据和临时创建的存储过程
Model数据库是用户建立新数据库的模版,它包含将复制到每个用户数据库中去的系统表。
Msdb数据库主要被SQLServerAgent用来进行复制、作业调度、以及管理报警等活动
3略4答:1、分割数据、屏蔽用户所不需要浏览的数据2、提高应用程序和表之间的独立性,充当程序和表之间的中间层3、降低对最终用户查询水平的要求5略
251
题型:简答题
已知有两个表
学生表(,,地址,电话)
成绩表(,科目,成绩,学分)
这时,管理员要在学生表中修改某个学生的,
这时就希望修改了学生表中的,成绩表中的该也应该变成在学生表中修改后的,不许使用两个UPDATE,而希望用触发器实现,即修改了学生表中的,成绩表中对应的也作一致变化,应如何操作?
答案:createtrigger_updateon学生
forupdate
as
ifupdate()
begin
update成绩set=(selectfrominserted)where=(selectfromdeleted)
end