版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5.1视图基本概念5.1.1视图基本概念视图是从一个或多个表或视图中导出的表,其结构合数据是建立在对表的查询基础上的和表。和表一样,视图也是包括几个被定义的数据列和多个数据行,但就本质而言,这些数据列和数据行来源于其所引用的表。所以视图不是真实存在的基础表而是一张虚拟的表,与表不同的是,视图本身并不存储视图中的数据,而是存储在视图所引用的表中。
第5章实现SQLServer数据库中的视图
5.1视图基本概念第5章实现SQLServer数据库学生成绩信息的视图
第5章实现SQLServer数据库中的视图
基表1“学生信息”基表2“学生成绩”学生成绩信息的视图第5章实现SQLServer数据库查询语句执行结果
第5章实现SQLServer数据库中的视图
查询语句执行结果第5章实现SQLServer数据库中【实例5.1】在查询分析器下建立“学生视图”的视图。
操作步骤:
第5章实现SQLServer数据库中的视图
【实例5.1】在查询分析器下建立“学生视图”的视图。第5章5.1.2视图的优缺点通过本章的实例,可见建立视图可以简化查询,此外,通过视图还可以实现隐蔽数据库复杂性、为用户集中提取数据、简化数据库用户管理等优点。
1.隐蔽数据库的复杂性
2.为用户集中提取数据
3.简化用户权限的管理
4.方便数据的交换第5章实现SQLServer数据库中的视图
5.1.2视图的优缺点第5章实现SQLServer数5.2创建视图视图的命名必须遵循标志符规则,必须对每个用户都是惟一的。视图名称不能和创建该视图的用户的其他任何一个表的名称相同。在默认状态下,视图中的列名继承了它们基表中的相应列名,对于下列情况则需要重新指定列的别名。
(1)视图中的某些列来自表达式、函数或常量时。
(2)当视图所引用不同基表的列中有相同列名时。
(3)希望给视图中的列指定新的列名时。
(4)视图的定义可以加密,以保证其定义不会被任何人(包括视图的拥有者)获得。
第5章实现SQLServer数据库中的视图
5.2创建视图第5章实现SQLServer数据库中的5.2.1使用企业管理器创建视图【5.2】在企业管理器中创建“学生成绩信息”视图,该视图中从基表1学生信息和基表2学生成绩中选择所有学号、姓名、课程号、期中成绩和期末成绩。操作步骤:
第5章实现SQLServer数据库中的视图
5.2.1使用企业管理器创建视图第5章实现SQLSer第5章实现SQLServer数据库中的视图
第5章实现SQLServer数据库中的视图归纳分析:在窗口内容由上至下分为四部分:第一部分显示视图的基表及其对应外键关系(有关外键的内容在第8章);第二部分显示视图中的列,可以在“准则”处输入每一列对应的条件,如WHERE语句,并可以加入排序型,如果需要使用GROUP语句对视图数据进行分组,则可以单击列名,在弹出的快捷菜单中选择“分组”;第三部分显示创建视图所对应的T-SQL语句,可以在这里对查询条件进行修改:第四部分为视图运行结果窗口,视图建立完毕后,在图5.8所示窗口内右击并在弹出的快捷菜单中选择“运行”(或直接单击“运行”按钮),可以在此查看视图的数据内容。使用多个基表,建立视图,最好建立关联后再用,否则会使视图的数据重复。
第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图5.2.2使用T-SQL语句创建视图
【实例5.3】在查询分析器下建立“课程查询视图”,该视图中包含所有学号、课程号、课程名称的任课教师及他们平时成绩。根据题的要求,该视图要对表“学生信息”、“课程”和“学生成绩”以主外键进行自然连接,并对视图文本加密,使用户看不到定义的文本。操作步骤:第5章实现SQLServer数据库中的视图
5.2.2使用T-SQL语句创建视图第5章实现SQL归纳分析:命令格式:
CREATEVIEW视图名[(视图列名1,视图列名2,…,视图列名n)][WITHENCRYPTION]ASSELECT语句
[WITHCHECKOPTION]
其中WITHENCRYPTION子句对视图进行加密,WITHCHECKOPTION表示对视图进行UPDATE、INSERT和DELETE操作时,要保证所操作的行,满足视图定义中的条件,即只有满足视图定义条件的操作才能执行。
第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图SELECT语句可以是任何复杂的查询语句,但通常不允许包含ORDERBY子句和DISTINCT短语。如果CREATEVIEW语句没有指定视图列名,则该视图的列名默认为SELECT语句目标列中各字段的列名。
第5章实现SQLServer数据库中的视图
SELECT语句可以是任何复杂的查询语句,但通常不允5.3管理视图在企业管理器下或通过SQL语句都可以查看视图的定义信息,但是,如果在视图的定义语句中带有WITHENCRYPTION子句,表示SQLServer对建立视图的语句文本进行了加密,则无法看到视图的定义语句。即使是视图的拥有者和系统管理员也不能看到。
第5章实现SQLServer数据库中的视图
5.3管理视图第5章实现SQLServer数据库中的5.3.1查看视图信息1.使用企业管理器查看【实例5.4】查看[例5.1]创建的“学生成绩信息”视图为例说明其操作过程。操作步骤:
第5章实现SQLServer数据库中的视图
5.3.1查看视图信息第5章实现SQLServer2.
使用系统存储过程查看视图信息【实例5.5】查看视图学生成绩信息的名称、列名、拥有者、创建时间等信息,查看视图的关联性,查看定义视图的T-SQL语句。操作步骤:第5章实现SQLServer数据库中的视图
2.使用系统存储过程查看视图信息第5章实现SQLSe归纳分析:由上例可知使用T-SQL创建表需要一定的格式,在这里我们给出使用Transact-SQL语言创建表,语法如下:(1)使用系统存储过程显示视图的名称、列名、拥有者、创建时间、列的属性等信息。
命令格式:
sphelp表/视图(2)使用系统存储过程显示定义视图的T-SQL语句。
命令格式:
sphelptext表/视图(3)显示视图与其他表或视图的关联性信息(见第10章数据完整性)。
spdepends表/视图第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图5.3.2修改视图
1.
使用企业管理器修改视图【实例5.6】使用企业管理器修改视图“学生成绩信息”中将期中成绩删除。操作步骤:
第5章实现SQLServer数据库中的视图
5.3.2修改视图第5章实现SQLServer数据库归纳分析:在设计视图窗口,可以添加或删除视图的基表及其列,修改视图属性。例如,右击一个表的名称,在弹出的菜单中选择“删除”,则会从视图的定义中除去该表。其他操作与建立视图的方法类似,这里不再赘述。也可以在图5.12所示窗口的快捷菜单中选择“属性”命令,在弹出的“查看属性”窗口中直接修改创建视图的T-SQL语句。
第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图2.使用T-SQIL语句修改视图【实例5.7】在查询分析器中,建立一个“查询”的视图,然后对视图名“查询”更改为“课程视图”并增加一个平时成绩的列。操作步骤:
第5章实现SQLServer数据库中的视图
2.使用T-SQIL语句修改视图第5章实现SQLSe归纳分析:
注意,只有数据库的所有者或视图的所有者能够对视图进行重命名工作。修改视图名称与修改表名称所用方法相同。
命令格式:
sp_rename原视图名,新视图名修改一个已经创建视图的定义可以使用T-SQL语句。
命令格式:
ALTERVIEW视图名
[WITHENCRYPTION]
ASSELECT语句
[WITHCHECKOPTION]
第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图5.3.3删除视图当不再需要某个已经存在的视图时,可以删除它。删除视图后,表和视图所基于的数据并不受影响。1.使用企业管理器删除视图【实例5.8】删除没有的视图如删除“课程查询视图1”。操作步骤:在企业管理器中选中“课程查询视图1”右击,在弹出的快捷菜单中选择“删除”命令,即可删除选中的视图。
第5章实现SQLServer数据库中的视图
5.3.3删除视图第5章实现SQLServer数据库2.使用T-SQL语言删除视图【实例5.9】删除没有的视图如删除“课程查询视图2”、“课程查询视图a”。操作步骤:(1)启动“查询分析器”,输入如下SQL语句:DROPVIEW课程查询视图2,课程查询视图aGO(2)按“F5”键或单击工具栏“执行查询”图标执行。归纳分析:由上例可知使用T-SQL删除视图。命令格式:DROP
VIEW视图名1,视图名2,…,视图名n使用该语句一次可以删除多个视图。
第5章实现SQLServer数据库中的视图
2.使用T-SQL语言删除视图第5章实现SQLServ5.
4通过视图访问数据对视图进行修改操作包括插入、修改和删除3类操作。由于视图是不存储数据的虚表,所以对视图数据的修改、最终转换为对基表数据的修改。
5.4.1通过视图添加表中的数据【实例5.10】在视图学生成绩信息中插入数据学号=1013,姓名=王东,课程号=202,期中成绩=89,期末成绩=87。然后分别查询表学生习信息、学生成绩和视图学生成绩信息,看看有什么结果。操作步骤:第5章实现SQLServer数据库中的视图
5.4通过视图访问数据第5章实现SQLServer注意:学号和姓名的数据取自基表学生信息,课程号,期中成绩,期末成绩的数据取自基表学生成绩。由于没有违反基表中的约束条件,所以数据全部成功地插入到各个基表中。但是,查询视图学生成绩信息将看不到这些数据,因为数据只是通过视图分别孤立地插入到表学生信息和学生成绩中,而插入的数据并不符合建立视图的条件。
第5章实现SQLServer数据库中的视图
注意:学号和姓名的数据取自基表学生信息,课程号,期中成绩,期
归纳分析:在视图中添加数据,就是对视图的基表添加数据,添加数据也使用INSERT命令。用法与向表中添加数据相同。但要注意:(1)当视图有多个基表时,不能在一个语句中对视图中的多个基表同时进行修改,亦即一次只能对视图的一个基表内的数据进行增、删、改操作。(2)由于视图中可能仅仅包含基表中的部分列,因此通过视图向基表中插入数据时,要求基表中的其他非视图列应该是允许空(NULL)或含有默认值。(3)插入的数据必须满足基表的约束条件。
第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图
5.4.2通过视图修改表中的数据使用UPDATE命令可以通过视图修改基表中的数据,修改数据的方法与修改表中数据的方法相同。与通过视图向基表插入数据一样,也要注意一次只能修改一个表,且修改后的数据不得违反基表中的各种约束关系。【实例5.11】将视图“学生视图”中的数据,学号=1010,姓名改为王梅。操作步骤:(1)启动“查询分析器”,输入如下SQL语句:
UPDATE学生视图
SET姓名='王梅'WHERE学号='1010'GO(2)按“F5”键或单击工具栏“执行查询”图标执行。
第5章实现SQLServer数据库中的视图
5.4.2通过视图修改表中的数据第5章实现SQLS归纳分析:首先学号=1010这条记录一定要在视图中存在,如果它仅存在于视图的基表中而不存在于视图中,则基表中的数据将无法更改。其次,尽管一个SET语句可以为多个列变量赋值,但它们必须来自同一个表。
第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图5.4.3通过视图删除表中的数据
【实例5.12】删除视图“学生视图”中黎明的数据。(假设所删除的数据已经存在)。操作步骤:
(1)启动“查询分析器”,输入如下SQL语句:
DELETE学生视图
WHERE姓名='黎明'GO第5章实现SQLServer数据库中的视图
5.4.3通过视图删除表中的数据第5章实现SQLS归纳分析:在视图中使用DELETE命令删除数据就是删除视图基表中的对应的数据。语法与在表中删除数据相同。在视图中删除数据得以进行的条件是视图只能有一个基表,且所要删除的数据必须存在于视图中(即不违反视图的建立条件)。删除视图数据是针对视图的行进行的,亦即DELETE命令将删除视图一行中的所有数据,实际上是删除了基表中对应于该视图中某一行(或几行)的数据。第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图5.5本章总结本章主要介绍视图应用,通过一系列实例,讲述了创建、修改以及删除视图的方法。另外,还对视图数据的查询、修改、更新、插入和删除做了详细介绍。通过本章学习,应该掌握以下内容:
(1)视图提供了一种查看数据库表数据的另外一种方法,定义视图就是指定一个查询语句,然后将查询结果作为视图。通过视图,可以对不同的用户提供同一个表的不同数据表现。
(2)视图是逻辑上的概念,表是实际存在的数据的存储集合。视图既可以定义在表上,也可以定义在另外一个视图上,但是,为了提高视图的性能,建议视图不要创建在其他视图之上,一般对一个表建立一个视图。
第5章实现SQLServer数据库中的视图
5.5本章总结第5章实现SQLServer数据库中的视(3)使用视图具有很多优点,如集中用户数据、屏蔽数据查询的复杂性、简化管理和向其他应用程序输出而重新组织数据等。(4)创建视图有许多方法,如利用向导创建视图、使用语句CREATEVIEW创建视图以及使用企业管理器工具创建。(5)修改和删除视图语句分别为ALTERVIEW和DROPVIEW。(6)视图中的记录可以进行查询、插入、删除和更新。(7)使用系统表sysobjects和sysconmaents以及企业管理器查看视图定义信息。(8)如果视图使用“WITHENCRYPTION”选项,将对定义视图进行加密。(9)修改和更新视图数据必须只有一定的条件和权限。
第5章实现SQLServer数据库中的视图
(3)使用视图具有很多优点,如集中用户数据、屏蔽数据查询的1.创建视图注意的问题视图的命名必须遵循标志符规则,必须对每个用户都是惟一的。视图名称不能和创建该视图的用户的其他任何一个表的名称相同。在默认状态下,视图中的列名继承了它们基表中的相应列名,对于下列情况则需要重新指定列的别名。
(1)视图中的某些列来自表达式、函数或常量时。
(2)当视图所引用不同基表的列中有相同列名时。
(3)希望给视图中的列指定新的列名时。
(4)视图的定义可以加密,以保证其定义不会被任何人(包括视图的拥有者)获得。
第5章实现SQLServer数据库中的视图
1.创建视图注意的问题第5章实现SQLServer数据2.通过视图修改表数据应注意的问题对视图进行的修改操作有以下限制。(1)若视图的字段来自表达式或常量,则不允许对该视图执行INSERT和UPDATE操作,但允许执行DELETE操作。(2)若视图的字段来自集合函数,则此视图不允许修改操作。(3)若视图定义中含有GROUPBY子句,则此视图不允许修改操作。(4)若视图定义中含有DISTINCT短句,则此视图不允许修改操作。(5)一个不允许修改操作视图上定义的视图,也不允许修改操作。
第5章实现SQLServer数据库中的视图
2.通过视图修改表数据应注意的问题第5章实现SQLSe5.6思考与实训5.6.1思考1.
为什么说视图是虚表?视图的数据存在什么地方?2.
视图中的数据是否可以取自一张表的全部数据或部分数据?是否可以取自多张表的全部数据或部分数据?是否可以取自一个表或几个表的某几列数据?是否可以取自一个表或几个表的某几行数据?如果上述答案为是,如何实现?3.创建视图时应注意的问题是什么?4.创建视图窗口内容由上至下分为4部分,各自的作用是什么?第5章实现SQLServer数据库中的视图
5.6思考与实训第5章实现SQLServer数据库中的5.sp_help、sp_depends、sp_helptext查看的各自的含义是什么?6.为什么使用sp_helptext查看不到视图的定义文本?7.在视图中如何插入、修改和删除数据,各有什么条件?8.在视图中添加数据,应注意的问题是什么?9.
视图的优缺点是什么?10.通过视图修改表数据应注意的问题是什么?
第5章实现SQLServer数据库中的视图
5.sp_help、sp_depends、sp_h5.6.2实训1.实训目的
(1)掌握创建视图的各种方法,理解视图是基于数据表的虚拟的表。
(2)熟练掌握企业管理器和用T-SQL语句编写的操作过程。(3)熟练掌握多表的视图建立、修改视图的结构、视图的记录。(4)熟练掌握各种查看视图信息的内容。2.实训环境
SQLServer2000的运行、管理环境。
第5章实现SQLServer数据库中的视图
5.6.2实训第5章实现SQLServer数据库中的3.实训内容(1)在企业管理器中创建视图①
利用基表“学生信息”、“课程”和“学生成绩”创建“练习视图1”视图,并运行后查看结果,如表5.13所示。
第5章实现SQLServer数据库中的视图
3.实训内容第5章实现SQLServer数据库中的视②利用基表“学生信息”、“课程”和“学生成绩”创建“练习视图2”视图,条件是任课教师为“章华”的记录并将文本加密,并运行后查看结果,如表5.14所示。第5章实现SQLServer数据库中的视图
②利用基表“学生信息”、“课程”和“学生成绩”创建“练习视(2)在查询分析器中用T-SQL语句编写。①利用基表“学生成绩”创建“练习视图3”视图,要求的列名为:课程号,班级,期中成绩,期末成绩,平时成绩,并运行结果。②利用基表“学生成绩”创建“练习视图4”视图,要求的条件为:期中成绩在80和90之间的列名为:学号,课程号,班级,期中成绩,期末成绩。并运行结果。③利用基表“学生成绩”创建“练习视图5”视图,要求的列名为:课程号,班级,期中成绩,期末成绩,平时成绩并对文件加密,运行结果。第5章实现SQLServer数据库中的视图
(2)在查询分析器中用T-SQL语句编写。第5章实现SQ④在“练习视图3”视图,从基表“学生成绩”中添加总评成绩的列,并改名为“练习视图6”。⑤修改“练习视图6”视图,将“计算机应用”班级改为“网络工程”班级。⑥修改“练习视图6”视图,将网络工程班级期末成绩〉80的总评成绩为良好。⑦修改“练习视图6”视图,期中成绩和期末成绩在90以上平时成绩为20分,期中成绩和期末成绩在80-90之间平时成绩为15分,期中成绩和期末成绩在70-80之间平时成绩为10分,期中成绩和期末成绩在60-70之间平时成绩为5分,期中成绩和期末成绩在60以下平时成绩为2分。
第5章实现SQLServer数据库中的视图
④在“练习视图3”视图,从基表“学生成绩”中添加总评成绩的(3)查看视图信息①
分别用企业管理器和系统存储过程显示定义视图的T-SQL语句查看练习视图5和练习视图6,并进行比较。②
用系统存储过程查看视图信息的T-SQL语句查看练习视图6的内容。③
查看练习视图6的视图关联性。④
是比较上述的3个命令的相同点,和不同点。(4)删除视图①删除“练习视图6”视图中的平时成绩为2分以下的记录。删除“练习视图5”视图。
第5章实现SQLServer数据库中的视图
(3)查看视图信息第5章实现SQLServer数据库中4.实训要求(1)将实训3的内容在SQLServer2000环境中调试成功,并将编写的程序调试、运行正确成功后,存入磁盘中。(2)将实训中在企业管理器的操作,转换成在T-SQL编程语句操作,在T-SQL编程语句的操作转换成在企业管理器的操作,达到熟练掌握各种功能的操作目的。(3)每次实训后,总结一下实训的重点内容和应注意的问题,并写成实训报告的形式上交。
第5章实现SQLServer数据库中的视图
4.实训要求第5章实现SQLServer数据库中的视5.1视图基本概念5.1.1视图基本概念视图是从一个或多个表或视图中导出的表,其结构合数据是建立在对表的查询基础上的和表。和表一样,视图也是包括几个被定义的数据列和多个数据行,但就本质而言,这些数据列和数据行来源于其所引用的表。所以视图不是真实存在的基础表而是一张虚拟的表,与表不同的是,视图本身并不存储视图中的数据,而是存储在视图所引用的表中。
第5章实现SQLServer数据库中的视图
5.1视图基本概念第5章实现SQLServer数据库学生成绩信息的视图
第5章实现SQLServer数据库中的视图
基表1“学生信息”基表2“学生成绩”学生成绩信息的视图第5章实现SQLServer数据库查询语句执行结果
第5章实现SQLServer数据库中的视图
查询语句执行结果第5章实现SQLServer数据库中【实例5.1】在查询分析器下建立“学生视图”的视图。
操作步骤:
第5章实现SQLServer数据库中的视图
【实例5.1】在查询分析器下建立“学生视图”的视图。第5章5.1.2视图的优缺点通过本章的实例,可见建立视图可以简化查询,此外,通过视图还可以实现隐蔽数据库复杂性、为用户集中提取数据、简化数据库用户管理等优点。
1.隐蔽数据库的复杂性
2.为用户集中提取数据
3.简化用户权限的管理
4.方便数据的交换第5章实现SQLServer数据库中的视图
5.1.2视图的优缺点第5章实现SQLServer数5.2创建视图视图的命名必须遵循标志符规则,必须对每个用户都是惟一的。视图名称不能和创建该视图的用户的其他任何一个表的名称相同。在默认状态下,视图中的列名继承了它们基表中的相应列名,对于下列情况则需要重新指定列的别名。
(1)视图中的某些列来自表达式、函数或常量时。
(2)当视图所引用不同基表的列中有相同列名时。
(3)希望给视图中的列指定新的列名时。
(4)视图的定义可以加密,以保证其定义不会被任何人(包括视图的拥有者)获得。
第5章实现SQLServer数据库中的视图
5.2创建视图第5章实现SQLServer数据库中的5.2.1使用企业管理器创建视图【5.2】在企业管理器中创建“学生成绩信息”视图,该视图中从基表1学生信息和基表2学生成绩中选择所有学号、姓名、课程号、期中成绩和期末成绩。操作步骤:
第5章实现SQLServer数据库中的视图
5.2.1使用企业管理器创建视图第5章实现SQLSer第5章实现SQLServer数据库中的视图
第5章实现SQLServer数据库中的视图归纳分析:在窗口内容由上至下分为四部分:第一部分显示视图的基表及其对应外键关系(有关外键的内容在第8章);第二部分显示视图中的列,可以在“准则”处输入每一列对应的条件,如WHERE语句,并可以加入排序型,如果需要使用GROUP语句对视图数据进行分组,则可以单击列名,在弹出的快捷菜单中选择“分组”;第三部分显示创建视图所对应的T-SQL语句,可以在这里对查询条件进行修改:第四部分为视图运行结果窗口,视图建立完毕后,在图5.8所示窗口内右击并在弹出的快捷菜单中选择“运行”(或直接单击“运行”按钮),可以在此查看视图的数据内容。使用多个基表,建立视图,最好建立关联后再用,否则会使视图的数据重复。
第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图5.2.2使用T-SQL语句创建视图
【实例5.3】在查询分析器下建立“课程查询视图”,该视图中包含所有学号、课程号、课程名称的任课教师及他们平时成绩。根据题的要求,该视图要对表“学生信息”、“课程”和“学生成绩”以主外键进行自然连接,并对视图文本加密,使用户看不到定义的文本。操作步骤:第5章实现SQLServer数据库中的视图
5.2.2使用T-SQL语句创建视图第5章实现SQL归纳分析:命令格式:
CREATEVIEW视图名[(视图列名1,视图列名2,…,视图列名n)][WITHENCRYPTION]ASSELECT语句
[WITHCHECKOPTION]
其中WITHENCRYPTION子句对视图进行加密,WITHCHECKOPTION表示对视图进行UPDATE、INSERT和DELETE操作时,要保证所操作的行,满足视图定义中的条件,即只有满足视图定义条件的操作才能执行。
第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图SELECT语句可以是任何复杂的查询语句,但通常不允许包含ORDERBY子句和DISTINCT短语。如果CREATEVIEW语句没有指定视图列名,则该视图的列名默认为SELECT语句目标列中各字段的列名。
第5章实现SQLServer数据库中的视图
SELECT语句可以是任何复杂的查询语句,但通常不允5.3管理视图在企业管理器下或通过SQL语句都可以查看视图的定义信息,但是,如果在视图的定义语句中带有WITHENCRYPTION子句,表示SQLServer对建立视图的语句文本进行了加密,则无法看到视图的定义语句。即使是视图的拥有者和系统管理员也不能看到。
第5章实现SQLServer数据库中的视图
5.3管理视图第5章实现SQLServer数据库中的5.3.1查看视图信息1.使用企业管理器查看【实例5.4】查看[例5.1]创建的“学生成绩信息”视图为例说明其操作过程。操作步骤:
第5章实现SQLServer数据库中的视图
5.3.1查看视图信息第5章实现SQLServer2.
使用系统存储过程查看视图信息【实例5.5】查看视图学生成绩信息的名称、列名、拥有者、创建时间等信息,查看视图的关联性,查看定义视图的T-SQL语句。操作步骤:第5章实现SQLServer数据库中的视图
2.使用系统存储过程查看视图信息第5章实现SQLSe归纳分析:由上例可知使用T-SQL创建表需要一定的格式,在这里我们给出使用Transact-SQL语言创建表,语法如下:(1)使用系统存储过程显示视图的名称、列名、拥有者、创建时间、列的属性等信息。
命令格式:
sphelp表/视图(2)使用系统存储过程显示定义视图的T-SQL语句。
命令格式:
sphelptext表/视图(3)显示视图与其他表或视图的关联性信息(见第10章数据完整性)。
spdepends表/视图第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图5.3.2修改视图
1.
使用企业管理器修改视图【实例5.6】使用企业管理器修改视图“学生成绩信息”中将期中成绩删除。操作步骤:
第5章实现SQLServer数据库中的视图
5.3.2修改视图第5章实现SQLServer数据库归纳分析:在设计视图窗口,可以添加或删除视图的基表及其列,修改视图属性。例如,右击一个表的名称,在弹出的菜单中选择“删除”,则会从视图的定义中除去该表。其他操作与建立视图的方法类似,这里不再赘述。也可以在图5.12所示窗口的快捷菜单中选择“属性”命令,在弹出的“查看属性”窗口中直接修改创建视图的T-SQL语句。
第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图2.使用T-SQIL语句修改视图【实例5.7】在查询分析器中,建立一个“查询”的视图,然后对视图名“查询”更改为“课程视图”并增加一个平时成绩的列。操作步骤:
第5章实现SQLServer数据库中的视图
2.使用T-SQIL语句修改视图第5章实现SQLSe归纳分析:
注意,只有数据库的所有者或视图的所有者能够对视图进行重命名工作。修改视图名称与修改表名称所用方法相同。
命令格式:
sp_rename原视图名,新视图名修改一个已经创建视图的定义可以使用T-SQL语句。
命令格式:
ALTERVIEW视图名
[WITHENCRYPTION]
ASSELECT语句
[WITHCHECKOPTION]
第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图5.3.3删除视图当不再需要某个已经存在的视图时,可以删除它。删除视图后,表和视图所基于的数据并不受影响。1.使用企业管理器删除视图【实例5.8】删除没有的视图如删除“课程查询视图1”。操作步骤:在企业管理器中选中“课程查询视图1”右击,在弹出的快捷菜单中选择“删除”命令,即可删除选中的视图。
第5章实现SQLServer数据库中的视图
5.3.3删除视图第5章实现SQLServer数据库2.使用T-SQL语言删除视图【实例5.9】删除没有的视图如删除“课程查询视图2”、“课程查询视图a”。操作步骤:(1)启动“查询分析器”,输入如下SQL语句:DROPVIEW课程查询视图2,课程查询视图aGO(2)按“F5”键或单击工具栏“执行查询”图标执行。归纳分析:由上例可知使用T-SQL删除视图。命令格式:DROP
VIEW视图名1,视图名2,…,视图名n使用该语句一次可以删除多个视图。
第5章实现SQLServer数据库中的视图
2.使用T-SQL语言删除视图第5章实现SQLServ5.
4通过视图访问数据对视图进行修改操作包括插入、修改和删除3类操作。由于视图是不存储数据的虚表,所以对视图数据的修改、最终转换为对基表数据的修改。
5.4.1通过视图添加表中的数据【实例5.10】在视图学生成绩信息中插入数据学号=1013,姓名=王东,课程号=202,期中成绩=89,期末成绩=87。然后分别查询表学生习信息、学生成绩和视图学生成绩信息,看看有什么结果。操作步骤:第5章实现SQLServer数据库中的视图
5.4通过视图访问数据第5章实现SQLServer注意:学号和姓名的数据取自基表学生信息,课程号,期中成绩,期末成绩的数据取自基表学生成绩。由于没有违反基表中的约束条件,所以数据全部成功地插入到各个基表中。但是,查询视图学生成绩信息将看不到这些数据,因为数据只是通过视图分别孤立地插入到表学生信息和学生成绩中,而插入的数据并不符合建立视图的条件。
第5章实现SQLServer数据库中的视图
注意:学号和姓名的数据取自基表学生信息,课程号,期中成绩,期
归纳分析:在视图中添加数据,就是对视图的基表添加数据,添加数据也使用INSERT命令。用法与向表中添加数据相同。但要注意:(1)当视图有多个基表时,不能在一个语句中对视图中的多个基表同时进行修改,亦即一次只能对视图的一个基表内的数据进行增、删、改操作。(2)由于视图中可能仅仅包含基表中的部分列,因此通过视图向基表中插入数据时,要求基表中的其他非视图列应该是允许空(NULL)或含有默认值。(3)插入的数据必须满足基表的约束条件。
第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图
5.4.2通过视图修改表中的数据使用UPDATE命令可以通过视图修改基表中的数据,修改数据的方法与修改表中数据的方法相同。与通过视图向基表插入数据一样,也要注意一次只能修改一个表,且修改后的数据不得违反基表中的各种约束关系。【实例5.11】将视图“学生视图”中的数据,学号=1010,姓名改为王梅。操作步骤:(1)启动“查询分析器”,输入如下SQL语句:
UPDATE学生视图
SET姓名='王梅'WHERE学号='1010'GO(2)按“F5”键或单击工具栏“执行查询”图标执行。
第5章实现SQLServer数据库中的视图
5.4.2通过视图修改表中的数据第5章实现SQLS归纳分析:首先学号=1010这条记录一定要在视图中存在,如果它仅存在于视图的基表中而不存在于视图中,则基表中的数据将无法更改。其次,尽管一个SET语句可以为多个列变量赋值,但它们必须来自同一个表。
第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图5.4.3通过视图删除表中的数据
【实例5.12】删除视图“学生视图”中黎明的数据。(假设所删除的数据已经存在)。操作步骤:
(1)启动“查询分析器”,输入如下SQL语句:
DELETE学生视图
WHERE姓名='黎明'GO第5章实现SQLServer数据库中的视图
5.4.3通过视图删除表中的数据第5章实现SQLS归纳分析:在视图中使用DELETE命令删除数据就是删除视图基表中的对应的数据。语法与在表中删除数据相同。在视图中删除数据得以进行的条件是视图只能有一个基表,且所要删除的数据必须存在于视图中(即不违反视图的建立条件)。删除视图数据是针对视图的行进行的,亦即DELETE命令将删除视图一行中的所有数据,实际上是删除了基表中对应于该视图中某一行(或几行)的数据。第5章实现SQLServer数据库中的视图
归纳分析:第5章实现SQLServer数据库中的视图5.5本章总结本章主要介绍视图应用,通过一系列实例,讲述了创建、修改以及删除视图的方法。另外,还对视图数据的查询、修改、更新、插入和删除做了详细介绍。通过本章学习,应该掌握以下内容:
(1)视图提供了一种查看数据库表数据的另外一种方法,定义视图就是指定一个查询语句,然后将查询结果作为视图。通过视图,可以对不同的用户提供同一个表的不同数据表现。
(2)视图是逻辑上的概念,表是实际存在的数据的存储集合。视图既可以定义在表上,也可以定义在另外一个视图上,但是,为了提高视图的性能,建议视图不要创建在其他视图之上,一般对一个表建立一个视图。
第5章实现SQLServer数据库中的视图
5.5本章总结第5章实现SQLServer数据库中的视(3)使用视图具有很多优点,如集中用户数据、屏蔽数据查询的复杂性、简化管理和向其他应用程序输出而重新组织数据等。(4)创建视图有许多方法,如利用向导创建视图、使用语句CREATEVIEW创建视图以及使用企业管理器工具创建。(5)修改和删除视图语句分别为ALTERVIEW和DROPVIEW。(6)视图中的记录可以进行查询、插入、删除和更新。(7)使用系统表sysobjects和sysconmaents以及企业管理器查看视图定义信息。(8)如果视图使用“WITHENCRYPTION”选项,将对定义视图进行加密。(9)修改和更新视图数据必须只有一定的条件和权限。
第5章实现SQLServer数据库中的视图
(3)使用视图具有很多优点,如集中用户数据、屏蔽数据查询的1.创建视图注意的问题视图的命名必须遵循标志符规则,必须对每个用户都是惟一的。视图名称不能和创建该视图的用户的其他任何一个表的名称相同。在默认状态下,视图中的列名继承了它们基表中的相应列名,对于下列情况则需要重新指定列的别名。
(1)视图中的某些列来自表达式、函数或常量时。
(2)当视图所引用不同基表的列中有相同列名时。
(3)希望给视图中的列指定新的列名时。
(4)视图的定义可以加密,以保证其定义不会被任何人(包括视图的拥有者)获得。
第5章实现SQLServer数据库中的视图
1.创建视图注意的问题第5章实现SQLServer数据2.通过视图修改表数据应注意的问题对视图进行的修改操作有以下限制。(1)若视图的字段来自表达式或常量,则不允许对该视图执行INSERT和UPDATE操作,但允许执行DELETE操作。(2)若视图的字段来自集合函数,则此视图不允许修改操作。(3)若视图定义中含有GROUPBY子句,则此视图不允许修改操作。(4)若视图定义中含有DISTINCT短句,则此视图不允许修改操作。(5)一个不允许修改操作视图上定义的视图,也不允许修改操作。
第5章实现SQLServer数据库中的视图
2.通过视图修改表数据应注意的问题第5章实现SQLSe5.6思考与实训5.6.1思考1.
为什么说视图是虚表?视图的数据存在什么地方?2.
视图中的数据是否可以取自一张表的全部数据或部分数据?是否可以取自多张表的全部数据或部分数据?是否可以取自一个表或几个表的某几列数据?是否可以取自一个表或几个表的某几行数据?如果上述答案为是,如何实现?3.创建视图时应注意的问题是什么?4.创建视图窗口内容由上至下分为4部分,各自的作用是什么?第5章实现SQLServer数据库中的视图
5.6思考与实训第5章实现SQLServer数据库中的5.sp_help、sp_d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山西铁道职业技术学院《酒店市场营销》2025-2026学年期末试卷
- 电商运营岗店铺管理考试题目及答案
- 空调器安装工班组协作水平考核试卷含答案
- 电焊机装配工安全防护评优考核试卷含答案
- 潜水员安全生产基础知识水平考核试卷含答案
- 乳化香精配制工岗前岗位适应能力考核试卷含答案
- 汽车回收工标准化测试考核试卷含答案
- 矿井防灭工岗前工作质量考核试卷含答案
- 家禽人工授精员标准化竞赛考核试卷含答案
- 高炉炉前工安全实践竞赛考核试卷含答案
- 公司签订廉洁公约模板
- 2026国家电投集团天津公司招聘19人笔试历年参考题库附带答案详解
- 2026年四川公务员考试《行政职业能力测验》(G类)真题卷
- 2026版荨麻疹诊疗规范与临床实践指南
- 2026上半年广东珠海高新区招聘公办中小学合同制教师128人考试备考试题及答案解析
- 企业内部帮扶制度
- 浙江省新阵地教育联盟2026届第二次联考英语+答案
- 车辆驾驶员业务外包安全生产服务管理制度
- 游乐设施安全管理台账范本
- 2026贵州遵义市部分市直机关事业单位招聘编外人员(驾驶员岗位)12人笔试备考试题及答案解析
- 雨课堂学堂在线学堂云《短视频创作与运营(东北师范)》单元测试考核答案
评论
0/150
提交评论