数据库技术SQLServer习题集和参考答案解析Word文件下载.docx
《数据库技术SQLServer习题集和参考答案解析Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库技术SQLServer习题集和参考答案解析Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
SQLServer2005中采用以页为数据库存储的基本单位,数据文件的页按顺序编号,文件首页的页码是0。
每个文件都有一个文件ID号。
在数据库中惟一标识一页,需要同时使用文件ID和页码。
在每个文件中,第一页是包含文件特性信息的文件首页,在文件开始处的其他几个页中包含系统信息,如分配映射表。
系统页存储在主数据文件和第一个事务日志文件中,其中有一个系统页包含数据库属性信息,它是数据库的引导页。
3、SQLServer2005中创建、查看、打开、删除数据库的方法有哪些?
方法分别有两种,即可以通过SQLServerManagementStudio图形化界面实现,也可以通过SQL语句命令实现。
4、通过SQL语句,使用__CREATE_DATABASE_命令创建数据库,使用_EXECsp_helpdb_命令查看数据库定义信息,使用_EXECsp_dboption命令设置数据库选项,使用_ALTERDATABASE_命令修改数据库结构,使用_DROPDATABASE_命令删除数据库。
5、安装SQLServer2005时,系统自动提供的4个系统数据库分别是什么?
各起什么作用?
系统自动提供的4个系统数据库分别是master数据库、model数据库、msdb数据库、tempdb数据库。
作用参见教材3.2节。
第三章:
1、如何理解表中记录和实体的对应关系?
为什么说关系也是实体?
在表中如何表示?
实体是客观存在并且可以相互区别的事物,实体可以是具体的事物,也可以是抽象的事物。
不同的事物是用不同的特征决定的,用来描述实体的特性称为实体的属性。
表中每条记录对应一个实体,而每个字段保存着对应实体的属性值。
2、说明主键、惟一键和外键的作用。
说明它们在保证数据完整性中的应用方法。
主键是唯一识别一个表的每一记录,作用是将记录和存放在其他表中的数据进行关联,并与外键构成参照完整性约束。
惟一键用于指明创建惟一约束的列上的取值必须惟一。
外键用于建立和加强两个表数据之间的的一列或多列。
通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的。
这个列就成为第二个表的外键。
外键约束的主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改。
3、参照完整性要求有关联的两个或两个以上表之间数据的_一致性_。
参照完整性可以通过建立_主键_和_外键_来实现。
4、创建表用__CREATETABLE__语句,向表中添加记录用_INSERTINTO_语句,查看表的定义信息用EXECUTEsp_help语句,修改表用ALTERTABLE语句,删除表用DROPTABLE语句。
5、SQLServer2005中有哪些类型数据?
参见教材表。
6、现有图书管理数据库的三个关系模式:
图书(总编号,分类号,书名,作者,出版单位,单价)
读者(借书证号,单位,,性别,职称,地址)
借阅(借书证号,总编号,借书日期)
1)利用SQLServer2005创建图书管理库和图书、读者和借阅三个基本表的表结构:
2)利用SQLServer2005在三个表中分别插入以下所给元组:
图书:
总编号
分类号
书名
作者
出版单位
单价
445501
TP3/12
数据库导论
王强
科学
17.90
445502
445503
332211
TP5/10
计算机基础
伟
高等教育
18.00
112266
FoxBASE
三
电子工业
23.60
665544
TS7/21
高等数学
明
20.00
114455
TR9/12
线性代数
业
大学
20.80
113388
TR7/90
大学英语
胡玲
清华大学
12.50
446601
TP4/13
数据库基础
马凌云
人民邮电
22.50
446602
446603
449901
TP4/14
FoxPro大全
周虹
32.70
449902
118801
TP4/15
计算机网络
黄力钧
21.80
118802
读者:
借书证号
单位
性别
职称
地址
111
信息系
王维利
女
教授
1号楼424
112
财会系
立
男
副教授
2号楼316
113
经济系
三
讲师
3号楼105
114
周华发
1号楼316
115
正义
工程师
1号楼224
116
明
1号楼318
117
计算机系
小峰
助教
1号楼214
118
许鹏飞
助工
1号楼216
119
大龙
120
国际贸易
雪
4号楼506
121
爽
4号楼510
122
王纯
4号楼512
123
小霞
2号楼202
124
朱海
2号楼210
125
马英明
2号楼212
借阅:
借书日期
1997-3-19
1997-2-12
1997-8-21
1997-3-14
1997-10-21
1997-11-2
1997-10-18
1997-12-12
1997-10-23
1997-9-10
第四章:
第三章3.6有图书管理数据库的三个关系模式:
1.用SQL完成如下查询:
1)找出姓的读者和所在单位。
select,单位
from读者
wherelike'
%'
2)列出图书库中所有藏书的书名及出版单位。
select书名,出版单位
from图书
3)查找高等教育的所有图书及单价,结果按单价降序排序。
select出版单位,书名,单价
where出版单位='
高等教育'
orderby单价desc
4)查找价格介于10元和20元之间的图书种类,结果按出版单位和单价升序排序。
select书名,出版单位,单价
where单价between10.00and20.00
orderby出版单位,单价asc
5)查找书名以计算机打头的所有图书和作者。
select书名,作者
where书名like'
计算机%'
6)检索同时借阅了总编号为112266和449901两本书的借书证号。
select借阅.总编号,借书证号
from图书,借阅
where图书.总编号=借阅.总编号and借阅.总编号in('
112266'
'
449901'
)
7)查找所有借了书的读者的及所在单位。
selectdistinct,单位
from读者innerjoin借阅
on借阅.借书证号=读者.借书证号
8)找出某所借图书的所有图书的书名及借书日期。
select书名,,借书日期
from图书innerjoin借阅
on图书.总编号=借阅.总编号
join读者
where读者.like'
9)查询1997年10月以后借书的读者借书证号、和单位。
selectdistinct读者.借书证号,,单位
from借阅innerjoin读者
where借阅.借书日期>
='
1997-10-1'
10)找出借阅了FoxPro大全一书的借书证号。
select借书证号
from借阅
where总编号in(select总编号
from图书
where书名='
FoxPro大全'
11)找出与正义在同一天借书的读者、所在单位及借书日期。
select,单位,借书日期
from借阅,读者
where借阅.借书证号=读者.借书证号and借书日期=(select借书日期
from借阅,读者
where借阅.借书证号=读者.借书证号and='
正义'
12)查询1997年7月以后没有借书的读者借书证号、及单位。
selectdistinct借书证号,,单位
where借书证号notin(select借书证号
from借阅
where借书日期>
1997-07-01'
)
2.完成下面SQL高级查询:
13)求科学图书的最高单价、最低单价、平均单价。
selectmax(单价)最高单价,min(单价)as最低单价,avg(单价)as平均单价
科学'
14)求信息系当前借阅图书的读者人次数。
selectcount(借书证号)
where借书证号in(select借书证号
from读者
where单位='
信息系'
15)求出各个图书的最高价格、最低价格和册数。
select出版单位,max(单价)最高价格,min(单价)as最低价格,count(*)册数
groupby出版单位
16)分别找出各单位当前借阅图书的读者人数。
select单位,count(借阅.借书证号)
where借阅.借书证号in(select借书证号
from读者)
groupby单位
17)找出当前至少借阅了2本图书的读者及所在单位。
groupby借书证号
havingcount(*)>
=2)
18)分别找出借书人次超过1人次的单位及人次数。
select单位,count(*)as超过人次
where读者.借书证号=借阅.借书证号
havingcount(*)>
=2
19)找出藏书中各个出版单位的册数、价值总额。
select出版单位,count(*)册数,sum(单价)总价
20)查询经济系是否还清所有图书。
如果还清,显示该系所有读者的、所在单位和职称
select,单位,职称
where单位='
经济系'
andnotexists(select*
from读者,借阅
where读者.借书证号=借阅.借书证号and单位='
3、为什么说视图是虚表?
视图的数据存在什么地方?
视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据。
视图通过定义从基表中搜集数据,并展现给用户。
数据存储在对应的数据表中。
4、创建视图用CREATEVIEW语句,修改视图用ALTERVIEW语句,删除视图用DROPVIEW语句。
查看视图中的数据用SELECT语句。
查看视图的基本信息用sp_helptext存储过程,查看视图的定义信息用EXECsp_helptext存储过程,查看视图的依赖关系用EXECsp_depends存储过程。
5、说明视图的优缺点。
优点:
(1)视图能简化用户的操作;
(2)视图机制可以使用户以不同的方式查询同一数据;
(3)视图对数据库重构提供了一定程度的逻辑独立性;
(4)视图可以对的数据提供安全保护。
缺点:
(1)降低性能,通过视图查询起来需要花费时间;
(2)视图是只读的,更新时需要更新原表,对用户来说很麻烦。
6、通过视图修改数据要注意哪些限制?
对视图进行的修改操作有以下限制:
(1)若视图的字段来自表达式或常量,则不允许对该视图执行INSERT和UPDATE操作,但允许执行DELETE操作。
(2)若视图的字段来自集合函数,则此视图不允许修改操作。
(3)若视图定义中含有GROUPBY子句,则此视图不允许修改操作。
(4)若视图定义中含有DISTINCT短语,则此视图不允许修改操作。
(5)一个不允许修改操作视图上定义的视图,也不允许修改操作。
第五章:
1、什么是批处理?
批处理的结束标志是什么?
批处理就是一个或多个Transact-SQL语句的集合,用GO语句作为一个批处理的结束。
2、一些SQL语句不可以放在一个批处理中进行处理,它们需要遵守什么规则?
一些SQL语句不可以放在一个批处理中进行处理,它们需要遵守以下规则:
(1)大多数CREATE命令要在单个批命令中执行,但CREATEDATABASE、CREATETABLE和CREATEINDEX例外。
(2)调用存储过程时,如果它不是批处理中的第一个语句,则在其前面必须加上EXECUTE,或简写为EXEC。
(3)不能把规则和默认值绑定到表的字段或用户定义数据类型上之后,在同一个批处理中使用它们。
(4)不能在给表字段定义了一个CHECK约束后,在同一个批处理中使用该约束。
(5)不能在修改表的字段名后,在同一个批处理中引用该新字段名。
3、常量和变量有哪些种类?
常量有字符串常量、数值常量、日期常量。
变量主要有局部变量和全局变量。
4、什么是用户自定义函数?
它有哪些类型?
建立、修改和删除用户自定义函数使用什么命令?
用户定义的函数是由一个或多个Transact-SQL语句组成的子程序。
用户定义的函数类型有标量函数、嵌表值函数、多语句表值函数。
建立、修改、删除用户自定义函数命令分别是CREATEFUNCTION、ALTERFUNCTION和DROPFUNCTION。
5、使用游标访问数据包括哪些步骤?
使用游标访问数据包括的步骤有声明游标、打开游标、从游标中获取数据、关闭游标、释放游标。
第六章:
1、创建索引的好处主要有哪些?
创建索引好处主要是加快数据查询和加快表的连接、排序和分组工作。
2、按照索引值的特点分类,可将索引分为__惟一__索引和_非惟一_索引;
按照索引结构的特点分类,可将索引分为_聚集__索引和__非聚集__索引。
3、聚集索引与非聚集索引之间有哪些不同点?
聚集索引会对表进行物理排序,而非聚集索引不会对表进行物理排序。
4、在哪些情况下SQLServer2005会自动建立索引?
这些索引能否用DROPINDEX语句来删除?
如果不能,应当用什么方法来删除?
在创建或修改表时,如果添加了一个主键或惟一键约束,则系统将自动在该表上,以该键值作为索引列,创建一个惟一索引。
对于通过主键和唯一约束创建的索引是不能够通过DROPINDEX来删除的。
删除方法是通过删除主键约束(或唯一约束)来自动删除由该主键约束(或唯一约束)创建出来的索引。
第七章:
1、简述使用存储过程有哪些优缺点?
(1)通过本地存储、代码预编译和缓存技术实现高性能的数据操作。
(2)通过通用编程结构和过程重用实现编程框架。
如果业务规则发生了变化,可以通过修改存储过程来适应新的业务规则,而不必修改客户端应用程序。
(3)通过隔离和加密的方法提高了数据库的安全性。
移植性较差,增加数据库服务器压力。
2、创建存储过程有哪些方法?
执行存储过程使用什么命令?
创建存储过程有两种方法,可用通过SQL命令建立或者通过SQLServerManagementStudio图形界面建立。
执行存储过程使用EXECUTE命令。
3、执行存储过程时,在什么情况下可以省略EXECUTE关键字?
如果存储过程是批处理中的第一条语句,那么不使用
EXECUTE
关键字也可以执行该存储过程。
4、说明存储过程重新编译的作用和3种重新编译的方法。
通过对存储过程进行重新编译,可以重新优化存储过程的执行计划。
三种重新编译的方法分别是:
1)在创建存储过程时,使用WITHRECOMPILE子句来指示SQLServer2005不将该存储过程的查询计划保存在缓存中,而是在每次运行时重新编译和优化,并创建新的执行计划。
2)通过在执行存储过程时设定重新编译,可以让SQLServer2005在执行存储过程时重新编译存储过程。
3)通过系统存储过程sp_recompile设定重新编译标记,使存储过程和触发器在下次运行时重新编译。
5、简述使用触发器有哪些优缺点。
优点:
(1)多表的级联修改。
触发器能实现各种级联操作,包括数据的修改、插入和删除。
(2)强于CHECK的复杂限制。
(3)比较数据修改前后的差别。
(4)强制表的修改要合乎业务规则。
(1)可移植性是触发器最大的缺点。
(2)占用服务器端太多的资源。
(3)不能做DDL。
(4)触发器排错困难,而且数据容易造成不一致,后期维护不方便。
6、说明创建触发器命令中FOR、AFTER、INSTEADOF各表示什么含义?
(1)FOR|AFTER。
FOR与AFTER同义,指定触发器只有在触发SQL语句中指定的所有操作都已成功执行后才激发。
所有的引用级联操作和约束检查也必须成功完成后,才能执行此触发器,即为后触发。
(2)INSTEADOF。
指定执行触发器而不执行造成触发的SQL语句,从而替代造成触发的语句。
在表或视图上,每个INSERT、UPDATE或DELETE语句只能定义一个INSTEADOF触发器,替代触发。
7、TRUNCATETABLE语句是否会激活DELETE触发器?
在触发器中的SQL语句有哪些限制?
由于TRUNCATETABLE语句的操作不被记录到事务日志,所以它不会激活DELETE触发器。
所有建立和修改数据库及其对象的语句、所有DROP语句都不允许在触发器中使用。
第八章:
1、什么是备份设备?
物理设备标识和逻辑名之间有什么关系?
备份设备是用来存储数据库、事务日志或文件和文件组备份的存储介质。
备份设备可以是硬盘、磁带或管道。
物理备份设备指操作系统所标识的磁盘文件、磁带等,逻辑备份设备名是用来标识物理备份设备的别名或公用名称。
使用逻辑备份设备名的优点是比引用物理设备名简短。