数据库技术SQLServer习题与.docx
《数据库技术SQLServer习题与.docx》由会员分享,可在线阅读,更多相关《数据库技术SQLServer习题与.docx(39页珍藏版)》请在冰豆网上搜索。
数据库技术SQLServer习题与
数据库技术(SQLServer)习题与参考答案.
数据库技术(SQLServer)习题与参考答案
第一章:
1、SQLServer2005有哪些新增特性?
答:
SQLServer2005的新特性主要体现在企业
数据管理、开发人员生产力、商务智能三个方面。
企业数据管理体现在高可用性、管理工具、安全性和可伸缩性;开发人员生产力体现在Common
LanguageRuntime集成、集成XML、Transact-SQL增强和SQL服务代理;商务智能体现在分析服务、数据转换服务、报表服务和数据挖掘。
2、SQLServer2005安装的软件和硬件环境是什么?
答:
SQLServer2005安装的软件和硬件环境参见教材6。
3、SQLServer2005有哪些版本?
有哪些服务组件?
答:
SQLServer2005包括企业版、标准版、工作组版、开发版和简易版五个版本,服务组件主要有SQLServer数据库引擎、Analysis
Services、ReportingServices、Notification
Services、IntegrationServices等。
SQLServer2005、什么是实例?
经常提到的4.
服务器和服务器实例是否具有相同的含义?
答:
实例就是SQL服务器引擎,每个SQLServer数据库引擎实例各有一套不为其他实例共享的
系统及用户数据库。
一个SQLServer服务器就是一个实例,一台计算机上,可以安装多个SQL
SERVER,每个SQLSERVER就可以理解为是一个实例。
5、默认实例和命名实例有何差别?
在安装和使用上有何不同?
答:
实例又分为“默认实例”和“命名实例”,如果在一台计算机上安装第一个SQLSERVER
2005命名设置保持默认的话,那这个实例就是默认实例。
一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。
除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。
6、SQLServer2005的安全性验证分为哪两个阶段?
答:
第1个阶段是身份验证,验证用户是否具有“连接权”;第2个阶段是数据库的访问权,验证连接到服务器实例的用户,即已登录到服务器。
实例的用户,是否具有“访问权”
7、SQLServer2005有哪些主要的实用工具?
每个工具都有什么用途?
答:
SQLServerManagementStudio,是
MicrosoftSQLServer2005中的新组件,这是一个用于访问、配置、管理和开发SQLServer的所有组件的集成环境,是SQLServer2005中最重要的管理工具。
SQLServerConfiguration
Manager,用来管理SQLServer2005所提供的服务、服务器与客户端通信协议以及客户端的基本配置管理。
SQLServer外围应用配置器用来启用、禁用、开始或停止SQLServer2005的功能、服务和远程连接。
NotificationServices命令提示是用来开发及部署应用程序以产生和传送通知的平台。
ReportingServices配置用于配置和管理SQLServer2005的报表服务器。
SQLServer错误和使用情况报告。
SQLServer
Profiler也称为SQLServer事件探查器,用于监视SQLServer数据库引擎和Analysis
Services的实例,并捕获数据库服务器在运行过程中发生的事件,将事件数据保存在文件或表中供用户分析。
第二章:
1、在SQLServer2005中数据库文件有哪3类?
各有什么作用?
答:
SQLServer2005中数据库文件有主数据文件、辅助数据文件、事务日志文件。
主数据文件是数据库的起点,指向数据库中文件的其他部分,同时也用来存放用户数据;辅助数据文件专门用来存放数据;事务日志文件存放恢复数据库所需的所有信息。
2、SQLServer2005中数据文件是如何存储的?
答:
SQLServer2005中采用以页为数据库存储的基本单位,数据文件的页按顺序编号,文件首页的页码是0。
每个文件都有一个文件ID号。
在数据库中惟一标识一页,需要同时使用文件ID和页码。
在每个文件中,第一页是包含文件特性信息的文件首页,在文件开始处的其他几个页中包含系统信息,如分配映射表。
系统页存储在主数据文件和第一个事务日志文件中,其中有一个系统页包含数据库属性信息,它是数据库的引导页。
3、SQLServer2005中创建、查看、打开、删除数据库的方法有哪些?
SQLServer答:
方法分别有两种,即可以通过也可以通,图形化界面实现ManagementStudio语句命令实现。
过SQL
__CREATE_DATABASE_、通过4SQL语句,使用命令命令创建数据库,使用_EXECsp_helpdb_sp_dboption_EXEC查看数据库定义信息,使用_ALTERDATABASE_命令设置数据库选项,使_DROPDATABASE_命令修改数据库结构,使用命令删除数据库。
5、安装SQLServer2005时,系统自动提供的4个系统数据库分别是什么?
各起什么作用?
答:
系统自动提供的4个系统数据库分别是master数据库、model数据库、msdb数据库、tempdb数据库。
作用参见教材3.2节。
第三章:
1、如何理解表中记录和实体的对应关系?
为什么说关系也是实体?
在表中如何表示?
答:
实体是客观存在并且可以相互区别的事物,实体可以是具体的事物,也可以是抽象的事物。
不同的事物是用不同的特征决定的,用来描述实表中每条记录对应一体的特性称为实体的属性。
.
个实体,而每个字段保存着对应实体的属性值。
、说明主键、惟一键和外键的作用。
说明它们2在保证数据完整性中的应用方法。
作用是答:
主键是唯一识别一个表的每一记录,并与将记录和存放在其他表中的数据进行关联,惟一键用于指明创建外键构成参照完整性约束。
外键用于建立惟一约束的列上的取值必须惟一。
通和加强两个表数据之间的链接的一列或多列。
过将保存表中主键值的一列或多列添加到另一这个列就成个表中,可创建两个表之间的链接。
外键约束的主要目的是控制为第二个表的外键。
但它还可以控制对主键存储在外键表中的数据,表中数据的修改。
、参照完整性要求有关联的两个或两个以上表3参照完整性可以通过建立_。
之间数据的_一致性来实现。
外键和__主键__语句,向表中添4、创建表用____CREATETABLE
语句,查看表的定义信加记录用_INSERTINTO_用改语EXECUTEsp_help句,修表用息
DROP语句,删除表用TABLE语句。
TABLEALTER
5、SQLServer2005中有哪些类型数据?
答:
参见教材表。
.
6、现有图书管理数据库的三个关系模式:
图书(总编号,分类号,书名,作者,出版单位,单价)
读者(借书证号,单位,姓名,性别,职称,地址)
借阅(借书证号,总编号,借书日期)
)利SQLServer200创建图书管理库和书、读者和借阅三个基本表的表结构
)利SQLServer200在三个表中分别插以下所给元组
图书
总编分类书出版单
17.90445501TP3/12数据科学版导
17.90科学445502TP3/12数据版导
17.90
数据445503TP3/12科学版导论
332211TP5/10计算机李高等教18.00
伟育出版基础
社
电子工23.60
112266TP3/12FoxBASE张三业出版社665544TS7/21高等数刘高等教20.00
育出20.80
线性北京114455TR9/12
学出12.50
113388TR7/90大学清华学出
22.50人民446601TP4/13数据电出基
22.50数据人民446602TP4/13
电出基22.50人民数据446603TP4/13
基础凌电出版云社
32.70449901TP4/14FoxPro周科学出
虹版社大全32.70449902TP4/14FoxPro周科学出虹版社大全
21.80
高等教118801TP4/15计算机育出网
21.80118802TP4/15计算高等育出网
读者性职地姓单
教王维信111号424
副财112号316
号讲经113
系105
讲师1男信息号楼周华发114
316系
1男115信息工程号楼赵正义224师系
1副教号楼男李信息116明
318系助计117李小号214
机
号计118助许鹏
216
机号教刘大计119
318机
号副国120506贸号国121讲510
贸
号国122讲512
贸号沈小助财123
202
号讲财124
210系2号楼副教马英明男125财会212
授系
借阅:
借书日期总编号借书证号1997-3-19445501112
1997-2-12125332211
1997-8-21111445503
1997-3-14112112266
1997-10-21114665544
1997-11-2114455120
1997-10-181********
1997-12-12446603119
1997-10-23112449901
1997-8-21449902115
1997-9-10
118118801
第四章:
有图书管理数据库的三个关系模式:
3.6第三章.
图书(总编号,分类号,书名,作者,出版单位,单价)
读者(借书证号,单位,姓名,性别,职称,
地址)
借阅(借书证号,总编号,借书日期)
1.用SQL完成如下查询:
1)找出姓李的读者姓名和所在单位。
select姓名,单位
from读者
where姓名like'李%'
2)列出图书库中所有藏书的书名及出版单位。
select书名,出版单位
from图书
3)查找高等教育出版社的所有图书及单价,结果按单价降序排序。
select出版单位,书名,单价
from图书
'
高等教育出版社='出版单位where
orderby单价desc
4)查找价格介于10元和20元之间的图书种类,结果按出版单位和单价升序排序。
select书名,出版单位,单价
from图书
where单价between10.00and20.00
orderby出版单位,单价asc
5)查找书名以计算机打头的所有图书和作者。
select书名,作者
from图书
where书名like'计算机%'
6)检索同时借阅了总编号为112266和449901两本书的借书证号。
select借阅.总编号,借书证号
from图书,借阅
where图书.总编号=借阅.总编号and借阅.总编号in('112266','449901')
查找所有借了书的读者的姓名及所在单位。
7).
selectdistinct姓名,单位
from读者innerjoin借阅
on借阅.借书证号=读者.借书证号
8)找出李某所借图书的所有图书的书名及借书日期。
select书名,姓名,借书日期
from图书innerjoin借阅
on图书.总编号=借阅.总编号
join读者
on借阅.借书证号=读者.借书证号
where读者.姓名like'李%'
9)查询1997年10月以后借书的读者借书证号、姓名和单位。
selectdistinct读者.借书证号,姓名,单位
from借阅innerjoin读者
on借阅.借书证号=读者.借书证号
where借阅.借书日期>='1997-10-1'
大全一书的借书证号。
FoxPro找出借阅了10).
select借书证号
from借阅
where总编号in(select总编号
from图书
where书名='FoxPro大全')
11)找出与赵正义在同一天借书的读者姓名、所在单位及借书日期。
select姓名,单位,借书日期
from借阅,读者
where借阅.借书证号=读者.借书证号and借书日期=(select借书日期
from借阅,读者
where借阅.借书证号=读者.借书证号and姓名='赵正义')
12)查询1997年7月以后没有借书的读者借书证号、姓名及单位。
单位,姓名,借书证号selectdistinct
from读者
where借书证号notin(select借书证号
from借阅
where借书日期>='1997-07-01')
2.完成下面SQL高级查询:
13)求科学出版社图书的最高单价、最低单价、平均单价。
selectmax(单价)最高单价,min(单价)as最低单价,avg(单价)as平均单价
from图书
where出版单位='科学出版社'
14)求信息系当前借阅图书的读者人次数。
selectcount(借书证号)
from借阅
where借书证号in(select借书证号
from读者
')
信息系='单位where
15)求出各个出版社图书的最高价格、最低价格和册数。
select出版单位,max(单价)最高价格,min(单
价)as最低价格,count(*)册数
from图书
groupby出版单位
16)分别找出各单位当前借阅图书的读者人数。
select单位,count(借阅.借书证号)
from借阅,读者
where借阅.借书证号in(select借书证号
from读者)
groupby单位
17)找出当前至少借阅了2本图书的读者及所在单位。
select姓名,单位
from读者
where借书证号in(select借书证号
借阅from
groupby借书证号
havingcount(*)>=2)
18)分别找出借书人次超过1人次的单位及人次
数。
select单位,count(*)as超过人次
from借阅,读者
where读者.借书证号=借阅.借书证号
groupby单位
havingcount(*)>=2
19)找出藏书中各个出版单位的册数、价值总额。
select出版单位,count(*)册数,sum(单价)
总价
from图书
groupby出版单位
20)查询经济系是否还清所有图书。
如果还清,显示该系所有读者的姓名、所在单位和职称
select姓名,单位,职称
读者from
'andnotexists(select='经济系where单位*
from
借阅读者,借书.where读者')=借阅.借书证号and单位='经济系证号、为什么说视图是虚表?
视图的数据存在什么3地方?
它在存储时只存储视图的定义,答:
视图是虚表,视图通过定义从基表中而没有存储对应的数据。
数据存储在对应的数并展现给用户。
搜集数据,据表中。
语句,修改视图用CREATE4VIEW、创建视图用语句。
语句,删除视图用DROPVIEWALTERVIESELECT查看视图中的数据用语句。
查看视图的基本信息用sp_helptext存储过程,查看视图的定义信息用EXECsp_helptext存储过程,查看视图的依赖关系用EXECsp_depends存储过程。
5、说明视图的优缺点。
视图
(2)视图能简化用户的操作;
(1)答:
优点:
机制可以使用户以不同的方式查询同一数据;(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和CREATE
INDEX例外。
(2)调用存储过程时,如果它不是批处理中的第一个语句,则在其前面必须加上EXECUTE,或简写为EXEC。
(3)不能把规则和默认值绑定到表的字段或用户定义数据类型上之后,在同一个批处理中使用它们。
(4)不能在给表字段定义了一个CHECK约束后,在同一个批处理中使用该约束。
(5)不能在修改表的字段名后,在同一个批处理中引用该新字段名。
3、常量和变量有哪些种类?
答:
常量有字符串常量、数值常量、日期常量。
变量主要有局部变量和全局变量。
.
、什么是用户自定义函数?
它有哪些类型?
建4修改和删除用户自定义函数使用什么命令?
立、个或多个定用户义的函数是由一答:
语句组成的子程序。
用户定义的Transact-SQL多语句表函数类型有标量函数、内嵌表值函数、值函数。
建立、修改、删除用户自定义函数命令和ALTERFUNCTION分别是CREATEFUNCTION、。
DROPFUNCTION5、使用游标访问数据包括哪些步骤?
答:
使用游标访问数据包括的步骤有声明游标、打开游标、从游标中获取数据、关闭游标、释放游标。
第六章:
、创建索引的好处主要有哪些?
1创建索引好处主要是加快数据查询和加快表答:
的连接、排序和分组工作。
惟__、按照索引值的特点分类,可将索引分为2按照索引结构的特点非惟一一__索引和__索引;____非聚集索引和聚集分类,可将索引分为___索引。
、聚集索引与非聚集索引之间有哪些不同点?
3.
答:
聚集索引会对表进行物理排序,而非聚集索引不会对表进行物理排序。
4、在哪些情况下SQLServer2005会自动建立
索引?
这些索引能否用DROPINDEX语句来删除?
如果不能,应当用什么方法来删除?
答:
在创建或修改表时,如果添加了一个主键或惟一键约束,则系统将自动在该表上,以该键值作为索引列,创建一个惟一索引。
对于通过主键和唯一约束创建的索引是不能够通过DROP
INDEX来删除的。
删除方法是通过删除主键约束(或唯一约束)来自动删除由该主键约束(或唯一约束)创建出来的索引。
第七章:
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、INSTEAD
各表示什么含义?
OF.
答:
(1)FOR|AFTER。
FOR与AFTER同义,指定触发器只有在触发SQL语句中指定的所有操作都
已成功执行后才激发。
所有的引用级联操作和约束检查也必须成功完成后,才能执行此触发器,即为后触发。
(2)INSTEADOF。
指定执行触发器而不执行造成触发的SQL语句,从而替代造成触发的语句。
在表或视图上,每个INSERT、UPDATE或DELETE
语句只能定义一个INSTEADOF触发器,替代触发。
7、TRUNCATETABLE语句是否会激活DELETE触发器?
在触发器中的SQL语句有哪些限制?
答:
由于TRUNCATETABLE语句的操作不被记录到事务日志,所以它不会激活DELETE触发器。
所有建立和修改数据库及其对象的语句、所有DROP语句都不允许在触发器中使用。
第八章:
1、什么是备份设备?
物理设备标识和逻辑名之间有什么关系?
事务日志或文备份设备是用来存储数据库、答:
件和文件组备份的存储介质。
备份设备可以是硬盘、磁