SQL考试.docx
- 文档编号:9039040
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:41
- 大小:33.12KB
SQL考试.docx
《SQL考试.docx》由会员分享,可在线阅读,更多相关《SQL考试.docx(41页珍藏版)》请在冰点文库上搜索。
SQL考试
《大型数据库——SQLServer2000程序设计>
一、选择题(10分,前三题各2分,4题4分)
1、下列哪个不属于数据库对象B
A、默认B、SELECT语句C、存储过程D、视图
2、下列那一个不属于SQLSERVER工具A
A、数据库管理器B、事件探查器C、导入和导出数据D、查询分析器
3、下列那一个不属于企业管理器的功能D
A、注册服务器B、配置本地和远程服务器
C、引入和导出数据D、为WINDOWS创建操作系统用户
4、(多选题)下列那些方面影响SQLSERVER的性能ABCDE
A、系统资源(硬件)B、WINDOWSNT4.0和WINDOWS2000
C、网络D、数据库应用程序E、客户端应用程序
二、判断题(20分)
1、查询分析器是一个真正的分析工具,它不仅能执行T——SQL语句,而且对查询语句的执行进行分析,给出查询计划,为查询优化提供直观的帮助。
(√)
2、在建立用户的登录帐号信息时,SQLSERVER会提示用户选择默认的数据库,以后用户每次连接上服务器之后,都会自动转到默认的数据库。
(√)
3、SQLSERVER在服务器和数据库级的安全级别上都设置了角色,其中角色是用户分配权限的单位。
SQLSERVER允许用户在服务器级别上创建角色,但是为数据库安全,不允许在数据库级上建立新的角色。
(×)
4、一般情况下,一个简单的数据库可以只有一个主数据文件和一个事务日志文件。
如果数据库很大,则可以设置多个次要数据文件和事务日志文件,并将它们放在不同的磁盘上。
(√)
5、数据库一旦建立,就没有办法重命名了,所以命名数据库要慎重。
(×)
6、与默认对象一样,规则在创建后,并不能直接使用,必须绑定到表中某一列或者用户定义的数据类型上。
(√)
7、SQLSERVER中的索引可分为索引优化与索引组合,其中索引组合不改变表中数据行的物理存储顺序,数据与索引分开存储。
(×)
8、触发器就其本质而言是一种特殊的存储过程。
存储过程和触发器在数据库的开发中,在维护数据库实体完整性等方面具有不可替代的作用。
(×)
9、数据库备份的类型只有两种,分别是数据库备份、事务日志备份;恢复模式只有三种:
简单恢复、完全恢复、批日志恢复。
(×)
10、数据复制是SQLSERVER的主要功能之一。
复制有三种类型,其中对于复制不经常更改的数据,或不要求保持数据最新值(低滞后时间)的情况,合并复制是一种最好的数据复制方法。
(×)
三3.用T---SQL语句插入下列客房信息(3分)
客房编号客房类型客房位置单价是否被预定备注
1003310层朝南100否
3.参考答案:
insertintorooms
values('1003','3','10层朝南',100,'否',null)
用T—SQL语言在上述数据库基础上,完成如下操作:
4.查询所有客户的身份证号、客房号、入住日期、结算日期等信息。
(3分)
selectguest_id,roomno,statedate,returndatefrombookin
5.查询被预定的“标准房”(客房类型)的客房的客房编号,按客房号的升序排序。
(3分)
selectroomnofromroomtype,rooms
whererooms.typeid=roomtype.typeid
androomtype.typename=’标准房’andputup=’是’
6.利用computeby子句统计各个客房(编号)的总金额。
(3分)
selectroomno,bookno,guest_id,staydate,returndate,discount,ammount
frombookinorderbyroomno
computesum(ammount)byroomno
7.查询身份证号为“310222196711040064”的客户最近入住酒店的日期以及客房号,住了几天等信息。
(7分)(说明:
函数datediff(day,参数1,参数2),此函数功能:
计算两个日期类型数据间相差的天数,即参数2-参数1的天数。
)
ifexists(select*frombookin
whereguest_id='310222196711040064'andreturndateisnull)
selectguest_id,staydate,roomno,datediff(day,staydate,getdate())入住天数frombookin
whereguest_id='310222196711040064'
andstaydate=(selectmax(staydate)frombookin
whereguest_id='310222196711040064')
else
selectguest_id,staydate,roomno,datediff(day,staydate,returndate)入住天数frombookin
whereguest_id='310222196711040064'
andstaydate=(selectmax(staydate)frombookin
whereguest_id='310222196711040064')
8.创建存储过程proc_kroom,实现功能:
根据客房类型号,查询是否有该类型的未被预定的房间,如果有,则显示提示信息“此类型的房间有未被预定的客房”;如果没有,则显示提示信息“此类型的房间已预定满!
”。
(8分)
createprocproc_kroom@typeidchar
(2)
as
ifexists(select*fromroomswheretypeid=@typeid
androomnonotin(selectroomnofrombookinwherereturndateisnull))
print'此类型的房间有未被预定的客房'
else
print'此类型的房间已预定满!
'
selectguest_id,roomno,statedate,returndatefrombookin
9.创建触发器,实现如果删除客房标准信息表中某种客房类型记录,相应的客房信息表中所有此类型的客房记录都删除。
(7分)
createtriggertrig_1onroomtype
fordelete
as
deleteroomsfromrooms,deleted
whererooms.typeid=deleted.typeid
四、简答题(15分)
1、简述用户、角色和登陆之间的关系(5分)
(1)登录帐号:
用来和SQLSERVER连接。
有了登录号才能连接上SQLSERVER,才有使用SQLSERVER的入门资格,但登录帐号没有使用数据库对象的权力。
(2)数据库用户:
简称用户,作为数据库对象,SQLSERVER用它来设定数据库存取的许可权。
所以为了要存取SQLSERVER内的某一数据库的数据库对象,每一登录帐号必须对应一个用户名。
2.事务是作为单个逻辑工作单元执行的一系列操作。
事务具有原子性、一致性、隔离性和持久性。
原子性指事务必须是原子工作单元,对于其数据修改,要么全部执行,要么全部不执行。
一致性是指事务在完成时,必须使所有的数据都保持一致状态。
隔离性是指由并发事务所作的修改必须与任何其他并发事务所作的修改隔离。
持久性是指事务完成之后,它对于系统的影响是永久性的。
(3)角色:
也称为安全性角色,对数据具有相同的访问权限。
包括系统内建角色和自建角色二类角色,其中,系统内建角色又分为服务器角色和数据库角色,数据库角色也是一个数据库对象
2、简述事务的概念及其特点(5分)
事务是作为单个逻辑工作单元执行的一系列操作。
事务具有原子性、一致性、隔离性和持久性。
原子性指事务必须是原子工作单元,对于其数据修改,要么全部执行,要么全部不执行。
一致性是指事务在完成时,必须使所有的数据都保持一致状态。
隔离性是指由并发事务所作的修改必须与任何其他并发事务所作的修改隔离。
持久性是指事务完成之后,它对于系统的影响是永久性的。
3、简述数据库备份的类型以及它们之间的区别(5分)
在SQLServer2000中有四种备份类型分别为:
数据库备份、事务日志备份、差异备份、文件和文件组备份。
数据库备份是指对数据库的完整备份,包括所有的数据以及数据库对象。
这种备份类型不仅速度较慢,而且会占用大量磁盘空间。
在对数据库进行完全备份时,所有未完成的事务或者发生在备份过程中的事务都不会被备份。
事务日志备份是指对数据库发生的事务进行备份,包括从上次进行事务日志备份、差异备份和数据库完全备份之后所有已经完成的事务。
其需要的磁盘空间和备份时间都比数据库备份少得多。
但相对比较复杂。
差异备份是指将最近一次数据库备份以来发生的数据变化备份起来,因此差异备份实际上是一种增量数据库备份。
与完整数据库备份相比,差异备份由于备份的数据量较小,所以备份和恢复所用的时间较短。
但无法像事务日志备份那样提供到失败点的无数据损失备份。
文件和文件组备份是指对数据库文件或文件夹进行备份,但其不像完整数据库备份那样同时也进行事务日志备份。
SQLServer考试题及答案
选择题:
(每空2分共20分)
1、在MSSQLServer中,用来显示数据库信息的系统存储过程是()
Asp_dbhelp
Bsp_db
Csp_help
Dsp_helpdb
2、SQL语言中,删除一个表的命令是()
ADELETE
BDROP
CCLEAR
DREMORE
3、关系数据库中,主键是(__)
A、为标识表中唯一的实体
B、创建唯一的索引,允许空值
C、只允许以表中第一字段建立
D、允许有多个主键的
4、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(1___),使用关键字(2___)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(3___),如果在SELECT语句中使用聚合函数时,一定在后面使用(4___)。
⑴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
5、语句DBCCSHRINKDATABASE(Sample,25)中的25表示的意思是
A、25M
B、剩余占整个空间的25%
C、已用空间占整个空间的25%
D、以上都不对
6、你是一个保险公司的数据库开发人员,公司的保单信息存储在SQLServer2000数据库中,你使用以下脚本建立了一个名为Policy的表:
CREATETABLEPolicy
(
PolicyNumberintNOTNULLDEFAULT(0),
InsuredLastNamechar(30)NOTNULL,
InsuredFirstNamechar(20)NOTNULL,
InsuredBirthDatedatetimeNOTNULL,
PolicyDatedatetimeNOTNULL,
FaceAmountmoneyNOTNULL,
CONSTRAINTPK_PolicyPRIMARYKEY(PolicyNumber)
)
每次公司销售出一份保单,Policy表中就增加一条记录,并赋予其一个新的保单号,你将怎么做?
a.建立一个INSTEADOFINSERT触发器来产生一个新的保单号,并将这个保单号插入数据表中。
b.建立一个INSTEADOFUPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。
c.建立一个AFTERUPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。
d.用AFTERUPDATE触发器替代DEFAULT约束条件产生一个新的保单号,并将这个保单号插入数据表中。
7、在SQL语言中,如果要建立一个工资表包含职工号,姓名,职称。
工资等字段。
若要保证工资字段的取值不低于800元,最合适的实现方法是:
A。
在创建工资表时为”工资“字段建立缺省
B。
在创建工资表时为”工资“字段建立检查约束
C。
在工资表建立一个触发器
D。
为工资表数据输入编写一个程序进行控制
8、Select语句中用来连接字符串的符号是______.
A.“+”B.“&”C.“||”D.“|”
9、你是一个出版公司的数据库开发人员,对特定的书名的每天的销售情况建立了如下的存储过程:
CREATEPROCEDUREget_sales_for_title
titlevarchar(80),@ytd_salesintOUTPUT
AS
SELECT@ytd_sales=ytd_sales
FROMtitles
WHEREtitle=@title
IF@@ROWCOUNT=0
RETURN(-1)
ELSE
RETURN(0)
另外建立了一个脚本执行这个存储过程,如果执行成功,将返回对应于书名的每天的销售情况的报表,如果执行失败,将返回“NoSalesFound”,怎样建立这个脚本?
A.DECLARE@retvalint
DECLARE@ytdint
EXECget_sales_for_title‘NetEtiquette’,@ytd
IF@retval<0
PRINT‘Nosalesfound’
ELSE
PRINT‘Yeartodatesales:
’+STR(@ytd)
GO
B.DECLARE@retvalint
DECLARE@ytdint
EXECget_sales_for_title‘NetEtiquette’,@ytdOUTPUT
IF@retval<0
PRINT‘Nosalesfound’
ELSE
PRINT‘Yeartodatesales:
’+STR(@ytd)
GO
C.DECLARE@retvalint
DECLARE@ytdint
EXECget_sales_for_title‘NetEtiquette’,@retvalOUTPUT
IF@retval<0
PRINT‘Nosalesfound’
ELSE
PRINT‘Yeartodatesales:
’+STR(@ytd)
GO
D.DECLARE@retvalint
DECLARE@ytdint
EXEC@retval=get_sales_for_title‘NetEtiquette’,@ytdOUTPUT
IF@retval<0
PRINT‘Nosalesfound’
ELSE
PRINT‘Yeartodatesales:
’+STR(@ytd)
GO
10、Youareadatabasedeveloperforacontainermanufacturingcompany.Thecontainersproducedbyyourcompanyareanumberofdifferentsizesandshapes.ThetablesthatstorethecontainerinformationareshownintheSize,Container,andShapeTablesexhibit:
Size
SizeID
SizeName
Height
Container
ContainerID
ShapeID
SizeID
Shape
ShapeID
ShapeName
Measurements
Asampleofthedatastoredinthetablesisshownbelow:
SizeTable
SizeIDSizeNameHeight
1Small40
2Medium60
3Large80
4Jumbo100
ShapeTable
ShapeIDShapeNameMeasurement
1Triangle10
2Triangle20
3Triangle30
4Square20
5Square30
6Square40
7Circle15
8Circle25
9Circle35
Periodically,thedimensionsofthecontainerschange.Frequently,thedatabaseusersrequirethevolumeofacontainer.Thevolumeofacontaineriscalculatedbasedoninformationintheshapeandsizetables.
YouneedtohidethedetailsofthecalculationsothatthevolumecanbeeasilyaccessedinaSELECTquerywiththerestofthecontainerinformation.Whatshouldyoudo?
A.Createauser-definedfunctionthatrequiresContainerIDasanargumentandreturnsthevolumeofthecontainer.
B.CreateastoredprocedurethatrequiresContainerIDasanargumentandreturnsthevolumeofthecontainer.
C.Addacolumnnamedvolumetothecontainertable.Createatriggerthatcalculatesandstoresvolumeinthiscolumnwhenanewcontainerisinsertedintothetable.
D.Addacomputedcolumntothecontainertablethatcalculatesthevolumeofthecontainer.
填空题(1空1分共20分)
1、如果设计的表不符合第二范式,可能会导致_______,________,_______。
2、SQL是由_______语言,________语言,_______语言组成。
3、SQLServer在两个安全级上验证用户,分别是______________,_____________________。
4、自定义函数由___________函数,_______________函数,___________________函数组成。
5、备份策略的三种类型是__________备份,_______________备份,___________________备份组成。
6、启动一个显式事务的语句为__________,提交事务的语句为__________,回滚事务的语句为__________
7、表的每一行在表中是惟一的实体属于__________完整性,使列的输入有效属于__________完整性,两个表的主关键字和外关键字的数据应该对应一致属于__________完整性。
简答题(共20分)
1、在帮助中[,...n]意思是什么?
(4分)
2、请简述一下第二范式(4分)
3、现有1销售表,它们结构如下:
(4分)
idint(标识号)
codnochar(7)(商品编码)
codnamevarchar(30)(商品名称)
specvarchar(20)(商品规格)
pricenumeric(10,2)(价格)
sellnumint(销售数量)
deptnochar(3)(售出分店编码)
selldatedatetime(销售时间)
要求:
写出查询销售时间段在2002-2-15日到2002-4-29之间,分店编码是01的所有记录。
4、写一个存储过程,要求传入一个表名,返回该表的记录数(假设传入的表在数据库中都存在)(4分)
5、请简述UPDATE触发器如何工作原理。
(4分)
简答题:
(共40分)
1、(5分)使用一条SQL语句找到重复的值及重复的次数:
有一数据表ZD_ks,其中有字段BM,MC,。
。
。
,请查询出在ZD_ks中BM有重复的值及重复的次数,没有的不要列出。
如下表:
BM DUPCOUNT
001 3
002 2
2、描述(5分)
表1student学生信息表
IDint学生编号
Namevarchar学生姓名
Sexbit性别(男0女1)
Classint班级编号
表2schedule课程信息表
IDint课程编号
Namevarchar课程名称
表3Grade成绩信息表
IDint自动编号
UIDint学生编号
SIDint课程编号
Numint考试成绩
(a)求各班的总人数(1分)
(b)求1班女生和男生的平均成绩(2分)
(c)各班"数据结构"(课程名称)不及格的人数(2分)
3、问题描述:
(30分)
本题用到下面三个关系表:
CARD借书卡。
CNO卡号,NAME姓名,CLASS班级
BOOKS图书。
BNO书号,BNAME书名,AUTHOR作者,PRICE单价,QUANTITY库存册数
BORROW借书记录。
CNO借书卡号,BNO书号,RDATE还书日期
备注:
限定每人每种书只能借一本;库存册数随借书、还书而改变。
要求实现如下15个处理:
1.找出借书超过5本的读者,输出借书卡号及所借图书册数。
(2分)
2.查询借阅了"水浒"一书的读者,输出姓名及班级。
(3分)
3.查询过期未还图书,输出借阅者(卡号)、书号及还书日期。
(3分)
4.查询书名包括"网络"关键词的图书,输出书号、书名、作者。
(2分)
5.查询现有图书中价格最高的图书,输出书名及作者。
(2分)
6.查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出。
(4分)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 考试