1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,C,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,
2、第五级,*,*,C,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,C,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,C,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,C,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,C,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,*,C,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,
3、SQL Server,第,9,章,视图的规划与操作,视图是用户查看数据库内数据的一种方式,它相当于一个虚拟表,用户通过它来浏览表中感兴趣的部分或全部数据。使用视图可以将用户注意力聚焦在特定的数据上,并达到数据安全保护的目的,还能简化数据查询和处理操作。,第,9,章,视图的规划与操作,9.1,视图的作用与规划,9.2,视图操作,9.3,视图应用综合实例分析,9.1,视图的作用与规划,视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。,视图对应于三级模式中的外模式(用户模式),它是从一个或几个基本表导出的表,由,CREATE VIEW,命令创建。,视图又称为虚拟表,因为数据库中存
4、放着视图的定义及其关联的基本表名等信息,而不存放视图对应的数据。,视图一经定义,就可以和基本表一样被查询、被删除,但对视图的更新(增加、删除、修改)操作则有一定的限制。,9.1.1,视图的作用,数据库使用视图机制主要有以下优点:,(,1,)视图能够简化用户的操作,视图机制使用户可以将注意力集中在所关心的数据上。,(,2,)视图使用户能以多种角度看待同一数据,视图机制能使不同岗位、不同职责、不同需求的用户,按照自己的方式看待同一数据,(,3,)视图为数据库重构提供了一定程度的逻辑独立性。,(,4,)视图能够对机密数据提供安全保护,对不同的用户定义不同的视图,使机密数据不出现在,不应看到这些数据的
5、用户视图上,这样视图机制就自,动提供了对机密数据的安全保护功能。,9.1.2,视图的规划,在设计好数据库的全局逻辑结构后,还应该根据局部应用的需求,结合,DBMS,的特点,设计局部应用的数据库局部逻辑结构,即设计更符合局部用户需要的用户视图。,定义数据库全局逻辑结构主要从系统的时间效率、空间效率、易维护等角度出发。,定义用户局部视图时可以注重考虑用户的习惯与方便。,9.1.2,视图的规划,定义用户局部视图时可以主要考虑以下几个方面:,(,1,)使用更符合用户习惯的别名,在设计数据库总体结构时,同一关系和属性具有唯一的名字,,但是,在局部应用中,对同一关系或属性,有自己更加习惯的,名字。我们可以
6、用视图机制在设计用户视图时重新定义某些属,性名,使其与用户习惯一致,以方便使用。,(,2,)可以对不同级别的用户定义不同的视图,以保证系统的安全性。,(,3,)简化用户对系统的使用,如果某些局部应用中经常要使用某些很复杂的查询,为了方便,用户,可以将这些复杂查询定义为视图,用户每次只对定义好,的视图进行查询,大大简化了用户的使用。,9.2,视图操作,9.2.1,创建视图,SQL SERVER,提供了使用,SSMS,和,SQL,命令两种方法来创建视图。,在创建或使用视图时应该注意到以下情况:,只能在当前数据库中创建视图,在视图中最多只能引用,1024,列,;,如果,视图引用的表被删除,,则当使用
7、该视图时将返回一条错误信息,如果创建具有相同的表的结构新表来替代已删除的表视图则可以使用,否则必须重新创建视图;,如果视图中某一列是函数、数学表达式、常量或来自多个表的列名相同,则,必须为列定义名字,;,定义视图的查询语句不能包含,COMPUTE,或,COMPUTEBY,子句;不能包含,ORDER BY,子句,除非在,SELECT,语句的选择列表中也有一个,TOP,子句;不能包含,INTO,关键字;不能引用临时表或表变量。,不能在视图上创建全文索引、规则、默认值和,after,触发器;不能在规则、缺省、触发器的定义中引用视图;,不能创建临时视图,,也不能在临时表上建立视图。,1,使用,SQL
8、SERVER,企业管理器来创建视图,在,SQL SERVER,中使用,SSMS,来创建视图。,步骤如下:,启动,SSMS,,登录到指定的服务器;,打开要创建视图的数据库文件夹,选中视图图标,此时在右面的窗格中显示当前数据库的所有视图,右击图标,在弹出菜单中选择新建视图选项,打开新建视图对话框。在新建视图对话框中共有四个区:表区、列区,SQL script,区、数据结果区,当然刚打开时是空白。,2,Transact-SQL,命令创建视图,使用,Transact-SQL,命令,CREATE VIEW,创建视图。,语法格式:,CREATE,VIEW,.view_name (column ,.n ),
9、WITH ,.n ,AS,select_statement,WITH CHECK OPTION,:=ENCRYPTION|SCHEMABINDING|VIEW_METADATA,2,Transact-SQL,命令创建视图,参数说明:,(,1,),view_name,:,是视图的名称。视图名称必须符合标识符规则。可以选择是否指定视图所有者名称。,(,2,),Column,:,是视图中的列名。只有在下列情况下,才必须命名,CREATE VIEW,中的列:当列是从算术表达式、函数或常量派生的,两个或更多的列可能会具有相同的名称(通常是因为联接),视图中的某列被赋予了不同于派生来源列的名称,以便符合用
10、户习惯。还可以在,SELECT,语句中指派列名。如果未指定,column,,则视图列与,SELECT,语句中的列具有相同的名称。,2,Transact-SQL,命令创建视图,(,3,),AS,:,是视图要执行的操作。,(,4,),select_statement,:,是定义视图的,SELECT,语句。该语句可以使用多个表或其它视图。若要从创建视图的,SELECT,子句所引用的对象中选择,必须具有适当的权限。,视图不必是具体某个表的行和列的简单子集。可以用具有任意复杂性的,SELECT,子句,使用多个表或其它视图来创建视图。,在索引视图定义中,,SELECT,语句必须是单个表的语句或带有可选聚合
11、的多表,JOIN,。,在,select_statement,中可以使用函数。,select_statement,可使用多个由,UNION,或,UNION ALL,分隔的,SELECT,语句。,2,Transact-SQL,命令创建视图,(,5,),WITH CHECK OPTION,:,强制视图上执行的所有数据修改语句都必须符合由,select_statement,设置的准则。通过视图修改行时,,WITH CHECK OPTION,可确保提交修改后,仍可通过视图看到修改的数据。,(,6,),WITH ENCRYPTION,:,表示,SQL Server,加密包含,CREATE VIEW,语句文
12、本的系统表列。使用,WITH ENCRYPTION,可防止将视图作为,SQL Server,复制的一部分发布。,(,7,),SCHEMABINDING,:,将视图绑定到架构上。,(,8,),VIEW_METADATA,:,指定为引用视图的查询请求浏览模式的元数据时,,SQL Server,将向,DBLIB,、,ODBC,和,OLE DB API,返回有关视图的元数据信息,而不是返回基表或表。,3,视图创建实例,【,例,9-1】,使用简单的,CREATE VIEW,下例创建具有简单,SELECT,语句的视图。当需要频繁地查询列的某种组合时,简单视图非常有用。,USE,教学管理,IF EXISTS
13、SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS,WHERE TABLE_NAME=courses_VIEW),DROP VIEW courses_VIEW,GO,CREATE VIEW courses_VIEW,AS,SELECT cno,cname,cbname,cedi,cpub,FROM course,GO,【,例,9-2】,使用,WITH ENCRYPTION,下例使用,WITH ENCRYPTION,选项和内置函数,使用函数时,必须为派生列指定列名。,USE,教学管理,CREATE VIEW stu_avg(sno,sname,AVG
14、SCORE),WITH ENCRYPTION,AS,SELECT S.sno,sname,AVG(grade),FROM student S,enrollment E,WHERE S.sno=E.sno,GROUP BY S.sno,sname,GO,select c.id,c.text,from syscomments c,sysobjects o,where c.id=o.id and o.name=stu_avg,【,例,9-3】,使用,WITH CHECK OPTION,下例显示名为,ISonly,的视图,该视图使得只能对信息学院的学生做数据修改。,USE,教学管理,CREATE V
15、IEW ISonly,AS,SELECT sno,sssn,sname,ssex,smtel,scity,smajor,sdepa,sgpa,FROM student,WHERE sdepa=,信息学院,WITH CHECK OPTION,GO,insert into isonly,values(s060501,11111111,张,男,1111,宁波,会计学,会计学院,162),【,例,9-4】,如果如本章第一节概述所述,若某一全国连锁的销售企业将销售数据表按照省份进行水平分割,那我们可以使用以下视图重新装载表的数据。,Create view sales_table,As,Select*fr
16、om sales_beijing,union,Select*from sales_tianjin,union,Select*from sales_shanghai,9.2.2,特殊类型视图简介,索引视图,:建立唯一聚簇索引的视图为索引视图。,分区视图,:分区视图是通过对具有相同结构的成员表使用,UNION ALL,所定义的视图。,信息架构视图,:,Microsoft,提供的用于,SQL Server,元数据的内部视图,这些视图符合,SQL-92,标准中的,INFORMATION_SCHEMA,定义。,1,索引视图,由于视图返回的结果集与具有行列结构的表有着相同的表格形式,并且我们可以在,SQL
17、语句中像引用表那样引用视图,所以我们常把视图称为,虚表,。,标准视图的数据的物理存放依然是在数据库的基本表中,只是在执行引用了视图的查询时,,SQL Server,才把相关的基本表中的数据合并成视图的逻辑结构。所以,这类视图也称做,存储查询,。,问题:,由于是在执行了引用了视图的查询时,,SQL Server,才把相关的基本表中的数据合并成视图的逻辑结构,那么当查询所引用的视图包含大量的数据行或涉及到对大量数据行进行合计运算或连接操作,毋庸置疑,,动态地创建视图结果集将给系统带来沉重的负担,尤其是经常引用这种大容量视图。,如何解决?,索引视图:,建立唯一聚簇索引的视图称做索引视图,在视图上创
18、建索引可存储创建索引时存在的数据。,优点:,查询优化器开始在查询中使用视图索引,而不是直接在,FROM,子句中命名视图。这样一来,可从索引视图检索数据而无需重新编码,由此带来的高效率也使现有查询获益。,缺点:,它降低了对视图基表数据的修改操作的速度,且维护索引视图比维护基础表的索引更为复杂,。,适合情况:,非常频繁地检索视图数据,或很少修改基表数据时。,在视图上创建聚集索引之前,该视图必须满足下列要求:,1.,当执行,CREATE VIEW,语句时,,ANSI_NULLS,和,QUOTED_IDENTIFIER,选项必须设置为,ON,。,2.,为执行所有,CREATE TABLE,语句以创建视
19、图引用的表,,ANSI_NULLS,选项必须设置为,ON,。,3.,该视图所引用的对象仅包括基础表而不包括其它的视图;,4,.,视图引用的所有基表必须与视图位于同一个数据库中,并且所有者也与视图相同。,5.,必须使用,SCHEMABINDING,选项创建视图。,SCHEMABINDING,将视图绑定到基础基表的架构。,6.,如果视图引用了用户自定义函数,那么在创建这些用户自定义函数时也必须使用,SCHEMABINDING,选项,;,7.,视图必须以,owner.objectname,的形式来使用所引用的表或用户自定义函数;,8.,视图中的表达式所引用的所有函数必须是确定性的。,9.,视图中的,
20、SELECT,语句不能包含下列,T-SQL,语法元素,*,选择列表不能使用,*,或,table_name.*,语法指定列。必须,显式给出列名。,*,不能在多个视图列中指定用作简单表达式的表的列名。,*派生表。,*行集函数。,*,UNION,运算符。,*子查询。,*外联接或自联接。,*,TOP,子句。,*,ORDER BY,子句。,*,DISTINCT,关键字。,*,COUNT(*),(允许,COUNT_BIG(*),。),*,AVG,、,MAX,、,MIN,、,STDEV,、,STDEVP,、,VAR,或,VARP,聚合函数。,注意:,通常而言,可以在视图上创建多个索引,但是应该记住,在视图上
21、所创建的第一个索引必须是聚簇索引,然后才可以创建其它的非聚簇索引,。,如果准备为视图创建索引,在执行,CREATE INDEX,命,令以前,您必须确保以下条件,:,*,CREATE INDEX,命令的执行者必须是视图的所有者;,*在执行创建索引命令期间,,ANSI_NULLS,、,ANSI_PADDING,、,ANSI_WARNINGS,、,ARITHABORT,、,CONCAT_NULL_YIELDS_NULL,、,QUOTED_IDENTIFIERS,诸选项应被设置成,ON,状态;,*,NUMERIC_ROUNDABORT,选项被设置为,OFF,状态;,*视图不能包括,text,、,nte
22、xt,、,image,类型的数据列;,*如果视图定义中的,SELECT,语句指定了一个,GROUP BY,子句,则唯一聚集索引的键只能引用在,GROUP BY,子句中指定的列。,2,分区视图,分区视图在一个或多个服务器间水平连接一组成员表中的分区数据,使数据看起来就象来自一个表。,Microsoft SQL Server,区分本地分区视图和分布式分区视图。,在本地分区视图中,所有的参与表和视图驻留在同一个,SQL Server,实例上。,在分布式分区视图中,至少有一个参与表驻留在不同的(远程)服务器上。此外,,SQL Server,还区分可更新的分区视图和作为基础表只读复本的视图。,在实现分区
23、视图之前,,必须先水平分割表,。原始表被分成若干个较小的成员表。每个成员表包含与原始表相同数量的列,并且每一列具有与原始表中的相应列同样的特性(如数据类型、大小、排序规则)。,成员表设计好后,每个表基于键值的范围存储原始表的一块水平区域。键值范围基于分区列中的数据值。,例如,正在将一个顾客信息,Customer,表分区成三个表。这些表的,CHECK,约束为:,-On Server1:,CREATE TABLE Customer_33,(CustomerID INT PRIMARY KEY,CHECK(CustomerID BETWEEN 1 AND 32999),.,-Additional c
24、olumn definitions,),-On Server2:,CREATE TABLE Customer_66,(CustomerID INT PRIMARY KEY,CHECK(CustomerID BETWEEN 33000 AND 65999),.,-Additional column definitions,),-On Server3:,CREATE TABLE Customer_99,(CustomerID INT PRIMARY KEY,CHECK(CustomerID BETWEEN 66000 AND 99999),.,-Additional column definiti
25、ons,),生成分布式分区视图的方式,在每一个含有在其它成员服务器上执行分布式查询所需连接信息的成员服务器上添加链接服务器定义。这将使得分布式分区视图能够访问其它服务器上的数据。,建以下分布式分区视图:,CREATE VIEW Customers AS,SELECT*FROM CompanyDatabase.TableOwner.Customers_33,UNION ALL,SELECT*FROM Server2.CompanyDatabase.TableOwner.Customers_66,UNION ALL,SELECT*FROM Server3.CompanyDatabase.Table
26、Owner.Customers_99,3,信息架构视图,信息架构视图基于,SQL-92,标准中针对架构视图的定义,这些视图独立于系统表,提供了关于,SQL Server,元数据的内部视图。,信息架构视图的最大优点是,即使我们对系统表进行了重要的修改,应用程序也可以正常地使用这些视图进行访问。因此对于应用程序来说,只要是符合,SQL-92,标准的数据库系统,使用信息架构视图总是可以正常工作的。,表,9-2,常用的信息架构视图(部分),信息架构视图,描,述,CHECK_CONSTRAINTS,返回有关列或过程参数的信息,如是否允许空值,是否为计算列等。,COLUMN_DOMAIN_USAGE,当前
27、数据库中每个带有用户定义数据类型的列在该视图中占一行。该信息架构视图返回当前用户对其拥有权限的对象的有关信息。,COLUMN_PRIVILEGES,每一个带有特权的列在该视图中占一行,这个特权是由当前数据库中的当前用户授予的,或者授予了当前数据库中的当前用户。该信息架构视图返回当前用户对拥有特权的列的相关信息。,COLUMNS,返回当前数据库中当前用户可以访问的所有列及其基本信息。,在访问信息架构视图时,必须同时说明视图所属模式,即采用以下语法格式:,INFORMATION_SCHEMA.view_name,例如,我们要得到某个表有多少列,可以使用以下语句:,SELECT COUNT(*)FR
28、OM INFORMATION_SCHEMA.COLUMNS,WHERE TABLE_NAME=mytable,9.2.3,视图的修改、重命名和删除,1,修改视图,修改一个先前创建的视图的定义,使用,ALTER VIEW,语句。,ALTER VIEW,语句不影响相关的存储过程或触发器,也不更改权限。,语法格式:,ALTER VIEW .view_name (column ,.n ),WITH ,.n ,AS,select_statement,WITH CHECK OPTION,:=ENCRYPTION|SCHEMABINDING|VIEW_METADATA,参数说明:,如果原来的视图定义是用,W
29、ITH ENCRYPTION,或,CHECK OPTION,创建的,那么只有在,ALTER VIEW,中也包含这些选项时,这些选项才有效。,如果使用,ALTER VIEW,更改当前正在使用的视图,,SQL Server,将在该视图上放一个排它架构锁。当锁已授予,并且该视图没有活动用户时,,SQL Server,将从过程缓存中删除该视图的所有复本。引用该视图的现有计划将继续保留在缓存中,但当唤醒调用时将重新编译。,ALTER VIEW,可应用于索引视图。然而,,ALTER VIEW,将无条件地除去视图上的所有索引。,【,例,9-5】,更改视图,下例创建称为,All_teachers,的视图,该视
30、图包含全部的教师,并将该视图的查询权授予所有用户。但是由于该视图中包含了教师的编号、身份证号等个人信息,需使用,ALTER VIEW,替换该视图,不包括编号、身份证号等个人信息,以保护教师个人隐私。,-CREATE a VIEW FROM the teacer table that contains all teachers.,CREATE VIEW All_teacher,(tno,tssn,tname,tmtel,tcity,tdepa,trank),AS,SELECT tno,tssn,tname,tmtel,tcity,tdepa,trank,FROM,教学管理,.teacher,GO
31、Grant SELECT permissions on the VIEW to public.,GRANT SELECT ON All_teacher TO public,GO,-The VIEW needs to be changed to exclude the tno,tssn,tcity attribute of all teachers,ALTER VIEW All_teacher,(tname,tmtel,tdepa,trank),AS,SELECT tname,tmtel,tdepa,trank,FROM,教学管理,.teacher,GO,2,视图重命名,使用系统存储过程,s
32、p_rename,对已创建的视图进行重命名。,语法格式:,sp_rename objname=object_name,newname=new_name,objtype=object_type,【,例,9-6】,将例,9-5,中称为,All_teacher,的视图重命名。,语法格式:,exec sp_rename All_teacher,All_teacher_view,3,删除视图,从当前数据库中删除一个或多个视图。可执行,DROP VIEW,语句。,语法格式:,DROP VIEW View_name ,.n,【,例,9-7,】,下例删除,stu_avg,视图。,USE,教学管理,IF EXI
33、STS(SELECT TABLE_NAME FROM,INFORMATION_SCHEMA.VIEWS,WHERE TABLE_NAME=stu_avg),DROP VIEW stu_avg,GO,9.2.4,查询视图,视图定义后,用户就可以象对基本表一样对视图进行查询了。,【,例,9-8,】,如果要查询信息学院每个学生的情况,只要从视图,ISonly,查询即可。,Select*From ISonly,【,例,9-9,】,创建信息学院每个学生的成绩视图,包括学生的学号、姓名、所选课程号、课程名,成绩,并进行查询。,USE,教学管理,IF EXISTS(SELECT TABLE_NAME FRO
34、M,INFORMATION_SCHEMA.VIEWS,WHERE TABLE_NAME=ISstu_score),DROP VIEW ISstu_score,GO,CREATE VIEW ISstu_score(sno,sname,cno,cname,grade),AS,SELECT S.sno,sname,C.cno,cname,grade,FROM student S,enrollment E,offering O,course C,WHERE S.sno=E.sno,AND E.ono=O.ono,AND O.cno=C.cno,AND sdepa=,信息学院,GO,9.2.5,更新视图
35、更新视图是指通过视图来插入(,INSERT,)、删除(,DELETE,)和修改(,UPDATE,)数据。由于视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。,Microsoft SQL Server,以两种方法增强可更新视图的类别:,INSTEAD OF,触发器,分区视图,【,例,9-10,】,在例,9-3,中,,ISonly,是一可更新视图,但由于视图使用了,with CHECK OPTION,选项,只允许更新信息学院学生数据。下面例子说明,如果没有,with CHECK OPTION,选项,则不能保护非视图数据库被插入、修改和删除。,-,首先,创建,会计学院,学
36、生视图,不带,with CHECK OPTION,选项,-,再用,INSERT,语句通过,ACConly,视图插入一工商管理学院的学生,-,然后输入前面不能通过,ISonly,视图插入的学生元组。,通过视图对数据进行更新与删除时需要注意到以下几个问题:,(,1,)不带,with CHECK OPTION,选项的视图,能够插入非视图数据,因为数据最终存储在视图所引用的基本表,但插入后,不在视图数据集,故无法通过视图查询该数据;,(,2,)执行,UPDATE DELETE,时,所删除与更新的数据,必须包含在视图结果集中,否则失败,例子中通过,ACConly,视图对,S060601,学生数据的修改和
37、删除操作均失败;,(,3,)如果视图引用多个表时,无法用,DELETE,命令删除数据,若使用,UPDATE,则应与,INSERT,操作一样,被更新的列必须属于同一个表。,9.3,视图应用综合实例分析,【,例,9-12,】,一般学生信息视图(视图,1,),由于学生的一些个人私密信息如:身份证号、出生日期、家庭地址、家庭电话等信息是不能随便透露的,为保证学生信息安全,于是为一般用户创建一般学生信息视图如下:,USE,教学管理,IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS,WHERE TABLE_NAME=G_Stu_VIEW),
38、DROP VIEW G_Stu_VIEW,GO,CREATE VIEW G_Stu_VIEW(sno,sname,ssex,scity,sdepa,smajor),AS,SELECT sno,sname,ssex,scity,sdepa,smajor,FROM student,GO,【,例,9-13,】,教师基本信息视图(视图,2,),USE,教学管理,IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS,WHERE TABLE_NAME=G_T_VIEW),DROP VIEW G_T_VIEW,GO,CREATE VIEW G_T
39、VIEW(tno,tname,tsex,tdepa,tmajor,trank,tdegree),AS,SELECT tno,tname,tsex,tdepa,tmajor,trank,tdegree,FROM teacer,GO,【,例,9-14,】,教师及授课信息视图(视图,3,),同样的道理,为用户创建教师及授课信息查询视图包括教师主讲课程以及开课学期等。,USE,教学管理,CREATE VIEW G_TC_VIEW(tno,tname,tsex,tdepa,tmajor,trank,tdegree,cname,odate,oterm,otime,otamou,olaca),AS,SEL
40、ECT T.tno,tname,tsex,tdepa,tmajor,trank,tdegree,cname,odate,oterm,otime,otamou,olaca,FROM teacer T,offering O,course C,WHERE T.tno=O.tno,AND O.cno=C.cno,GO,【,例,9-15,】,根据教学管理部门对学生选课管理的需要,建立关于学生选课信息的视图(视图,4,),USE,教学管理,CREATE VIEW G_SC_VIEW(sno,sname,scometime,sdepa,smajor,sgpa,cno,cname,grade,odate,ot
41、erm,otime,otamou,olaca),AS,SELECT S.sno,sname,scometime,sdepa,smajor,sgpa,C.cno,cname,grade,odate,oterm,otime,otamou,olaca,FROM student T,enrollment E,offering O,course C,WHERE S.sno=E.sno,AND E.ono=O.ono,AND O.cno=C.cno,GO,【,例,9-16,】,在,G_SC_view,视图的基础上,创建学生综合成绩视图(视图,5,),USE,教学管理,CREATE VIEW S_SCORE
42、VIEW(sno,sname,MIN_SCORE,MAX_SCORE,AVG_SCRORE),AS,SELECT sno,sname,MIN(grade),MAX(grade),AVG(grade),FROM G_SC_VIEW,GROUP BY sno,sname,scometime,sdepa,smajor,sgpa,GO,Thank You!,1,、字体安装与设置,如果您对PPT模板中的字体风格不满意,可进行批量替换,一次性更改各页面字体。,在,“,开始”,选,项卡,中,,点击“,替,换”按,钮右,侧箭,头,,,选,择“,替,换,字,体,”。(如下,图),在图“替换”下拉列表中选择要更改字体。(如下图),在“替换为”下拉列表中选择替换字体。,点击“替换”按钮,完成。,54,2,、替换模板中的图片,模板中的图片展示页面,您可以根据需要替换这些图片,下面介绍两种替换方法。,方法一:更改图片,选中模版中的图,片,(,有些图片与其他,对象,进行了组合,,选,择,时,一定要选中图,片 本身,而不是组合)。,单击鼠标右键,选择“更改图片”,选择要替换的图片。(如下图),注意:,为防止替换图片发生变形,请使用与原图长宽比例相同的图片。,54,赠送精美图标,






