数据库原理及应用(SQL_第1页
数据库原理及应用(SQL_第2页
数据库原理及应用(SQL_第3页
数据库原理及应用(SQL_第4页
数据库原理及应用(SQL_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 数据库原理及应用(SQL Server版北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2第第5 5章章 SQLSQL的高级应用的高级应用教学目标教学目标:通过本章学习,明确索引与视图的作用,通过本章学习,明确索引与视图的作用,掌握索引及视图的使用方法;掌握存储过程与触发器掌握索引及视图的使用方法;掌握存储过程与触发器的创建及使用方法。的创建及使用方法。 数据库原理及应用(SQL Server版北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.25.1 5.1 索引索引5.2 5.2 视图视图5.3 5.3 存储过程存

2、储过程5.4 5.4 触发器触发器5.5 5.5 本章小结本章小结第第5 5章章 SQLSQL的高级应用的高级应用北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论5.1 索引1索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论1. 索引的定义 SQL Server SQL Server的索引是对数据库表中一个或

3、多个的索引是对数据库表中一个或多个列列( (如如StudentStudent表中学生的姓名表中学生的姓名(Sname)(Sname)列列) )的值进行排序的值进行排序的结构。的结构。1) 1) 索引可以提高数据的访问速度索引可以提高数据的访问速度 只要为适当的字段建立索引,就能大幅度提高只要为适当的字段建立索引,就能大幅度提高下下 列操作的速度。列操作的速度。 (1) (1) 查询操作中查询操作中WHEREWHERE子句的数据提取。子句的数据提取。 (2) (2) 查询操作中查询操作中ORDER BYORDER BY子句的数据排序。子句的数据排序。 (3) GROUP BY(3) GROUP

4、BY子句的数据分组。子句的数据分组。 (4) (4) 更新和删除数据记录。更新和删除数据记录。2 2)索引可以确保数据的唯一性)索引可以确保数据的唯一性1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论2. 索引的类型(1) (1) 按存储结构可以将索引分为聚集索引按存储结构可以将索引分为聚集索引(Clustered (Clustered IndexIndex,也可以称为聚簇索引,也可以称为聚簇索

5、引) )和非聚集索引和非聚集索引(Non (Non Clustered IndexClustered Index,也可以称为非聚簇索引,也可以称为非聚簇索引) )。(2) (2) 按数据的唯一性可以将索引分为唯一性索引按数据的唯一性可以将索引分为唯一性索引(Unique Index)(Unique Index)和非唯一性索引和非唯一性索引(Non Unique Index)(Non Unique Index)。1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(S

6、QL Server版第第5 5章章 数据库系统概论数据库系统概论2. 索引的类型 在聚集索引中,行的物理存储顺序与索引顺序完在聚集索引中,行的物理存储顺序与索引顺序完全相同,即索引的顺序决定了表中行的存储顺序。全相同,即索引的顺序决定了表中行的存储顺序。因为行是经过排序的,所以每个表只能有一个聚集因为行是经过排序的,所以每个表只能有一个聚集索引。索引。 因为聚集索引的顺序与数据行存放的物理顺序相因为聚集索引的顺序与数据行存放的物理顺序相同,所以聚集索引最适合范围搜索。因为在找到一同,所以聚集索引最适合范围搜索。因为在找到一个范围内开始的行后可以很快地取出后面的行。个范围内开始的行后可以很快地取

7、出后面的行。 如果表中没有创建其他的聚集索引,则在表的主如果表中没有创建其他的聚集索引,则在表的主键列上自动创建聚集索引。键列上自动创建聚集索引。1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论2. 索引的类型 非聚集索引并不在物理上排列数据,即索引中的非聚集索引并不在物理上排列数据,即索引中的逻辑顺序并不等同于表中行的物理顺序。索引仅仅记逻辑顺序并不等同于表中行的物理顺序。索引仅仅记录指向表中

8、行位置的指针,这些指针本身是有序的,录指向表中行位置的指针,这些指针本身是有序的,通过这些指针可以在表中快速地定位数据。非聚集索通过这些指针可以在表中快速地定位数据。非聚集索引作为与表分离的对象存在,所以,可以为表中每个引作为与表分离的对象存在,所以,可以为表中每个常用于查询的列定义非聚集索引。常用于查询的列定义非聚集索引。 非聚集索引的特点是它很适合于那种直接匹配单个非聚集索引的特点是它很适合于那种直接匹配单个条件的查询,而不太适合于返回大量结果的查询。例条件的查询,而不太适合于返回大量结果的查询。例如如StudentStudent表的表的SnameSname列上就很适合创建非聚集索引。列上

9、就很适合创建非聚集索引。 为一个表创建索引默认都是非聚集索引,在一列为一个表创建索引默认都是非聚集索引,在一列上设置唯一性约束也自动在该列上创建非聚集索引。上设置唯一性约束也自动在该列上创建非聚集索引。1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论2. 索引的类型 唯一性索引能够保证在创建索引的列或多唯一性索引能够保证在创建索引的列或多列的组合上不包括重复的数据,聚集索引和非聚列的组合上不包括

10、重复的数据,聚集索引和非聚集索引都可以是唯一性索引。集索引都可以是唯一性索引。 在创建主键约束在创建主键约束(PRIMARY)(PRIMARY)和唯一性约束和唯一性约束(UNIQUE)(UNIQUE)的列上,的列上,SQL Server 2000SQL Server 2000会自动创建唯会自动创建唯一性索引。一性索引。 唯一性索引和非唯一性索引都能提高数据唯一性索引和非唯一性索引都能提高数据的查询速度,但是唯一性索引更能进一步确保数的查询速度,但是唯一性索引更能进一步确保数据的唯一性。据的唯一性。1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISB

11、N 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论3. 创建索引在实际创建索引之前,有如下几个注意事项。在实际创建索引之前,有如下几个注意事项。(1) (1) 当给表创建当给表创建PRIMARYPRIMARY或或UNIQUEUNIQUE约束时,约束时,SQL ServerSQL Server会自会自动创建索引。动创建索引。(2) (2) 索引的名称必须符合索引的名称必须符合SQL ServerSQL Server的命名规则,且必须是的命名规则,且必须是表中唯一的。表中唯一的。(3) (3) 可

12、以在创建表时创建索引,或是给现存表创建索引。可以在创建表时创建索引,或是给现存表创建索引。(4) (4) 只有表的所有者才能给表创建索引。只有表的所有者才能给表创建索引。(5) (5) 每个表最多可同时拥有每个表最多可同时拥有1 1个聚集索引和个聚集索引和249249个非聚集索引。个非聚集索引。(6) (6) 最多可以给最多可以给1616个字段个字段( (来自同一个表来自同一个表) )的组合创建一个多的组合创建一个多列索引,而这些字段的总长度不能超过列索引,而这些字段的总长度不能超过900900个字节。个字节。(7) (7) 在创建一个聚集索引时,所有现存的非聚集索引会重新在创建一个聚集索引时

13、,所有现存的非聚集索引会重新创建。因此要先创建聚集索引,再创建各个非聚集索引。创建。因此要先创建聚集索引,再创建各个非聚集索引。1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论3. 创建索引 另外,在创建聚集索引时还要考虑数据库剩余另外,在创建聚集索引时还要考虑数据库剩余空间的问题。在创建聚集索引时所需的可用空间应空间的问题。在创建聚集索引时所需的可用空间应是数据库表中数据量的是数据库表中数据量

14、的120%120%,这是因为在创建聚集,这是因为在创建聚集索引时表中的数据将被复制以便进行排序,排序完索引时表中的数据将被复制以便进行排序,排序完成后,再将旧的未加索引的表删除,所以数据库必成后,再将旧的未加索引的表删除,所以数据库必须有足够用来复制数据的空间。须有足够用来复制数据的空间。 创建唯一性索引时,应保证创建索引的列不包括创建唯一性索引时,应保证创建索引的列不包括重复的数据,并且没有两个或两个以上的空值重复的数据,并且没有两个或两个以上的空值(NULL)(NULL)。因为创建索引时将两个空值也视为重复的。因为创建索引时将两个空值也视为重复的数据,如果有这种数据,必须先将其删除,否则索

15、数据,如果有这种数据,必须先将其删除,否则索引不能被成功创建。引不能被成功创建。 1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论3. 创建索引 (1) (1) 创建表的同时创建索引。在表结构定义窗口中完成创建表的同时创建索引。在表结构定义窗口中完成各个字段特性定义后,右击,在弹出的快捷菜单中选择各个字段特性定义后,右击,在弹出的快捷菜单中选择【属性】命令,也可直接单击工具栏中的【表和索引属性】

16、【属性】命令,也可直接单击工具栏中的【表和索引属性】按钮,打开【属性】对话框。给现有的表创建索引,先打按钮,打开【属性】对话框。给现有的表创建索引,先打开表的结构定义窗口,然后右击,在弹出的快捷菜单中选开表的结构定义窗口,然后右击,在弹出的快捷菜单中选择【属性】命令,也可直接单击工具栏中的【表和索引属择【属性】命令,也可直接单击工具栏中的【表和索引属性】按钮,打开【属性】对话框。性】按钮,打开【属性】对话框。 (2) (2) 当【属性】对话框打开后,选择【索引当【属性】对话框打开后,选择【索引/ /键】选项卡,键】选项卡,切换到该页面,切换到该页面,如图如图5.15.1所示所示。 (3) (3

17、) 单击【新建】按钮,表示要创建新索引。单击【新建】按钮,表示要创建新索引。 (4) (4) 在【索引名】文本框中输入索引的名称。在【索引名】文本框中输入索引的名称。1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论3. 创建索引(5) (5) 在【列名】列表框中,选取索引的键列。如果给在【列名】列表框中,选取索引的键列。如果给某一字段创建索引,在【列名】列表框中的第一列选某一字段创建索引,在【列

18、名】列表框中的第一列选取该字段;如果给多个字段创建索引,依次在【列名】取该字段;如果给多个字段创建索引,依次在【列名】列表框中的各列选取各个字段。列表框中的各列选取各个字段。(6) (6) 从【索引文件组】下拉列表框中选取一文件组,从【索引文件组】下拉列表框中选取一文件组,以便决定将索引放在数据库的哪一个文件组中。以便决定将索引放在数据库的哪一个文件组中。(7) (7) 如果创建的是唯一性索引,选中【创建如果创建的是唯一性索引,选中【创建UNIQUEUNIQUE】复选框,并且选中【索引】单选按钮。复选框,并且选中【索引】单选按钮。如果希望该唯一性索引忽略重复值,选中【忽略重复如果希望该唯一性索

19、引忽略重复值,选中【忽略重复值】复选框。值】复选框。1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论3. 创建索引(8) (8) 如果要创建一个聚集索引,选中创建为如果要创建一个聚集索引,选中创建为【CLUSTEREDCLUSTERED】复选框;反之,如果创建的是非聚集】复选框;反之,如果创建的是非聚集索引,不要选中【创建为索引,不要选中【创建为CLUSTEREDCLUSTERED】复选框。】复

20、选框。(9) (9) 如果在索引更新时重新计算统计信息,不要选如果在索引更新时重新计算统计信息,不要选中【不自动重新计算统计】复选框;反之,选中。中【不自动重新计算统计】复选框;反之,选中。(10) (10) 反复执行反复执行(3)(3)(9)(9)的操作,直到给表定义完全的操作,直到给表定义完全部索引,然后单击【关闭】按钮。部索引,然后单击【关闭】按钮。(11) (11) 用鼠标单击结构定义窗口工具栏中的【保存】用鼠标单击结构定义窗口工具栏中的【保存】按钮,此时按钮,此时SQL ServerSQL Server会开始创建各个索引。会开始创建各个索引。(12) (12) 关闭结构定义窗口。关闭

21、结构定义窗口。1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论3. 创建索引 可以用可以用CREATE INDEXCREATE INDEX语句在一个已经存在的表语句在一个已经存在的表上创建索引,上创建索引,CREATE INDEXCREATE INDEX语句的格式如下:语句的格式如下: CREATE UNIQUE CLUSTERED|NONCLUSTERED CREATE UNIQUE CLUS

22、TERED|NONCLUSTERED INDEX index_nameINDEX index_name ON table|view (columnASC|DESC,. ON table|view (columnASC|DESC,.n n) ) ON filegroup ON filegroup1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论3. 创建索引 参数说明参数说明: :UNIQUEUNI

23、QUE、CLUSTEREDCLUSTERED和和NONCLUSTEREDNONCLUSTERED选项选项:指定所创建索引:指定所创建索引的类型,分别为唯一性索引、聚集索引和非聚集索引。省的类型,分别为唯一性索引、聚集索引和非聚集索引。省略略UNIQUEUNIQUE时,时,SQL ServerSQL Server所创建的是非唯一性索引;省略所创建的是非唯一性索引;省略LUSTERED|NONCLUSTEREDLUSTERED|NONCLUSTERED选项时,选项时,SQL ServerSQL Server所创建的是非所创建的是非聚集索引。聚集索引。index_nameindex_name:说明所

24、创建的索引名称,应遵守:说明所创建的索引名称,应遵守SQL ServerSQL Server标识符命名规则。标识符命名规则。table|viewtable|view:指定为其创建索引的表或视图。:指定为其创建索引的表或视图。ColumnColumn:指定索引的键列。不能对指定索引的键列。不能对texttext、ntextntext、imageimage数数据类型列创建索引。据类型列创建索引。ASC|DESCASC|DESC:指定索引列的排序方式是升序还是降序,默认指定索引列的排序方式是升序还是降序,默认为升序为升序(ASC)(ASC)。ONON子句子句:指定保存索引文件的数据库文件组名称。:指

25、定保存索引文件的数据库文件组名称。1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论3. 创建索引 【例【例5-15-1】 为为StudentStudent表表SnoSno列创建一个唯一性的列创建一个唯一性的聚集索引,索引排列顺序为降序。聚集索引,索引排列顺序为降序。 CREATE UNIQUE CLUSTEREDCREATE UNIQUE CLUSTERED INDEX Sno_student

26、ON (Sno DESC) INDEX Sno_student ON (Sno DESC) 注:在执行此命令前先删除原来该表的主关键字注:在执行此命令前先删除原来该表的主关键字属性。属性。 1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论4. 删除索引 在表【属性】对话框的【索引在表【属性】对话框的【索引/ /键】选项卡中,键】选项卡中,从【选定的索引】下拉列表框中选取要删除的索引,从【选定的索

27、引】下拉列表框中选取要删除的索引,然后单击【删除】按钮。然后单击【删除】按钮。 删除索引的另一种方法是,在企业管理器的右删除索引的另一种方法是,在企业管理器的右侧窗口中,右击要删除索引的表,从快捷菜单中选侧窗口中,右击要删除索引的表,从快捷菜单中选取【所有任务】命令,再从子菜单中选取【管理索取【所有任务】命令,再从子菜单中选取【管理索引】命令,引】命令,如图如图5.25.2所示所示,此时将打开【管理索引】,此时将打开【管理索引】对话框,对话框,如图如图5.35.3所示所示。在该对话框的【现有索引】。在该对话框的【现有索引】列表中选中要删除的索引,单击对话框下部的【删列表中选中要删除的索引,单击

28、对话框下部的【删除】按钮,在出现的确认对话框中单击【是】按钮除】按钮,在出现的确认对话框中单击【是】按钮即可。即可。 1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论4. 删除索引 使用使用DROP INDEXDROP INDEX语句可删除索引,语句格式为:语句可删除索引,语句格式为: DROP INDEX DROP INDEX 以下语句删除了以下语句删除了studentstudent表上的表上

29、的Sno_studentSno_student索引:索引: DROP INDEX student.Sno_studentDROP INDEX student.Sno_student 也可以用一条也可以用一条DROP INDEXDROP INDEX语句删除多个索引,索语句删除多个索引,索引名引名 之间要用逗号隔开。之间要用逗号隔开。 1索引索引的定义索引的类型创建索引删除索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论5.2 视图1索

30、引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论1. 视图概述 视图是从一个或者多个基本表视图是从一个或者多个基本表( (或已定义的视图或已定义的视图) )中导出的虚表。视图常用于集中、简化和定制显示中导出的虚表。视图常用于集中、简化和定制显示数据库中的信息。视图是一个过滤器,对于一个或数据库中的信息。视图是一个过滤器,对于一个或多个基表中的数据进行筛选、引用。多个基表中的数据进行筛选、引用。1索引2视图视图概述视图的创建视图的使用视

31、图的修改视图的删除3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论1. 视图概述简化数据的操作简化数据的操作视图可以简化用户操作数据的方式。视图可以简化用户操作数据的方式。2) 2) 自定义数据自定义数据视图允许用户以不同的方式查看数据,即使当用视图允许用户以不同的方式查看数据,即使当用户同时使用相同的数据时也是如此。户同时使用相同的数据时也是如此。3) 3) 将数据集中显示将数据集中显示视图让用户能够着重于所感兴趣的特定数据和所视图让用户能

32、够着重于所感兴趣的特定数据和所负责的特定任务。负责的特定任务。4) 4) 提供重构数据库的逻辑独立性提供重构数据库的逻辑独立性数据的物理独立性是指用户和用户程序不依赖于数据的物理独立性是指用户和用户程序不依赖于数据库的物理结构。数据库的物理结构。1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论2. 视图的创建(1) (1) 打开企业管理器,展开要使用的数据库打开企业管理器,展开要使用

33、的数据库( (如如Grademanager)Grademanager)。(2) (2) 右击该数据库中的【视图】图标,在弹出的菜单右击该数据库中的【视图】图标,在弹出的菜单中选择【新建视图】命令,打开中选择【新建视图】命令,打开如图如图5.45.4所示所示的窗口,的窗口,右击工具栏上的图标窗格打开【添加表】对话框,右击工具栏上的图标窗格打开【添加表】对话框,如如图图5.55.5所示所示。1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Ser

34、ver版第第5 5章章 数据库系统概论数据库系统概论2. 视图的创建1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结(3)(3)基表或视图选择完成之后,表基表或视图选择完成之后,表StudentStudent的结构出现在视图创的结构出现在视图创建建/ /修改窗口的数据表显示区。在表中选择需要在视图中显示修改窗口的数据表显示区。在表中选择需要在视图中显示的列,此时在窗口下边的视图定义列显示表格中和的列,此时在窗口下边的视图定义列显示表格中和SQLSQL语句区语句区中也会相应地出现所选择的列和中也会相应地出现所选择的列和SQLSQL语句,若需加入限制条件、语

35、句,若需加入限制条件、函数或计算列,可以手动在函数或计算列,可以手动在SQLSQL语句区输入,语句区输入,如图如图5.65.6所示所示。(4)(4)单击工具栏按钮运行所定义的视图,在视图执行结果显示单击工具栏按钮运行所定义的视图,在视图执行结果显示区显示出这个视图的查询结果,如图区显示出这个视图的查询结果,如图5.65.6下部分所示。下部分所示。用户可以发现当定义了用户可以发现当定义了WHEREWHERE子句时,视图执行之后,在基表子句时,视图执行之后,在基表相应列的右边会出现一个图标,并且在视图定义列的表格中出相应列的右边会出现一个图标,并且在视图定义列的表格中出现相应的列名与准则,即视图的

36、查询条件。现相应的列名与准则,即视图的查询条件。北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论2. 视图的创建使用使用CREATE VIEWCREATE VIEW命令创建视图,语法格式为:命令创建视图,语法格式为:CREATE VIEW view_name (Column ,CREATE VIEW view_name (Column ,n n)WITH ENCRYPTIONWITH ENCRYPTIONAS Select_statementAS Select_stat

37、ementWITH CHECK OPTIONWITH CHECK OPTION1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论2. 视图的创建1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结命令中的参数含义如下命令中的参数含义如下: :View_nameView_name:定义视图名,其命名规则与标识符的相同,并且定义视图名,其命名规则与标识符

38、的相同,并且在一个数据库中要保证是唯一的,该参数不能省略。在一个数据库中要保证是唯一的,该参数不能省略。ColumnColumn:声明视图中使用的列名。只有当视图中的某列来自于声明视图中使用的列名。只有当视图中的某列来自于算术表达式、内置函数或常量,或多个列有相同的名称,或给算术表达式、内置函数或常量,或多个列有相同的名称,或给某列一个不同于基表中的列名时,才有必要使用此项。如果省某列一个不同于基表中的列名时,才有必要使用此项。如果省略这个可选项,就使用基表的列名作为视图的列名,也可以在略这个可选项,就使用基表的列名作为视图的列名,也可以在Select_statementSelect_stat

39、ement语句中指定列名。语句中指定列名。WITH ENCRYPTIONWITH ENCRYPTION:给系统表给系统表syscommentssyscomments中视图定义的中视图定义的SELECTSELECT命令加密。这个选项可用于提高命令加密。这个选项可用于提高SQL ServerSQL Server系统的安全性。系统的安全性。ASAS:说明视图要完成的操作。说明视图要完成的操作。北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论2. 视图的创建1索引2视图视图概述

40、视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结Select_statementSelect_statement:定义视图的定义视图的SELECTSELECT命令,可以使用多个表命令,可以使用多个表及其他视图,也可以是由及其他视图,也可以是由UNIONUNION关键字连接起来的多个关键字连接起来的多个SELECTSELECT命令,可以定义查询条件命令,可以定义查询条件(WHERE(WHERE子句子句) ),还可以使用函数。,还可以使用函数。注意:视图中的注意:视图中的SELECTSELECT命令不能包括命令不能包括INTOINTO、ORDER BYORDER BY等子句。等

41、子句。临时表也不能在查询中引用。临时表也不能在查询中引用。WITH CHECK OPTIONWITH CHECK OPTION:强制所有通过视图修改的数据满足强制所有通过视图修改的数据满足Select_statementSelect_statement语句中指定的选择条件。语句中指定的选择条件。视图创建成功后,可以在企业管理器的视图窗口中看到新定义视图创建成功后,可以在企业管理器的视图窗口中看到新定义的视图名称。视图可以由一个或多个表或视图来定义。的视图名称。视图可以由一个或多个表或视图来定义。北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理

42、及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论2. 视图的创建1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结【例【例5-25-2】 带有条件的视图定义。定义视图带有条件的视图定义。定义视图v_studentv_student,查询,查询所有选修数据库课程的学生的学号所有选修数据库课程的学生的学号(SNO)(SNO)、姓名、姓名(SNAME)(SNAME)、课程、课程名称名称(CNAME)(CNAME)和成绩和成绩(DEGREE)(DEGREE)。该视图的定义涉及了该视图的定义涉及了STUDENTSTUDENT表、表、COUR

43、SECOURSE表和表和SCSC表。表。CREATE VIEW v_studentCREATE VIEW v_student AS ASSELECT SNO,SNAME,CNAME,DEGREESELECT SNO,SNAME,CNAME,DEGREEFROM STUDENT A,COURSE B,SC CFROM STUDENT A,COURSE B,SC CWHERE A.SNO=C.SNO AND B.CNO=C.CNO AND CNAME=WHERE A.SNO=C.SNO AND B.CNO=C.CNO AND CNAME=数据库数据库 北京大学出版社 ISBN 978-7-301-

44、13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论2. 视图的创建1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结 视图定义后,可以像基本表一样进行查询。例如,若视图定义后,可以像基本表一样进行查询。例如,若要查询以上定义的视图要查询以上定义的视图v_studentv_student,可以使用如下命令:,可以使用如下命令: SELECT SELECT * * FROM v_student FROM v_student 在安装系统和创建数据库之后,只有系统管理员在安装系统和创建数

45、据库之后,只有系统管理员sasa和和数据库所有者数据库所有者DBODBO具有创建视图的权限,此后他们可以使具有创建视图的权限,此后他们可以使用用GRANT CREATE VIEWGRANT CREATE VIEW命令将这个权限授予其他用户。此命令将这个权限授予其他用户。此外,视图创建者必须具有在视图查询中包括的每一列的访外,视图创建者必须具有在视图查询中包括的每一列的访问权。问权。北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论3. 视图的使用1索引2视图视图概述视图的

46、创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结 视图的使用主要包括视图的检索、通过视图对基表进行视图的使用主要包括视图的检索、通过视图对基表进行插入、修改、删除操作。视图的检索几乎没有什么限制,但插入、修改、删除操作。视图的检索几乎没有什么限制,但是对通过视图实现表的插入、修改、删除操作则有一定的限是对通过视图实现表的插入、修改、删除操作则有一定的限制条件。制条件。 1 1使用视图进行数据检索使用视图进行数据检索 视图的查询总是转换为对它所依赖的基本表的等价查询。视图的查询总是转换为对它所依赖的基本表的等价查询。利用利用Transact-SQLTransact-SQL的的SEL

47、ECTSELECT命令和企业管理器都可以对视图命令和企业管理器都可以对视图进行查询,其使用方法与基本表的查询完全一样。进行查询,其使用方法与基本表的查询完全一样。 2 2通过视图修改数据通过视图修改数据 视图也可以使用视图也可以使用INSERTINSERT命令插入行,当执行命令插入行,当执行INSERTINSERT命令时,命令时,实际上是向视图所引用的基本表插入了行。视图中的实际上是向视图所引用的基本表插入了行。视图中的INSERTINSERT命令与在基本表中使用命令与在基本表中使用INSERTINSERT命令的格式完全一样。命令的格式完全一样。北京大学出版社 ISBN 978-7-301-1

48、3321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论3. 视图的使用1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结【例【例5-35-3】 利用视图向表利用视图向表studentstudent中插入一条数据。中插入一条数据。V1_studentV1_student是前面创建的视图,脚本如下。是前面创建的视图,脚本如下。 CREATE VIEW V1_studentCREATE VIEW V1_student AS AS SELECT SNO,SNAME,SADDRESS SELEC

49、T SNO,SNAME,SADDRESS FROM STUDENT FROM STUDENT 执行下面脚本:执行下面脚本: INSERT INTO V1_studentINSERT INTO V1_student VALUES(20050203 VALUES(20050203、 王小龙王小龙 、 山东省青岛市山东省青岛市) 查看结果:查看结果: SELECT SELECT * * FROM student WHERE SNAME= FROM student WHERE SNAME=王小龙王小龙 北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理

50、及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论3. 视图的使用1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结执行结果可以看出,数据在基本表中已经正确插入。执行结果可以看出,数据在基本表中已经正确插入。北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论3. 视图的使用1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结 如果视图中有下面所述属性,则插入、更新或删除基表如

51、果视图中有下面所述属性,则插入、更新或删除基表将失败。将失败。 (1) (1) 视图定义中的视图定义中的FROMFROM子句包含两个或多个表,且子句包含两个或多个表,且SELECTSELECT选择列表达式中的列包含来自多个表的列。选择列表达式中的列包含来自多个表的列。 (2) (2) 视图的列是从集合函数派生的。视图的列是从集合函数派生的。 (3) (3) 视图中的视图中的SELECTSELECT语句包含语句包含GROUP BYGROUP BY子句或子句或DISTINCTDISTINCT选项。选项。 (4) (4) 视图的列是从常量或表达式派生的。视图的列是从常量或表达式派生的。北京大学出版社

52、 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论3. 视图的使用1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结 同样,利用视图可以更新行,改变所引用的基表中同样,利用视图可以更新行,改变所引用的基表中一行或多行或列的值。一行或多行或列的值。 【例【例5-45-4】将例】将例5-35-3中插入的数据删除。中插入的数据删除。 DELETE FROM V1_student WHERE SNAME=DELETE FROM V1_student WHE

53、RE SNAME=王小龙王小龙 这个例子执行后会将基本表这个例子执行后会将基本表studentstudent中的所有中的所有SNAMESNAME为为“王小龙王小龙”的行删除。的行删除。 北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论4. 视图的修改1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结 (1) (1) 展开服务器,展开数据库。展开服务器,展开数据库。 (2) (2) 单击【视图】图标,在窗口右侧显示出当单击【视图】图标

54、,在窗口右侧显示出当前数据库中的所有视图。前数据库中的所有视图。 (3) (3) 右击要修改的视图名,在弹出的快捷菜单右击要修改的视图名,在弹出的快捷菜单中选择【设计视图】命令,便可进入视图设计窗中选择【设计视图】命令,便可进入视图设计窗口,用户可以在这个窗口中对视图进行修改。口,用户可以在这个窗口中对视图进行修改。 另外可以利用视图属性对话框修改视图,双击另外可以利用视图属性对话框修改视图,双击要修改的视图名,弹出视图属性对话框,在这个要修改的视图名,弹出视图属性对话框,在这个对话框中显示出定义视图的对话框中显示出定义视图的Transact-SQLTransact-SQL命令,命令,用户可以

55、直接在这个对话框中进行修改。用户可以直接在这个对话框中进行修改。北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论4. 视图的修改1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结使用使用ALTER VIEWALTER VIEW命令修改视图,语法格式为:命令修改视图,语法格式为:ALTER VIEW view_name (Column,n)ALTER VIEW view_name (Column,n) WITH ENCRYPTION

56、WITH ENCRYPTION AS select-statement AS select-statement WITH CHECK OPTION WITH CHECK OPTION 命令行中的参数与命令行中的参数与CREATE VIEWCREATE VIEW命令中的参数的含义命令中的参数的含义相同。相同。北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论4. 视图的修改1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结 如果在创建视

57、图时使用了如果在创建视图时使用了WITH ENCRYPTIONWITH ENCRYPTION选项和选项和WITH CHECK OPTIONWITH CHECK OPTION选项,则在使用选项,则在使用ALTER VIEWALTER VIEW命令时,命令时,也必须包括这些选项。也必须包括这些选项。 【例【例5-55-5】修改例】修改例5-35-3中的视图中的视图V1_studentV1_student。 ALTER VIEW V1_student ALTER VIEW V1_student AS SELECT SNO,SNAME AS SELECT SNO,SNAME FROM STUDNET

58、FROM STUDNET北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论5. 视图的删除1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结操作步骤如下。操作步骤如下。(1) (1) 在当前数据库中单击【视图】图标。在当前数据库中单击【视图】图标。(2) (2) 在右边视图列表窗口内单击需删除的视图在右边视图列表窗口内单击需删除的视图( (如如V1_student)V1_student)。(3) (3) 单击工具栏上的【删除】图标,弹

59、出【除去单击工具栏上的【删除】图标,弹出【除去对象】对话框,对象】对话框,如图如图5.85.8所示所示。北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论5. 视图的删除1索引2视图视图概述视图的创建视图的使用视图的修改视图的删除3存储过程4触发器5本章小结语法格式为:语法格式为:DROP VIEW view ,DROP VIEW view ,n n DROP VIEWDROP VIEW命令可以删除多个视图,各视图名之间用命令可以删除多个视图,各视图名之间用逗号分隔。逗号

60、分隔。【例【例5-65-6】 删除视图删除视图v_studentv_student。DROP VIEW v_studentDROP VIEW v_student北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论5.3 存储过程1索引2视图3存储过程4触发器5本章小结北京大学出版社 ISBN 978-7-301-13321-7/TP0941 2008.2 数据库原理及应用(SQL Server版第第5 5章章 数据库系统概论数据库系统概论1. 存储过程概述1索引2视图3存储

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论