第5章实现SQL Server数据库中的视图

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5. 3管理视图
在企业管理器下或通过SQL语句都可以查看 视图的定义信息,但是,如果在视图的定义语句 中带有WITH ENCRYPTION子句,表示SQL Server 对建立视图的语句文本进行了加密,则无法看到 视图的定义语句。即使是视图的拥有者和系统管 理员也不能看到。
第5章 实现SQL Server数据库中的视图
第5章 实现SQL Server数据库中的视图
5.4.3 通过视图删除表中的数据
【实例5.12】删除视图“学生视图”中黎明的数 据。(假设所删除的数据已经存在)。 操作步骤: (1)启动“查询分析器”,输入如下SQL语句: DELETE 学生视图 WHERE 姓名='黎明'
GO
第5章 实现SQL Server数据库中的视图
归纳分析:
在窗口内容由上至下分为四部分:第一部分显示视图 的基表及其对应外键关系(有关外键的内容在第8章);第 二部分显示视图中的列,可以在“准则”处输入每一列对 应的条件,如WHERE语句,并可以加入排序型,如果需要 使用GROUP语句对视图数据进行分组,则可以单击列名, 在弹出的快捷菜单 中选择“分组”;第三部分显示创建 视 图 所 对 应 的 T-SQL 语 句 , 可 以 在 这 里 对 查 询 条 件 进 行 修改:第四部分为视图运行结果窗口,视图建立完毕后, 在图5.8所示窗口内右击并在弹出 的快捷菜单中选择 “运行”(或直接单击“运行”按钮 ),可以在此查看视 图的数据内容。
第5章 实现SQL Server数据库中的视图
5. 4 通过视图访问数据
对视图进行修改操作包括插入、修改和删除3类操 作。由于视图是不存储数据的虚表,所以对视图 数据的修改、最终转换为对基表数据的修改。 5.4.1 通过视图添加表中的数据
【实例5.10】在视图学生成绩信息中插入数据学号 =1013,姓名=王东,课程号=202,期中成绩=89, 期末成绩=87。然后分别查询表学生习信息、学 生成绩和视图学生成绩信息,看看有什么结果。
5. 2创建视图
视图的命名必须遵循标志符规则,必须对每个用户都是 惟一的。视图名称不能和创建该视图的用户的其他任何一 个表的名称相同。
在默认状态下,视图中的列名继承了它们基表中的相应 列名,对于下列情况则需要重新 指定列的别名。
(1) 视图中的某些列来自表达式、函数或常量时。 (2) 当视图所引用不同基表的列中有相同列名时。 (3) 希望给视图中的列指定新的列名时。 (4) 视图的定义可以加密,以保证其定义不会被任何人 (包括视图的拥有者)获得。
5.3.1 查看视图信息
1.使用企业管理器查看 【实例5.4】查看[例5.1]创建的“学生成绩信息”
视图为例说明其操作过程。 操作步骤:
第5章 实现SQL Server数据库中的视图
2. 使用系统存储过程查看视图信息 【实例5.5】 查看视图学生成绩信息的名称、列名、
拥有者、创建时间等信息,查看视图的关联性, 查看定义视图的T-SQL语句。 操作步骤:
第5章 实现SQL Server数据库中的视图
2. 使用T-SQIL语句修改视图 【实例5.7】在查询分析器中,建立一个“查询”
的视图,然后对视图名“查询”更改为“课程视 图”并增加一个平时成绩的列。 操作步骤:
第5章 实现SQL Server数据库中的视图
归纳分析: 注意,只有数据库的所有者或视图的所有者能够对视图进 行重命名工作。修改视图名称与修改表名称所用方法相同。 命令格式: sp_rename 原视图名,新视图名 修改一个已经创建视图的定义可以使用T-SQL语句。 命令格式: ALTER VIEW 视图名 [WITH ENCRYPTION] AS SELECT 语句 [WITH CHECK OPTION]
使用多个基表,建立视图,最好建立关联后再用,否 则会使视图的数据重复。
第5章 实现SQL Server数据库中的视图
5.2.2 使用T-SQL语句创建视图
【实例5.3】 在查询分析器下建立“课程查询视图”, 该视图中包含所有学号、课程号、课程名称的任课教师及 他们平时成绩。
根据题的要求,该视图要对表“学生信息”、“课 程”和“学生成绩”以主外键进行自然连接,并对视图文 本加密,使用户看不到定义的文本。 操作步骤:
第5章 实现SQL Server数据库中的视图
5.2.1使用企业管理器创建视图
【5.2】在企业管理器中创建“学生成绩信息”视 图,该视图中从基表1学生信息和基表2学生成绩 中选择所有学号、姓名、课程号、期中成绩和期 末成绩。
操作步骤:
第5章 实现SQL Server数据库中的视图
第5章 实现SQL Server数据库中的视图
第5章 实现SQL Server数据库中的视图
SELECT语句可以是任何复杂的查询语句,但通 常不允许包含ORDER BY子句和DISTINCT短语。
如果CREATE VIEW语句没有指定视图列名, 则该视图的列名默认为SELECT语句目标列中各字 段的列名。
第5章 实现SQL Server数据库中的视图
第5章 实现SQL Server数据库中的视图
5.5本章总结
本章主要介绍视图应用,通过一系列实例,讲述了 创建、修改以及删除视图的方法。另外,还对视图数据的 查询、修改、更新、插入和删除做了详细介绍。通过本章 学习,应该掌握以下内容:
(1) 视图提供了一种查看数据库表数据的另外一种方法, 定义视图就是指定一个查询语句,然后将查询结果作为视 图。通过视图,可以对不同的用户提供同一个表的不同数 据表现。
UPDATE 学生视图 SET 姓名='王梅' WHERE 学号='1010' GO (2)按“F5”键或单击工具栏“执行查询”图标执行。
第5章 实现SQL Server数据库中的视图
归纳分析: 首先学号=1010这条记录一定要在视图中存
在,如果它仅存在于视图的基表中而不存在于视 图中,则基表中的数据将无法更改。其次,尽管 一个SET语句可以为多个列变量赋值,但它们必 须来自同一个表。
第5章 实现SQL Server数据库中的视图
归纳分百度文库:
在视图中添加数据,就是对视图的基表添加数据, 添加数据也使用INSERT命令。用法与向表中添加 数据相同。但要注意: (1) 当视图有多个基表时,不能在一个语句中对视 图中的多个基表同时进行修改,亦即一次只能对 视图的一个基表内的数据进行增、删、改操作。 (2) 由于视图中可能仅仅包含基表中的部分列,因 此通过视图向基表中插入数据时,要求基表中的 其他非视图列应该是允许空(NULL)或含有默认值。 (3) 插入的数据必须满足基表的约束条件。
第5章 实现SQL Server数据库中的视图
5.1 视图基本概念 5.1.1视图基本概念
视图是从一个或多个表或视图中导出 的表,其结构合数据是建立在对表的查询 基础上的和表。和表一样,视图也是包括 几个被定义的数据列和多个数据行,但就 本质而言,这些数据列和数据行来源于其 所引用的表。所以视图不是真实存在的基 础表而是一张虚拟的表,与表不同的是, 视图本身并不存储视图中的数据,而是存 储在视图所引用的表中。
归纳分析:
在视图中使用DELETE命令删除数据就是删除 视图基表中的对应的数据。语法与在表中删除数 据相同。在视图中删除数据得以进行的条件是视 图只能有一个基表,且所要删除的数据必须存在 于视图中(即不违反视图的建立条件)。删除视图 数据是针对视图的行进行的,亦即DELETE命令将 删除视图一行中的所有数据,实际上是删除了基 表中对应于该视图中某一行(或几行)的数据。
第5章 实现SQL Server数据库中的视图
归纳分析: 命令格式:
CREATE VIEW视图名[(视图列名1,视图列名2,…,视 图列名n)]
[WITH ENCRYPTION] AS SELECT 语句 [WITH CHECK OPTION]
其中WITH ENCRYPTION子句对视图进行加密,WITH CHECK OPTION表示对视图进行UPDATE、INSERT和DELETE操 作时,要保证所操作的行,满足视图定义中的条件,即只 有满足视图定义条件的操作才能执行。
第5章 实现SQL Server数据库中的视图
2.使用T-SQL语言删除视图 【 实 例 5.9】 删 除 没 有 的 视 图 如 删 除 “ 课 程 查 询 视 图 2” 、
“课程查询视图a”。 操作步骤: (1)启动“查询分析器”,输入如下SQL语句: DROP VIEW 课程查询视图2, 课程查询视图a GO (2)按“F5”键或单击工具栏“执行查询”图标执行。 归纳分析: 由上例可知使用T-SQL删除视图。 命令格式: DROP VIEW 视图名1,视图名2,…,视图名n 使用该语句一次可以删除多个视图。
第5章 实现SQL Server数据库中的视图
归纳分析: 由上例可知使用T-SQL创建表需要一定的格式,在这里我们
给出使用Transact-SQL语言创建表,语法如下: (1)使用系统存储过程显示视图的名称、列名、拥有者、创
建时间、列的属性等信息。 命令格式: sp help 表/视图
(2)使用系统存储过程显示定义视图的T-SQL语句。 命令格式: sp helptext 表/视图
第5章 实现SQL Server数据库中的视图
5.4.2 通过视图修改表中的数据
使用UPDATE命令可以通过视图修改基表中的数据, 修改数据的方法与修改表中数据的方法相同。与通过视图 向基表插入数据一样,也要注意一次只能修改一个表,且 修改后的数据不得违反基表中的各种约束关系。 【实例5.11】将视图“学生视图”中的数据,学号=1010, 姓名改为王梅。 操作步骤: (1)启动“查询分析器”,输入如下SQL语句:
第5章 实现SQL Server数据库中的视图 学生成绩信息的视图
基表1“学生信息”
基表2“学生成绩”
第5章 实现SQL Server数据库中的视图 查询语句执行结果
第5章 实现SQL Server数据库中的视图
【实例5.1】在查询分析器下建立“学生视图”的视图。
操作步骤:
第5章 实现SQL Server数据库中的视图
第5章 实现SQL Server数据库中的视图
5.3.3 删除视图
当不再需要某个已经存在的视图时,可以删 除它。删除视图后,表和视图所基于的数据并不 受影响。 1.使用企业管理器删除视图
【实例5.8】删除没有的视图如删除“课程查询视 图1”。
操作步骤: 在企业管理器中选中“课程查询视图1”右击,
在弹出的快捷菜单中选择“删除”命令,即可删 除选中的视图。
5.1.2 视图的优缺点
通过本章的实例,可见建立视图可以简化查 询,此外,通过视图还可以实现隐蔽数据库 复 杂性、为用户集中提取数据、简化数据库用户管 理等优点。
1. 隐蔽数据库的复杂性 2. 为用户集中提取数据 3. 简化用户权限的管理 4. 方便数据的交换
第5章 实现SQL Server数据库中的视图
操作步骤:
第5章 实现SQL Server数据库中的视图
注意:学号和姓名的数据取自基表学生信息,课程号, 期中成绩,期末成绩的数据取自基表学生成绩。 由于没有违反基表中的约束条件,所以数据全 部成功地插入到各个基表中。但是,查询视图学生 成绩信息将看不到这些数据,因为数据只是通过视 图分别孤立地插入到表 学生信息和学生成绩中, 而插入的数据并不符 合建立视图的条件。
(3)显示视图与其他表或视图的关联性信息(见第10章数据完 整性)。 sp depends 表/视图
第5章 实现SQL Server数据库中的视图
5.3.2 修改视图
1. 使用企业管理器修改视图 【实例5.6】使用企业管理器修改视图“学生成绩
信息”中将期中成绩删除。 操作步骤:
第5章 实现SQL Server数据库中的视图
归纳分析:
在设计视图窗口,可以添加或删除视图的基表 及其列,修改视图属性。例如,右击一个表的名 称,在弹出的菜单中选择“删除”,则会从视图 的定义中除去该表。其他操作与建立视图的方法 类似,这里不再赘述。
也可以在图5.12所示窗口的快捷菜单中选择 “属性”命令,在弹出的“查看属性”窗口中直 接修改创建视图的T-SQL语句。
相关文档
最新文档