数据库原理与应用 第二版(张俊玲)清华大学出版社 课后习题答案完整版 联系客服

发布时间 : 星期日 文章数据库原理与应用 第二版(张俊玲)清华大学出版社 课后习题答案完整版更新完毕开始阅读5b36490e33687e21af45a9c6

3. 通配符%的含义表示 匹配多个字符 ,而通配符_的含义表示 匹配单个字符 。

4. 对结果集进行排序时使用关键字 order by 。

5. 将记录分为若干组进行集合函数运算时使用关键字 group by 。 四、综合题

1.请将作者姓名按降序以姓名格式输出,并保存在au-bak表中.

Select au_fname+’ ‘+au_lname as au_name into au-bak form authors order by au_lanme, au_fname

2. 检索出图书编号和类型, 并以价格的十分之一以discount列名输出. Select title_id,type, price *0.1 as discount from titles

3. 检索出所有图书的类型(要求去掉重复结果). Select disctinct type from titles.

4.检索出订购数量>50的书店编号,图书编号和订购数量. Select stor_id, title_id, qty from sales where qty>50

5. 检索出CA州或salt lake city作者的编号,城市和州名

Select au_id, city, state from authors where state in (‘CA’, ’Salt Lake City’)

6.检索出价格在5-20元间的图书编号和价格.

Select title_id, price from titles where price between 5 and 20

7.检索出价格不在5-20元间的图书编号和价格.

Select title_id, price from titles where price not between 5 and 20

8.检索出mod_cook, trad_cook, business类图书的编号,价格和类型.

Select title_id, price, type from titles where type in (‘mod_cook’,’ trad_cook’, ‘business’)

10. 检索出居住在以S开头的城市的作者的姓,城市名和州名. Select au_lname, city ,state from authors where city like ‘S%’

11. 检索出图书的最高价格. Select max(price) from titles

12. 请计算图书数量和价格非空的图书的数量.

Select count(*) from titles where price is not null and ytd_sales is not null

13.请计算出business类图书的平均价格.

Select avg(price) from titles where type =’business’

14.请计算出各类图书的平均价格.

Select type, avg(price) from titles group by type

15. 请计算出business类图书和mod_cook图书的平均价格.

Select type, avg(price) from titles where type in (‘business’,’mod_cook’) group by type

16. 检索出business类图书和mod_cook类图书的平均价格和图书类型.

Select type, avg(price) from titles where type in (‘business’,’mod_cook’) group by type

17. 按图书类型检索出价格>10且平均价格>18的图书的类型和平均价格.

Select type, avg(price) from titles where price >10 group by type having avg(price)>18

18. 检索出图书名及其出版商名称.

Select title, pub_name from titles , publishers where titles.pub_id=publishers.pub_id

19. 检索出出版psychology类图书的出版商和书名.

Select pub_name, title from from titles , publishers where titles.pub_id=publishers.pub_id and type=’psychology’

20. 检索出分类图书平均价格低于所有图书平均价格的图书的类型及平均价格. Select type, avg(price) from titles group by type having( avg(price) <( select avg(price) from titles))

第十三章

一、单选题 ADACC 二、填空题

1. 视图是根据 子模式 设计的关系,是从一个或几个 基本表 或 视图 导出的

表,是一个虚表。

2. 修改视图的关键字是 alter view ,删除视图的关键字是 drop view 。 三. 简答题

1.什么是基本表? 什么是视图?两者的区别和联系是什么?

答: 基本表是存放数据的一个关系. 视图是从一个或多个基本表或视图导出的表,是虚表. 数据库中存放的是视图的定义,而不是存放视图的数据. 2. 视图的优点是什么?

答: 视图能简化用户的操作,视图机制可以使不同用户以不同的方式来看待同一数据, 还能对机密数据提供安全保护. 3. 修改视图时应该注意的问题是什么>

答: 修改视图时应注意,如果创建视图时使用了with check option, with encryption选项, 则修改时要注意保留这些选项. 4. 什么情况下必须指明视图所有的列名?

答: 目标列中有聚集函数或列表达式,或者需要选用新的列名时要指明视图中的

所有列名.

第十四章

一、单选题 AD 二、填空题

1. 数据的完整性是指数据的 正确性 、 相容性 。 2. 创建规则的命令是 create rule 。

3. 使用 sp_bind rule 可以将定义的规则绑定在数据库表的列上。 4. 使用 drop rule 可以删除规则。 三. 简答题

1. 规则的作用是什么? 它与check约束有什么区别?

答: 规则可以验证数据是否在一个指定的值域内,是否与特定格式相匹配. 对于表的永久性规则一般在定义表时用check约束, 在创建表工作结束后,要追加规则则可以通过create rule建立所需要的规则,并用sp_bindrule将规则绑定到表中. 2. 如何查看规则?

答: 可以用sp_help text显示规则.

3. 在定义表时定义默认, 与用create default 定义默认有什么区别?

答: 表的永久性默认时一般在建立表时用default定义, 对于追加的默认用create default来定义.

第十五章

一、单选题 ACDA 二、填空题

1. 修改存储过程的语句是 alter procedure 。

2. 创建存储过程的语句中,定义局部参数用 @参数名 表示。 3. 运行存储过程的命令是 exec[ute] <过程名> 。

4. 每个表最多只能有三个触发器,即 insert 、 update 和 delete 。

5. 当对指定表执行delete操作时,触发器被激活,并从指定表中删除元组,同

时将删除的元组放入一个特殊的逻辑表 deleted 中。

6. 当对指定表执行insert操作时,触发器被激活,激活后将插入表中的数据拷

贝并送到一个特殊的逻辑表 inserted 。

7. update触发器被激活后把将要被更新的数据移入 deleted 表中,更新数据插入到inserted表中。 三. 简答题

1. 解释事务的概念.

答: 事务是DBMS提供的一种特殊的手段, 是与实际生产中发生的某一事件相对应以便将该事件反映在数据库中的一段程序. 这段程序必须要么全部执行要么全部不执行.

2. 视图与存储过程有那些区别?

答: 视图不是真实存在的数据表, 而是从表后视图导出的虚表. 存储过程是一套已经编译好的SQL语句. 视图是封装好的select语句,而存储过程可以有select, update, insert等操作.

3. 解释存储过程的概念.

答: 存储过程是一套已经编译好的SQL语句,允许用户声明变量和输出参数.存储过程存储于数据库内,可由应用程序调用. 4. 解释触发器的概念.

答: 触发器是一个特殊的存储过程,它不需要语句来调用, 而是某个操作执行后自动激活触发器.

5. 创建触发器应考虑哪些问题?

答: 不能在临时表或系统表上创建触发器, 触发器的权限只分配给表的所有者, 不能将权限转让给其它用户. 四. 综合题

1. 输入并执行下列语句,测试使用if语句和while语句,给出输出结果. Declare @compute int Set @comput3e=0; While @compute<10 Begin

If @compute<5 Begin

Set @compute=@compute+1

Print ‘ 此时@compute变量小于5, 值为’+ cast(@compute as char(5)) End Else Begin

Set @compute=@compute+2

Print ‘ 此时@compute变量大于5, 值为’+ cast(@compute as char(5)) End End

输出结果为

此时@compute变量小于5, 值为1 此时@compute变量小于5, 值为2 此时@compute变量小于5, 值为3 此时@compute变量小于5, 值为4 此时@compute变量小于5, 值为5 此时@compute变量小于5, 值为7 此时@compute变量小于5, 值为9 此时@compute变量小于5, 值为11

2. 在northwind数据库中, 输入并执行下面语句…….这个存储过程的含义是什么?如何删除该存储过程.

答: 存储过程是显示价格最高的5种商品名称. 删除存储过程用drop proc firstproc

3. 学生选课库中包含三个基本表, 其结构为:

学生S(学号sno, 姓名sname, 年龄age,所在系depa) 课程C(课程号cno, 课程名cname, 先行课cpno)

选课SC(学号sno, 课程号cno, 成绩grade)

在学生选课库中, 为选课表建立一个插入触发器, 利用触发器来保证学生选课库中选课表的参照完整性. 以维护其外码与参照表中的主码一致. Create trigger sc_insert on sc for insert As

If (select(*) from s, inserted, c where s.sno=inserted.sno and c.cno=inserted.cno)=0 Rollback tran

4.根据第10章综合题1的设计结果(借阅(书号,借书证号,借书日期,还书日期)) , 为借阅信息表建立一个保证参照完整性, 以维护外码与被参照表中的主码一致的除法器.

答: create trigger sc_insert on sc for borrow As

If (select count(*) from book, reader, inserted where book.bk_id=inserted.bk_id and reader.rd_id=inserted. Rd_id)=0\\ Rollback tran

第十六章

一. 选择题 AADBD