SQL视图的创建和使用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.6 删除视图
7.6.1 使用SQL Server管理控制台 删除视图
打开SQL Server管理控制台窗口,选择要删除的视 图,右击该视图名称,从弹出的快捷菜单中选择 “删除”选项,会出现“删除对象”对话框。 注意:在确认删除之前,应该查看视图的依赖关系 窗口,查看是否有数据库对象依赖于将被删除的视 图。如果存在这样的对象,那么首先确定是否还有 必要保留该对象,如果不必继续保存,可以直接删 除掉该视图,否则只能放弃删除。
7.1.2 视图的优点
简化数据操作:视图可以简化用户处理数据的方式。 着重于特定数据:不必要的数据或敏感数据可以不 出现在视图中。 视图提供了一个简单而有效的安全机制,可以定制 不同用户对数据的访问权限。 提供向后兼容性:视图使用户能够在表的架构更改 时为表创建向后兼容接口。 自定义数据:视图允许用户以不同方式查看数据。 导出和导入数据:可使用视图将数据导出到其他应 用程序。
句。
7.2.2 使用Transact-SQL语句 创建视图
CHECK OPTION :强制针对视图执行的所有数据 修改语句都必须符合在 select_statement 中设置 的条件。 ENCRYPTION:对视图文本进行加密。 例7-2-2:使用Transact-SQL语句创建一个新视图, 命 名 为 VIEW_SCORE, 要 求 基 表 的 来 源 为 : T_STUDENT、T_SCORE和T_COURSE,选择的 字 段 为 : T_STUDENT 表 中 的 S_NUMBER 和 S_NAME字段、T_COURSE表中的C_NAME字段 及T_SCORE表中的SCORE字段,要求查询的数据 为05541班学生的考试成绩。
7.4 修改和重命名视图
如果已定义的视图不能满足用户要求时,可
以使用SQL Server管理控制台或TransactSQL语句修改视图的定义。也可以对现有的 视图重新命名。
7.4.1 修改视图
1.使用SQL Server管理控制台修改视图
在SQL Server管理控制台中,右击要修改的
7.3.2 使用系统存储过程查看视图信息
系统存储过程sp_help可以显示数据库对象
的特征信息,sp_depends可以显示数据库 对象所依赖的对象,它们可以在任何数据库 对象上运行。sp_helptext可以用于显示视图、 触发器或存储过程等在系统表中的定义。它 们的语法形式分别如下: sp_help 数据库对象名称 sp_helptext 视图(触发器、存储过程) sp_depends 数据库对象名称
注意:如果视图创建时定义了限制条件或者基本表 的列允许空值或有默认值,而插入的记录不满足该
条件时,此时,仍然可以向表中插入记录,只是用 视图检索时不会显示出新插入的记录。如果不想让 这 种 情 况 发 生 , 则 可 以 使 用 WITH CHECK OPTION选项限制插入不符合视图规则的视图。这 样,在插入记录时,如果记录不符合限制条件就不 能插入。
7.5.2 更新数据记录
1.使用SQL Server管理控制台在视图中更
新记录 具体方法是:在SQL Server管理控制台中, 打开要更新记录的数据表对应的视图,在返 回的数据记录窗口中直接修改记录即可。
7.5.2 更新数据记录
2.使用Transact-SQL语句通过视图更新记
录 例7-5-4:创建一个基于表T_STUDENT的视 图 VIEW_STUDENT_05541_Modify, 条 件 是显示05541班的学生的学号、姓名和性别, 然后通过该视图修改表T_STUDENT中的记 录。
7.4.2 重命名视图
1.使用SQL Server管理控制台重命名视图
在SQL Server管理控制台中,右击要修改名
称的视图,从弹出的快捷菜单中选择“重命 名”选项。或者在视图上再次单击,也可以 修改视图的名称。当该视图的名称变成可输 入状态时,可以直接输入新的视图名称。
7.4.1 修改视图
7.2.2 使用Transact-SQL语句 创建视图
其中,各参数的说明如下:
schema_name:视图所属架构的名称。 view_name:视图的名称。
cຫໍສະໝຸດ Baidulumn:视图中的列使用的名称。
AS:指定视图要执行的操作。
select_statement:定义视图的 SELECT 语
视图名称,从弹出的快捷菜单中选择“修改” 选项,会出现视图的设计窗口。该窗口与创 建视图时的窗口相同,可以按照创建视图的 方法修改视图的定义。
7.4.1 修改视图
2.使用Transact-SQL语句修改视图 可 以 使 用 Transact-SQL 语 言 中 的 ALTER
VIEW语句修改视图: ALTER VIEW [ schema_name . ] view_name [ ( column [ ,...n ] ) ] [ WITH ENCRYPTION ] AS select_statement [ WITH CHECK OPTION ] [ ; ]
7.2.2 使用Transact-SQL语句 创建视图
使用Transact-SQL语言中的CREATE VIEW
语句创建视图,其语法形式如下: CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ] [ WITH ENCRYPTION ] AS select_statement [ WITH CHECK OPTION ] [ ; ]
7.3 查看视图信息
在SQL Server中,可以通过SQL Server管
理控制台或者使用系统存储过程来查看视图 信息。
7.3.1 使用SQL Server管理控制台 查看视图信息
打开SQL Server管理控制台窗口,在SQL
Server管理控制台左边的“树”选项卡中选 择指定的SQL Server组,展开指定的服务器, 打开要查看视图的数据库文件夹,选择“视 图”目录。
7.2 创建视图
在SQL Server 2005中创建视图主要有两种
方法:使用SQL Server管理控制台和使用 Transact-SQL语句中的CREATE VIEW命令。 创建视图之前,应考虑以下基本原则: 只能在当前数据库中创建视图。 视图名称必须遵循标识符的规则,且对每个 架构都必须唯一。 必须获取由数据库所有者授予的创建视图的 权限。
7.3.2 使用系统存储过程查看视图信息
例7-3-1:使用系统存储过程 sp_help显示
VIEW_SCORE视图的特征信息。 例7-3-2:使用sp_helptext显示 VIEW_SCORE视图在系统表中的定义。 例7-3-3:查看加密视图的定义信息。 例7-3-4:使用sp_depends显示 VIEW_SCORE视图所依赖的对象。
7.5.3 删除数据记录
1.使用SQL Server管理控制台在视图中删
除记录 具体方法是:在SQL Server管理控制台中, 打开要删除记录的数据表对应的视图,在返 回的数据记录窗口中直接删除记录即可。
7.5.3 删除数据记录
2.使用Transact-SQL语句通过视图删除记
录 使用视图删除记录时,可以直接利用 Transact-SQL语言的DELETE语句删除视图 中的记录。但应该注意,如果有删除条件, 则WHERE条件中使用到的字段必须是在视 图中定义过的字段。 例7-5-5:利用视图VIEW_STUDENT_05541, 先插入一条记录,然后删除此条记录。
7.2.1 使用SQL Server管理控制台 创建视图
选项卡中展开指定的服务器,打开要创建视 图的数据库,右击其中的“视图”对象,从 弹出的快捷菜单中选择“新建视图”选项。 例7-2-1:创建一个视图,要求显示 T_STUDENT表中所有姓张的同学,并按性 别进行升序排序。
方法是在SQL Server管理控制台左边的“树”
7.2.2 使用Transact-SQL语句 创建视图
例7-2-3:使用Transact-SQL语句创建新视
图VIEW_SCORE_NotPass。对数据表和对 字段的选择同上,要求只显示各班不及格的 学生的学号、姓名、课程名及成绩。并加密 视图的定义。 例7-2-3:使用Transact-SQL语句创建新视 图 VIEW_SCORE_SumAndAverage。 要 求 计算各个班级各门课程的总分及平均分。
7.5.1 插入数据记录
例7-5-1:创建一个基于表T_STUDENT的新视图 VIEW_STUDENT_05541,要求包含05541班的学 生记录。
例7-5-2:首先创建一个包含限制条件的视图 VIEW_STUDENT_05541_ 男 , 限 制 条 件 为 显 示 05541班的男同学信息,然后插入了一条不满足限 制条件的记录,再用SELECT语句检索视图和表。 例7-5-3:在例子7-5-2的基础上添加WITH CHECK OPTION选项。
7.4.1 修改视图
注 意 : 如 果 原 来 的 视 图 定 义 是 用 WITH
ENCRYPTION或WITH CHECK OPTION创 建的,那么只有在ALTER VIEW中也包含这 些选项时,这些选项才有效。 例7-4-1:修改视图VIEW_SCORE_NotPass, 在该视图中增加一个新的条件,要求只显示 高等数学不及格的学生信息。
7.6.2 使用Transact-SQL语句删除视图
可 以 使 用 Transact-SQL 语 句 中 的 DROP
VIEW命令删除视图,其语法形式如下: DROP VIEW {view_name} [,…n]
可以使用该命令同时删除多个视图,只需在
要删除的各视图名称之间用逗号隔开即可。 例7-6-1:删除视图 VIEW_STUDENT_05541_Modify和视图 VIEW_STUDENT_05541_男。
7.5 使用视图
通过视图可以方便地检索数据,并可以修改
基本表的数据,使用视图修改数据时,需要 注意以下几点: 任何修改都只能引用一个基表的列。 在视图中修改的列必须直接引用表列中的基 础数据。 使用集合运算符得出的计算结果不可更新。 修改的数据必须符合对这些列的约束,例如 为空性、约束及DEFAULT定义等。
2.使用系统存储过程重命名视图
可以使用系统存储过程sp_rename来修改视
图的名称,该过程的语法形式如下: sp_rename old_name,new_name 例7-4-2:使用系统存储过程sp_rename来完 成 把 视 图 “ VIEW_SCORE_NotPass” 重 命 名 为 “ VIEW_SCORE_NotPass_ 高 等 数 学”。
7.5.1 插入数据记录
1.使用SQL Server管理控制台在视图中插
入记录 具体方法是:在SQL Server管理控制台中, 打开要插入记录的数据表对应的视图,在返 回的数据记录的最下面一行中直接插入新记 录即可。
7.5.1 插入数据记录
2.使用Transact-SQL语句通过视图插入记录
第7章 视图的创建和使用
本章学习目标
了解视图和数据表之间的主要区别
了解视图的优点 掌握创建、修改和删除视图的方法
掌握查看视图信息的方法
掌握通过视图修改数据表的方法
7.1 概述
7.1.1 视图的概念
视图是一种数据库对象,是从一个或者多个
数据表或视图中导出的虚表,视图所对应的 数据并不真正地存储在视图中,而是存储在 所引用的数据表中,视图的结构和数据是对 数据表进行查询的结果。 根据创建视图时给定的条件,视图可以是一 个数据表的一部分,也可以是多个基表的联 合,它存储了要执行检索的查询语句的定义, 以便在引用该视图时使用。