数据库技术SQLServer习题与参考答案

数据库技术SQLServer习题与参考答案
数据库技术SQLServer习题与参考答案

数据库技术(SQLServer)习题与参考答案

第一章:

1、SQL Server 2005有哪些新增特性?

答:SQL Server 2005的新特性主要体现在企业数据管理、开发人员生产力、商务智能三个方面。企业数据管理体现在高可用性、管理工具、安全性和可伸缩性;开发人员生产力体现在Common Language Runtime集成、集成XML、T ransact-SQL增强和SQL服务代理;商务智能体现在分析服务、数据转换服务、报表服务和数据挖掘。

2、SQL Server 2005安装的软件和硬件环境是什么?

答:SQL Server 2005安装的软件和硬件环境参见教材6。

3、SQL Server 2005有哪些版本?有哪些服务组件?

答:SQL Server 2005包括企业版、标准版、工作组版、开发版和简易版五个版本,服务组件主要有SQL Server 数据库引擎、Analysis Services、Reporting Services、Notification Services、Integration Services等。

4、什么是实例?经常提到的SQL Server 2005服务器和服务器实例是否具有相同的含义?答:实例就是SQL服务器引擎,每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。一个SQL Server服务器就是一个实例,一台计算机上,可以安装多个SQL SERVER,每个SQL SERVER就可以理解为是一个实例。

5、默认实例和命名实例有何差别?在安装和使用上有何不同?

答:实例又分为“默认实例”和“命名实例”,如果在一台计算机上安装第一个SQL SERVER 2005命名设置保持默认的话,那这个实例就是默认实例。一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。

6、SQL Server 2005的安全性验证分为哪两个阶段?

答:第1个阶段是身份验证,验证用户是否具有“连接权”;第2个阶段是数据库的访问权,验证连接到服务器实例的用户,即已登录到服务器实例的用户,是否具有“访问权”。

7、SQL Server 2005有哪些主要的实用工具?每个工具都有什么用途?

答:SQL Server Management Studio,是Microsoft SQL Server 2005中的新组件,这是一个用于访问、配置、管理和开发SQL Server的所有组件的集成环境,是SQL Server 2005中最重要的管理工具。SQL Server Configuration Manager,用来管理SQL Server 2005所提供的

服务、服务器与客户端通信协议以及客户端的基本配置管理。SQL Server外围应用配置器用来启用、禁用、开始或停止SQL Server 2005的功能、服务和远程连接。Notification Services 命令提示是用来开发及部署应用程序以产生和传送通知的平台。Reporting Services配置用于配置和管理SQL Server 2005的报表服务器。SQL Server 错误和使用情况报告。SQL Server Profiler也称为SQL Server事件探查器,用于监视SQL Server数据库引擎和Analysis Services 的实例,并捕获数据库服务器在运行过程中发生的事件,将事件数据保存在文件或表中供用户分析。

第二章:

1、在SQL Server 2005中数据库文件有哪3类?各有什么作用?

答:SQL Server 2005中数据库文件有主数据文件、辅助数据文件、事务日志文件。主数据文件是数据库的起点,指向数据库中文件的其他部分,同时也用来存放用户数据;辅助数据文件专门用来存放数据;事务日志文件存放恢复数据库所需的所有信息。

2、SQL Server 2005中数据文件是如何存储的?

答:SQL Server 2005中采用以页为数据库存储的基本单位,数据文件的页按顺序编号,文件首页的页码是0。每个文件都有一个文件ID号。在数据库中惟一标识一页,需要同时使用文件ID和页码。在每个文件中,第一页是包含文件特性信息的文件首页,在文件开始处的其他几个页中包含系统信息,如分配映射表。系统页存储在主数据文件和第一个事务日志文件中,其中有一个系统页包含数据库属性信息,它是数据库的引导页。

3、SQL Server 2005中创建、查看、打开、删除数据库的方法有哪些?

答:方法分别有两种,即可以通过SQL Server Management Studio图形化界面实现,也可以通过SQL语句命令实现。

4、通过SQL语句,使用__CREATE_ DATABASE _命令创建数据库,使用_ EXEC sp_helpdb _命令查看数据库定义信息,使用_ EXEC sp_dboption 命令设置数据库选项,使用_ ALTER DATABASE _命令修改数据库结构,使用_ DROP DATABASE _命令删除数据库。

5、安装SQL Server 2005时,系统自动提供的4个系统数据库分别是什么?各起什么作用?

答:系统自动提供的4个系统数据库分别是master数据库、model数据库、msdb数据库、tempdb数据库。作用参见教材3.2节。

第三章:

1、如何理解表中记录和实体的对应关系?为什么说关系也是实体?在表中如何表示?

答:实体是客观存在并且可以相互区别的事物,实体可以是具体的事物,也可以是抽象的事物。不同的事物是用不同的特征决定的,用来描述实体的特性称为实体的属性。表中每条记录对应一个实体,而每个字段保存着对应实体的属性值。

2、说明主键、惟一键和外键的作用。说明它们在保证数据完整性中的应用方法。

答:主键是唯一识别一个表的每一记录,作用是将记录和存放在其他表中的数据进行关联,并与外键构成参照完整性约束。惟一键用于指明创建惟一约束的列上的取值必须惟一。外键用于建立和加强两个表数据之间的的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的。这个列就成为第二个表的外键。外键约束的主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改。

3、参照完整性要求有关联的两个或两个以上表之间数据的_一致性_。参照完整性可以通过建立_主键_和_外键_来实现。

4、创建表用__CREATE TABLE __语句,向表中添加记录用_INSERT INTO_语句,查看表的定义信息用EXECUTE sp_help 语句,修改表用ALTER TABLE 语句,删除表用DROP TABLE 语句。

5、SQL Server 2005中有哪些类型数据?

答:参见教材表。

第四章:

第三章3.6有图书管理数据库的三个关系模式:

图书(总编号,分类号,书名,作者,出版单位,单价)

读者(借书证号,单位,,性别,职称,地址)

借阅(借书证号,总编号,借书日期)

1.用SQL完成如下查询:

1)找出姓的读者和所在单位。

select ,单位

from 读者

where like '%'

2)列出图书库中所有藏书的书名及出版单位。

select 书名,出版单位

from 图书

3)查找高等教育的所有图书及单价,结果按单价降序排序。select 出版单位,书名,单价

from 图书

where 出版单位='高等教育'

order by 单价desc

4)查找价格介于10元和20元之间的图书种类,结果按出版单位和单价升序排序。select 书名,出版单位,单价

from 图书

where 单价between 10.00 and 20.00

order by 出版单位,单价asc

5)查找书名以计算机打头的所有图书和作者。

select 书名,作者

from 图书

where 书名like '计算机%'

6)检索同时借阅了总编号为112266和449901两本书的借书证号。

select 借阅.总编号,借书证号

from 图书,借阅

where 图书.总编号=借阅.总编号and 借阅.总编号in ('112266','449901')

7)查找所有借了书的读者的及所在单位。

select distinct ,单位

from 读者inner join 借阅

on 借阅.借书证号=读者.借书证号

8)找出某所借图书的所有图书的书名及借书日期。

select 书名,,借书日期

from 图书inner join 借阅

on 图书.总编号=借阅.总编号

join 读者

on 借阅.借书证号=读者.借书证号

where 读者.like '%'

9)查询1997年10月以后借书的读者借书证号、和单位。

select distinct 读者.借书证号,,单位

from 借阅inner join 读者

on 借阅.借书证号=读者.借书证号

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月以后没有借书的读者借书证号、及单位。

select distinct 借书证号,,单位

from 读者

where 借书证号not in (select 借书证号

from 借阅

where 借书日期>='1997-07-01' )

2.完成下面SQL高级查询:

13)求科学图书的最高单价、最低单价、平均单价。

select max(单价) 最高单价,min(单价) as 最低单价,avg(单价) as 平均单价

from 图书

where 出版单位='科学'

14)求信息系当前借阅图书的读者人次数。

select count(借书证号)

from 借阅

where 借书证号in (select 借书证号

from 读者

where 单位='信息系')

15)求出各个图书的最高价格、最低价格和册数。

select 出版单位,max(单价) 最高价格,min(单价) as 最低价格,count(*) 册数from 图书

group by 出版单位

16)分别找出各单位当前借阅图书的读者人数。

select 单位,count(借阅.借书证号)

from 借阅,读者

where 借阅.借书证号in (select 借书证号

from 读者)

group by 单位

17)找出当前至少借阅了2本图书的读者及所在单位。

select ,单位

from 读者

where 借书证号in (select 借书证号

from 借阅

group by 借书证号

having count(*)>=2)

18)分别找出借书人次超过1人次的单位及人次数。

select 单位,count(*) as 超过人次

from 借阅,读者

where 读者.借书证号=借阅.借书证号

group by 单位

having count(*)>=2

19)找出藏书中各个出版单位的册数、价值总额。

select 出版单位,count(*) 册数,sum(单价) 总价

from 图书

group by 出版单位

20)查询经济系是否还清所有图书。如果还清,显示该系所有读者的、所在单位和职称select ,单位,职称

from 读者

where 单位='经济系' and not exists (select *

from 读者,借阅

where 读者.借书证号=借阅.借书证号and 单位='经济系') 3、为什么说视图是虚表?视图的数据存在什么地方?

答:视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据。视图通过定义从基表中搜集数据,并展现给用户。数据存储在对应的数据表中。

4、创建视图用CREATE VIEW 语句,修改视图用ALTER VIEW语句,删除视图用DROP VIEW 语句。查看视图中的数据用SELECT语句。查看视图的基本信息用sp_helptext存储过程,查看视图的定义信息用EXEC sp_helptext 存储过程,查看视图的依赖关系用EXEC sp_ depends存储过程。

5、说明视图的优缺点。

答:优点:(1)视图能简化用户的操作;(2)视图机制可以使用户以不同的方式查询同一数据;

(3)视图对数据库重构提供了一定程度的逻辑独立性;(4)视图可以对的数据提供安全保护。

缺点:(1)降低性能,通过视图查询起来需要花费时间;(2)视图是只读的,更新时需要更新原表,对用户来说很麻烦。

6、通过视图修改数据要注意哪些限制?

答:对视图进行的修改操作有以下限制:

(1)若视图的字段来自表达式或常量,则不允许对该视图执行INSERT和UPDATE操作,但允许执行DELETE操作。

(2)若视图的字段来自集合函数,则此视图不允许修改操作。

(3)若视图定义中含有GROUP BY 子句,则此视图不允许修改操作。

(4)若视图定义中含有DISTINCT短语,则此视图不允许修改操作。

(5)一个不允许修改操作视图上定义的视图,也不允许修改操作。

第五章:

1、什么是批处理?批处理的结束标志是什么?

答:批处理就是一个或多个Transact-SQL语句的集合,用GO语句作为一个批处理的结束。

2、一些SQL语句不可以放在一个批处理中进行处理,它们需要遵守什么规则?

答:一些SQL语句不可以放在一个批处理中进行处理,它们需要遵守以下规则:

(1)大多数CREATE命令要在单个批命令中执行,但CREATE DATABASE、CREATE TABLE 和CREATE INDEX例外。

(2)调用存储过程时,如果它不是批处理中的第一个语句,则在其前面必须加上EXECUTE,或简写为EXEC。

(3)不能把规则和默认值绑定到表的字段或用户定义数据类型上之后,在同一个批处理中使用它们。

(4)不能在给表字段定义了一个CHECK约束后,在同一个批处理中使用该约束。

(5)不能在修改表的字段名后,在同一个批处理中引用该新字段名。

3、常量和变量有哪些种类?

答:常量有字符串常量、数值常量、日期常量。变量主要有局部变量和全局变量。

4、什么是用户自定义函数?它有哪些类型?建立、修改和删除用户自定义函数使用什么命

令?

答:用户定义的函数是由一个或多个Transact-SQL语句组成的子程序。用户定义的函数类型有标量函数、嵌表值函数、多语句表值函数。建立、修改、删除用户自定义函数命令分别是CREATE FUNCTION、ALTER FUNCTION和DROP FUNCTION。

5、使用游标访问数据包括哪些步骤?

答:使用游标访问数据包括的步骤有声明游标、打开游标、从游标中获取数据、关闭游标、释放游标。

第六章:

1、创建索引的好处主要有哪些?

答:创建索引好处主要是加快数据查询和加快表的连接、排序和分组工作。

2、按照索引值的特点分类,可将索引分为__惟一__索引和_非惟一_索引;按照索引结构的特点分类,可将索引分为_聚集__索引和__非聚集__索引。

3、聚集索引与非聚集索引之间有哪些不同点?

答:聚集索引会对表进行物理排序,而非聚集索引不会对表进行物理排序。

4、在哪些情况下SQL Server 2005会自动建立索引?这些索引能否用DROP INDEX语句来删除?如果不能,应当用什么方法来删除?

答:在创建或修改表时,如果添加了一个主键或惟一键约束,则系统将自动在该表上,以该键值作为索引列,创建一个惟一索引。对于通过主键和唯一约束创建的索引是不能够通过DROP INDEX来删除的。删除方法是通过删除主键约束(或唯一约束)来自动删除由该主键约束(或唯一约束)创建出来的索引。

第七章:

1、简述使用存储过程有哪些优缺点?

答:优点:

(1)通过本地存储、代码预编译和缓存技术实现高性能的数据操作。

(2)通过通用编程结构和过程重用实现编程框架。如果业务规则发生了变化,可以通过修改存储过程来适应新的业务规则,而不必修改客户端应用程序。

(3)通过隔离和加密的方法提高了数据库的安全性。

缺点:移植性较差,增加数据库服务器压力。

2、创建存储过程有哪些方法?执行存储过程使用什么命令?

答:创建存储过程有两种方法,可用通过SQL命令建立或者通过SQL Server Management Studio图形界面建立。执行存储过程使用EXECUTE命令。

3、执行存储过程时,在什么情况下可以省略EXECUTE关键字?

答:如果存储过程是批处理中的第一条语句,那么不使用EXECUTE 关键字也可以执行该存储过程。

4、说明存储过程重新编译的作用和3种重新编译的方法。

答:通过对存储过程进行重新编译,可以重新优化存储过程的执行计划。三种重新编译的方法分别是:

1)在创建存储过程时,使用WITH RECOMPILE子句来指示SQL Server 2005不将该存储过程的查询计划保存在缓存中,而是在每次运行时重新编译和优化,并创建新的执行计划。2)通过在执行存储过程时设定重新编译,可以让SQL Server 2005在执行存储过程时重新编译存储过程。

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)INSTEAD OF。指定执行触发器而不执行造成触发的SQL语句,从而替代造成触发的语句。在表或视图上,每个INSERT、UPDATE或DELETE 语句只能定义一个INSTEAD OF触发器,替代触发。

7、TRUNCATE TABLE语句是否会激活DELETE触发器?在触发器中的SQL语句有哪些限制?答:由于TRUNCATE TABLE语句的操作不被记录到事务日志,所以它不会激活DELETE触发器。所有建立和修改数据库及其对象的语句、所有DROP语句都不允许在触发器中使用。

第八章:

1、什么是备份设备?物理设备标识和逻辑名之间有什么关系?

答:备份设备是用来存储数据库、事务日志或文件和文件组备份的存储介质。备份设备可以是硬盘、磁带或管道。物理备份设备指操作系统所标识的磁盘文件、磁带等,逻辑备份设备名是用来标识物理备份设备的别名或公用名称。使用逻辑备份设备名的优点是比引用物理设备名简短。

2、4种数据库备份和恢复的方式分别是什么?

答:

(1)使用SQL Server Management studio备份数据库;

(2)使用SQL命令备份数据库

(3)使用SQL Server Management studio恢复数据库

(4)使用SQL命令恢复数据库

3、存储过程sp_addumpdevice的作用是什么?

答:存储过程sp_addumpdevice的作用将备份设备添加到Microsoft SQL Server 2005 数据库引擎的实例中。

4、数据库中选项NORECOVERY和RECOVERY的含义是什么?分别在什么情况下使用?答:RECOVERY表示在数据库恢复完成后SQL Server 2005回滚被恢复的数据库中所有未完成的事务,以保持数据库的一致性。恢复完成后,用户就可以访问数据库了。所以RECOVERY 选项用于最后一个备份的还原。如果使用NORECOVERY选项,那么SQL Server 2005不回滚被恢复的数据库中所有未完成的事务,恢复后用户不能访问数据库。

第九章:

1、SQL Server 2005的安全模型分为哪3层结构?

答:SQL Server 2005的安全模型分为3层结构,分别为服务器安全管理、数据库安全管理和数据库对象的访问权限管理。

2、说明固定的服务器角色、数据库角色与登录账户、数据库用户的对应关系及其特点。答:服务器安全管理实现对SQL Server 2005服务器实例(简称服务器)的登录账户、服务器配置、设备、进程等方面的管理,这部分工作通过固定的服务器角色来分工和控制。数据库安全管理实现对服务器实例上的数据库用户账号、数据库备份、恢复等功能的管理,这部分工作通过数据库角色来分工和控制。数据库对象的访问权限的管理,决定对数据库中最终数据的安全性管理。数据对象的访问权限决定了数据库用户账号,对数据库中数据对象的引用以及使用数据操作语句的许可权限。

3、如果一个SQL Server 2005服务器采用仅Windows方式进行身份验证,在Windows操作系统中没有sa用户,是否可以使用sa来登录该SQL Server服务器?

答:不能使用sa来登录该SQL Server服务器

4、SQL Server 2005有哪两种安全模式?它有什么区别?

答:两种安全模式分别是仅Windows身份验证模式和混合验证模式。仅Windows身份验证模式就是只使用Windows验证机制的身份验证模式;而混合模式则是用户即可以选择使用Windows 验证机制也可以选择使用SQL Server验证机制。

相关主题
相关文档
最新文档