数据库技能技术总结与应用(第二版)课后答案资料 下载本文

若要删除表的定义及其数据,应使用什么语句??

答:在SQL?Server?中删除数据表和删除表数据不是一个问题。删除数据表是指将整个表文件在数据库中删除,删除表数据则是对数据表的某些数据内容进行删除。若要删除表的定义及其数据,应使用语句:? DROP?TABLE?语句?

(5)什么是实体完整性?实体完整性可通过什么措施实现?主键约束和唯一性约束有什么区别??答:实体完整性是指一个关系中所有主属性不能取空值。所谓“空值”,就是“不知道”或“无意义”的值。实体完整性可以通过标识列、主键约束、唯一性约束以及建立唯一性索引等措施来实现。? 主键约束:指定表的一列或几列的组合能唯一地标识一行记录。 唯一性约束:指定一个或多个列的组合的值具有唯一性,以防止在列中输入重复的数据。 DCABCABAAB 第4章习题解答 1.思考题? (1)在SQL的查询语句SELECT中,使用什么选项实现投影运算?什么选项实现连接 运算?什么选项实现选择运算??

答:在SQL的查询语句中,?select选项实现(投影)运算,from选项实现(连接)运算,where选项实现(选择)运算。?

(2)一个子SELECT的结果作为查询的条件,即在一个SELECT语句的WHERE子句中出现另一个SELECT语句,这种查询称为什么查询?其功能是什

么??

答:称为嵌套查询。嵌套查询是T-SQL语言的高级查询,它可以用多个简单的基本查询构成复杂的查询,从而增强其查询功能。?

(3)在SELECT语句中,?定义一个区间范围的特殊运算符是什么?检查一个属性值是否属于一组值中的特殊运算符又是什么?

答:在SELECT?语句中,定义一个区间范围的特殊运算符是BETWEEN,检查一个属性值是否属于一组值的特殊运算符是IN。? (4)在T-SQL语句中,与表达式“工资?BETWEEN?2000?AND?5000”功能相同的表达式如何写?? 答:工资>=2000??AND?工资<=5000? (5)语句“SELECT?*?FROM?成绩表WHERE?成绩>(SELECT?avg(成绩)?FROM?成绩表)”的功能是什么?? 答:查询成绩表中所有成绩大于平均成绩的记录 BDCBDCDACD 第5章?习题解答 1.思考题? (1)什么是聚集索引?什么是非聚集索引?它们的区别是什么?? 答:聚集索引(Clustered)将数据行的键值在数据表内排序并存储对应的数据记录,使得数据表的物理顺序与索引顺序一致。非聚集索引(Non-clustered)具有完全独立于数据行的结构。数据存储在一个地方,索引存储在另一个地方。?

聚集索引确定表中数据的物理顺序。非聚集索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。?

(2)一个表中的数据可以按照多种顺序来存储吗?一个表中能创建几个聚集索引?聚集索引一定是唯一索引吗?为什么??

答:一个表中的数据只能按照一种顺序来存储,所以一个表中只能创建一个聚集索引。?唯一索引是给所做的索引增加了唯一性的约束,添加,修改索引列中数据时,不允许出现重复值。聚集索引是唯一的,也可以不是唯一的,就看如何定义。? (3)视图和数据表的区别是什么?视图可以创建索引、创建主健、约束吗?为什么??答:视图和数据表的区别: 1)视图是已经编译好的sql语句。而表不是。?2)视图没有实际的物理记录。而表有。?3)表是内容,视图是窗口。? 4)表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改。? ?5)表是内模式,视图是外模式。? ?6)视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。? ?7)表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。??8)视图的建立和删除只影响视图本身,不影响对应的基本表。?? (4)能不能基于临时表建立视图?由什么语句可建立临时表?在CREATE?VIEW语句中能不能使用INTO关键字?为什么??

答:不能基于临时表建立视图。由SELECT?INTO语句可建立临时表,在CREATE?VIEW语句中不能使用INTO关键字。

(5)视图存储记录吗?对更新视图的操作最终都转化为对什么的更新操

作??

答:视图的信息存放在系统表中,可以使用查询语句或系统存储过程进行查询。由于视图实际上并不存储记录,因此更新视图的操作最终都转化为对基表的更新操作。 ACCAABCCAA

第6章?习题解答 1.思考题? (1)什么是存储过程?为什么要使用存储过程?? 答:存储过程是SQL?Server服务器中一组(预编译)的T-SQL语句的集合,是存储在数据库中的程序,这些程序是用来完成对数据库的指定操作。存储过程具有如下优点:? 1)?存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般?SQL?语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。? 2)?当对数据库进行复杂操作时(如对多个表进行?Update,Insert,Query,Delete?时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的?SQL?语句,可能要多次连接数据库。而使用存储过程,只需要连接一次数据库就可以了。?

?3)?存储过程可以重复使用,可减少数据库开发人员的工作量。? ?4)?安全性高,可设定只有某此用户才具有对指定存储过程的使用权。?? (2)系统存储过程和自定义存储过程有何区别??

答:最简单的区别就是系统存储过程是系统自带的,用户不可更改删除;

而自定义的存储过程是用户自己编辑的。在自定义存储过程中可以调用系统存储过程。?

(3)当某个表被删除后,该表上的所有触发器是否还存在?为什么?? 答:因为触发器(trigger)是SQL?Server数据库中一种特殊类型的存储过程,不能由用户直接调用,而且可以包含复杂的T-SQL语句。? 触发器是为表上的更新、插入、删除操作定义的,也就是说当表上发生更新、插入或删除操作时触发器将执行。所以,当某个表被删除后,该表上的所有触发器将自动被删除。触发器主要用于强制复杂的业务规则或要求。? (4)存储过程和触发器有什么区别?什么时候用存储过程?什么时候用触发器?? 答:存储过程和触发器,它们都是独立的数据库对象和存储在数据库上的特殊的程序。?存储过程由用户调用,完成指定的数据处理任务;触发器则由特定的操作触发,从而自动完成相关的处理任务。? 使用触发器可以实现更强的数据完整性方面的约束。? (5)要求创建一个存储过程myproc,查询指定班级中选修指定课程的学生人数,并将查询结果通过参数返回。以下过程调用存储过程查询“材料科学0601”班中选修“C++程序设计基础”的学生人数:? CREATE?PROCEDURE?[myproc]??

@classname?VARCHAR(20),?@cname?VARCHAR(20),?@count?INT?OUTPUT??AS??

SELECT?COUNT(*)?FROM?S_C_Info?sc,?st_info?s,?c_info?c?WHERE?c.c_no=sc.c_no?AND?s.st_id=sc.st_id?AND??