习题参考答案 - 下载本文

SELECT * FROM 借阅

WHERE 归还日期 IS NULL

8)查询单价在20元以上,30元以下的电子工业出版社出版的图书名,单价。 SELECT 书名,单价 FROM 图书

WHERE 出版社=’电子工业出版社’ AND 单价>20.00 AND 单价<30.00 9)求借阅了图书的读者的总人数

SELECT COUNT(DISTINCT 读者号) AS ‘借阅过图书的读者总人数’ FROM 借阅

10)求电子工业出版社图书的平均价格、最高价、最低价。

SELECT AVG(单价) AS ‘平均价’,MAX(单价) AS ‘最高价’, MIN(单价) AS ‘最低价’ FROM 图书

WHERE 出版社=’电子工业出版社’

11) 查询借阅图书本数超过2本的读者号、总本数。并按借阅本数值从大到小排序。 SELECT 读者号,COUNT(图书号) AS ‘总本数’ FROM 借阅

GROUP BY 读者号 HAVING COUNT(*) > 2 ORDER BY COUNT(图书号) DESC

12)查询读者的读者号、姓名、借阅的图书名、借出日期、归还日期。 SELECT 读者.读者号,姓名,书名,借出日期,归还日期 FROM 读者, 图书,借阅

WHERE 读者.读者号 = 借阅.读者号 AND 图书.图书号=借阅.图书号

13)查询借阅了电子工业出版社出版,并且书名中包含’数据库’三个字的图书的读者,显示读者号、姓名、书名、出版社,借出日期、归还日期。

SELECT 读者.读者号,姓名,书名,出版社,借出日期,归还日期 FROM 读者,图书,借阅

WHERE 读者.读者号 = 借阅.读者号 AND 图书.图书号=借阅.图书号 AND 出版社=’电子工业出版社’ AND 书名 LIKE ‘%数据库%’

14)查询至少借阅过1本电子工业出版社出版的书的读者的读者号、姓名、书名,借阅本数,并按借阅本数多少降序排列。

SELECT 借阅.读者号,姓名,书名, COUNT(借阅.图书号) ‘借阅本数’ FROM 读者, 图书,借阅

WHERE 读者.读者号 = 借阅.读者号 AND 图书.图书号=借阅.图书号 AND 出版社=’电子工业出版社’ GROUP BY 借阅.读者号, 姓名,书名 HAVING COUNT(借阅.图书号) >=1 ORDER BY COUNT(借阅.图书号) DESC

15)查询与’王平’的办公电话相同的读者的姓名。 SELECT R2.姓名

FROM 读者 R1, 读者 R2

where R1.办公电话= R2.办公电话 AND R1.姓名= ‘王平’ 16)查询所有单价小于平均单价的图书号、书名、出版社 SELECT 图书号,书名,出版社 FROM 图书

WHERE 单价< (SELECT AVG(单价) ‘平均单价’ FROM 图书)

17)查询’科学出版社’的图书中单价比’电子工业出版社’最高单价还高的的图书书名、单价。

SELECT 图书号,单价 FROM 图书 WHERE 出版社=’科学出版社’ AND 单价> (

SELECT MAX(单价) FROM 图书 WHERE 出版社=’电子工业出版社’) 等价于:

SELECT 图书号,单价 FROM 图书

WHERE 出版社='科学出版社' AND 单价>ALL (

SELECT 单价 FROM 图书 WHERE 出版社='电子工业出版社')

第9章 视图

一、单项选择题

1.SQL的视图是___ C ____中导出的。 A.基本表

B.视图

C.基本表或视图 B.查询

D.在视图上定义新视图

D.数据库

2.在视图上不能完成的操作是___ C ____。 A.更新视图数据

C.在视图上定义新的基本表 A.视图可以提高数据的操作性能

B.定义视图的语句可以是任何数据操作语句 C.视图可以提供一定程度的数据独立性 D.视图的数据一般是物理存储的

4.在下列关于视图的叙述中,正确的是___ A ____。

A.当某一视图被删除后,由该视图导出的其他视图也将被自动删除 B.若导出某视图的基本表被删除了,该视图不受任何影响 C.视图一旦建立,就不能被删除

D.当修改某一视图时,导出该视图的基本表也随之被修改 二、简答题

1.简答视图的作用及视图的优缺点。

视图是一种数据库对象,它是从一个或多个表或视图中导出的虚表,即它可以从一个或多个表中的一个或多个列中提取数据,并按照表的组成行和列来显示这些信息,可以把视图看做是一个能把焦点定在用户感兴趣的数据上的监视器。

使用视图有下列优点:

① 为用户集中数据,简化用户的数据查询和处理。有时用户所需要的数据分散在多个表中,定义视图可将它们集中在一起,从而方便用户进行数据查询和处理。

② 屏蔽数据库的复杂性。用户不必了解复杂的数据库中的表结构,并且数据库表的更改也不影响用户对数据库的使用。

③ 简化用户权限的管理。只需授予用户使用视图的权限,而不必指定用户只能使用表的特定列,也增加了安全性。

④ 便于数据共享。各用户不必都定义和存储自己所需的数据,而可共享数据库的数据,这样,同样的数据只需存储一次。

⑤ 可以重新组织数据以便输出到其他应用程序中。

视图的缺点主要表现在其对数据修改的限制上。当更新视图中的数据时,实际上就是对基本表的数据进行更新。事实上,当从视图中插入或者删除时,情况也是一样。然而,某些视图是不能更新数据的,这些视图有如下的特征:

3.关于数据库视图,下列说法正确的是___ C ____。

① 有UNION等集合操作符的视图。 ② 有GROUP BY子句的视图。 ③ 有诸如AVG、SUM等函数的视图。 ④ 使用DISTINCT短语的视图。 ⑤ 连接表的视图(其中有一些例外)。

所以视图的主要用途在于数据的查询。在使用视图时,要注意只能在当前数据库中创建与保存视图,并且定义视图的基表一旦被删除,则视图也将不可再用。

2.简答基本表和视图的区别和联系。

视图是虚拟的表,与表不同的是,视图本身并不存储视图中的数据,视图是由表派生的,派生表被称为视图的基本表,简称基表。视图可以来源于一个或多个基表的行或列的子集,也可以是基表的统计汇总,或者是视图与基表的组合,视图中的数据是通过视图定义语句由其基本表中动态查询得来的。

3.简答查看视图定义信息的方法。

系统存储过程sp_help可以显示数据库对象的特征信息,sp_helptext可以用于显示视图、触发器或存储过程等在系统表中的定义,sp_depends可以显示数据库对象所依赖的对象。它们的语法形式分别如下:

sp_help 数据库对象名称

sp_helptext 视图(触发器、存储过程) sp_depends 数据库对象名称

三、设计题

基于图书馆数据库的三个表:

图书(图书号,书名,作者,出版社,单价); 读者(读者号,姓名,性别,办公电话,部门); 借阅(读者号,图书号,借出日期,归还日期)。 用T-SQL语言建立以下视图:

(1)建立视图VIEW_BOOK,包括全体图书的图书号、书名、作者、出版社、单价。 (2)建立视图VIEW_PRESS,包括电子工业出版社、科学出版社、人民邮电出版社的图书信息。

(3)建立视图VIEW_PRESS_PHEI,包括电子工业出版社图书的平均价格、最高价、最低价。

(4)建立视图VIEW_READERS,包括读者的读者号、姓名、借阅的图书名、借出日期、归还日期。

第10章 索引

一、填空题

1.在索引命令中使用关键字CLUSTERED和NONCLUSTERED分别表示将建立的是_聚集_索引和_非聚集__索引。

2.访问数据库中的数据有两种方法,分别是:__表扫描______和____索引查找____。 3.索引一旦创建,将由__数据库管理系统_____自动管理和维护。

4.在一个表上,最多可以定义___1____个聚集索引,最多可以有___多个__非聚集索引。 二、单项选择题

1.为数据表创建索引的目的是____ A.___。

A.提高查询的检索性能 C.便于管理 A.一个

B.节省存储空间 D.归类

C.一个或多个 D.零个

B.经常参与连接操作的属性 D.经常需要进行更新操作的属性

2.索引是对数据库表中____ C ___字段的值进行排序。

B.多个

3.下列____ D ___属性不适合建立索引。

A.经常出现在GROUP BY字句中的属性 C.经常出现在WHERE字句中的属性 三、简答题

1.简答引入索引的主要目的。

索引是数据库随机检索的常用手段,它实际上就是记录的关键字与其相应地址的对应表。通过索引可大大提高查询速度。

在没有建立索引的表内,使用堆的集合方法组织数据页。在堆的集合中,数据行不按任何顺序进行存储,数据页序列也没有任何特殊顺序。因此,扫描这些数据堆集花费的时间肯定较长。在建有索引的表内,数据行基于索引的键值按顺序存放,必然改善了系统查询数据的速度。

2.简答聚集索引和非聚集索引的区别。

根据索引的顺序与数据表的物理顺序是否相同,可以把索引分为聚集索引和非聚集索引。聚集索引会对磁盘上的数据进行物理排序,所以这种索引对查询非常有效。表中只能有一个聚集索引。当建立主键约束时,如果表中没有聚集索引,SQL Server会用主键列作为聚集索引键。聚集索引将数据行的键值在表内排序并存储对应的数据记录,使数据表的物理顺序与索引顺序相同。

非聚集索引与图书中的目录类似。非聚集索引不会对表进行物理排序,数据记录与索引分开存储。使用非聚集索引不会影响数据表中记录的实际存储顺序。非聚集索引中存储了组成非聚集索引的关键字值和行定位器。由于非聚集索引使用索引页存储,因此它比聚集索引需要较少的存储空间,但检索效率比聚集索引低。由于一个表只能建一个聚集索引,当用户