数据库课后题答案 第6章 管理数据库其他对象
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6章管理数据库其他对象
本章要点:
1、视图及视图与表的关系
2、视图的创建、管理和操作
3、规则、默认值的概念及创建、捆绑、修改和删除
4、自定义数据类型的创建、修改、删除和查看
5、触发器的概念、作用及两种触发器的工作原理和执行过程
6、触发器的创建及管理
6.1 视图
6.1.1 视图的概念
视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图的结构和数据是对数据表进行查询的结果。
视图被定义后便存储在数据库中,通过视图看到的数据只是存放在基表中的数据。当对通过视图看到的数据进行修改时,相应的基表的数据也会发生变化,同时,若基表的数据发生变化,这种变化也会自动地反映到视图中。
视图可以是一个数据表的一部分,也可以是多个基表的联合。
6.1.2 视图的优点
⏹视图可以屏蔽数据的复杂性,简化用户对数据库的操作。
⏹视图可以让不同的用户以不同的方式看到不同或者相同的数据集。
⏹可以使用视图重新组织数据。
⏹视图可以定制不同用户对数据的访问权限。
6.1.3 创建视图
1、创建视图之前的注意事项:
⏹只能在当前数据库中创建视图。
⏹一个视图中行、列的限制。
⏹如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同,则必须为列定义名称。
⏹视图与基表的关系
⏹不能在视图上创建索引,不能在规则、默认的定义中引用视图。
2、创建视图
(1)使用企业管理器创建视图
在企业管理器中展开要创建视图的数据库,用鼠标右键单击“视图”选项,
在弹出的快捷菜单中选择“新建视图”命令,打开后,这个界面我们在前
面介绍select语句的时候已经给大家介绍过了。在此不再赘述了,请大家
对照书本的例子练习。
(2)使用Transact-SQL语句创建视图
CREATE VIEW
[ < database_name > .] [ < owner > .]
view_name [ ( column [ ,...n ] ) ]
[ WITH < view_attribute > [ ,...n ] ]
AS
select_statement
[ WITH CHECK OPTION ]
< view_attribute > ::=
{ ENCRYPTION | SCHEMABINDING |
VIEW_METADATA }
举例:
在“studentborrow”数据库中,创建一个仅包含“高等教育出版社”出版图书的视图
语句:
create view 高等教育出版社
as
select *
from 图书信息
where 出版社名称='高等教育出版社'
创建一个视图,其中的内容是所有价格低于10元的图书,并加密视图的定义。
create view ddd
with encryption
as
select *
from 图书信息
where 定价<10
此时右单击视图“低价图书”->属性->文本行定义不可见
(2)使用向导创建视图
选择“工具”->“向导”->“数据库向导”->“创建视图向导”,根据向导的提示一步一步操作即可。
6.1.4 查看视图信息
1、使用企业管理器查看视图信息
2、使用系统存储过程查看视图信息
sp_help 数据库对象名称
sp_helptext 视图(触发器、存储过程)
sp_depends 数据库对象名称
举例:查看视图高等教育出版社定义
exec sp_helptext 高等教育出版社
6.1.5 修改视图
1.使用企业管理器修改视图
2.使用Transact-SQL语句修改视图
ALTER VIEW view_name
[(column[,...n])]
[WITH ENCRYPTION]
AS
select_statement
[ WITH CHECK OPTION ]
6.1.6 重命名视图
1.使用企业管理器重命名视图
2.使用系统存储过程重命名视图
sp_rename old_name,new_name
6.1.7 使用视图
⏹修改视图中的数据时每次修改都只能影响一个基表。
⏹不能修改那些通过计算得到的字段。
⏹如果在创建视图时指定了WITH CHECK OPTION选项,那么所有使用视图修改数据库信息时,必须保证修改后的数据满足视图定义的范围。
⏹执行UPDATE、DELETE命令时,所删除与更新的数据必须包含在视图的结果集中。
⏹如果视图引用多个表时,无法用DELETE命令删除数据,若使用UPDATE命令则应与INSERT操作一样,被更新的列必须属于同一个表。
6.1.8 删除视图
1、使用企业管理器删除视图
2、使用Transact-SQL语句删除视图
DROP VIEW {view_name} [,…n]
第二节用户自定义数据类型
用户自定义数据类型并不是真正的数据类型,它只是提供了一种加强数据库内部元素和基本数据类型之间一致性的机制。通过使用用户自定义数据类型,能够简化对常用规则和默认值的管理。
6.2.1 创建用户自定义数据类型
1、使用T-SQL语句
可以使用系统存储过程sp_addtype来创建用户自定义数据类型。语法:
sp_addtype type_name[,system_type]{‘null’,|’not null’|’notnull’}