第7章视图的操作与管理 SQL SERVER2005入门与实例教程电子工业出版社2006
第7章 视图的操作与管理
视图概述 视图是个虚表,是从一个或者多个表或视图中导出的表,其 结构和数据是建立在对表的查询基础上的。 使用视图的优点和作用主要有: (1)视图可以使用户只关心他感兴趣的某些特定数据和他们所 负责的特定任务,而那些不需要的或者无用的数据则不在视图 中显示 (2)视图大大地简化了用户对数据的操作。 (3)视图可以让不同的用户以不同的方式看到不同或者相同的 数据集。 (4)在某些情况下,由于表中数据量太大,因此在表的设计时 常将表进行水平或者垂直分割,但表的结构的变化对应用程序 不良的影响 使用视图可以重新组织数据,从而使外模 式保持不变,原有的应用程序仍可以通过视图来重载数据。 (5)视图提供了一个简单而有效的安全机制 SQL SERVER2005入门与实例教程电子工业出版社2006
视图概述 视图是个虚表,是从一个或者多个表或视图中导出的表,其 结构和数据是建立在对表的查询基础上的。 使用视图的优点和作用主要有: (1)视图可以使用户只关心他感兴趣的某些特定数据和他们所 负责的特定任务,而那些不需要的或者无用的数据则不在视图 中显示。 (2)视图大大地简化了用户对数据的操作。 (3)视图可以让不同的用户以不同的方式看到不同或者相同的 数据集。 (4)在某些情况下,由于表中数据量太大,因此在表的设计时 常将表进行水平或者垂直分割,但表的结构的变化对应用程序 产生不良的影响。而使用视图可以重新组织数据,从而使外模 式保持不变,原有的应用程序仍可以通过视图来重载数据。 (5)视图提供了一个简单而有效的安全机制
7.1创建视图 SQL Server2005提供了如下几种创建视图的方法: (1)用 SQL SERVER管理平台创建视图 2)用 Transact-SQL语句中的 CREATEⅥEW命令创建视图 (3)利用 SQL SERVER管理平台的视图模板来创建视图。 创建视图时应该注意以下情况: 只能在当前数据库中创建视图,在视图中最多只能引用1024列,视图中记录的数 目限制只由其基表中的记录数决定。 (2)如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新的基 表或者视图 3)如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同,则必 须为列定义名称。 (4)不能在视图上创建索引,不能在规则、默认、触发器的定义中引用视图。 (5)当通过视图査询数据时, SQL Server要检查以确保语句中涉及的所有数据库对象 在,每个数据库对象在语句的上下文中有效,而且数据修改语句不能违反数据完整性 (6)视图的名称必须遵循标识符的规则,且对每个用户必须是惟一的。此外,该名称 不得与该用户拥有的任何表的名称相同。 SQL SERVER2005入门与实例教程电子工业出版社2006
7.1创建视图 SQL Server 2005提供了如下几种创建视图的方法: (1)用SQL SERVER管理平台创建视图; (2)用Transact-SQL语句中的CREATE VIEW命令创建视图; (3)利用SQL SERVER管理平台的视图模板来创建视图。 创建视图时应该注意以下情况: (1)只能在当前数据库中创建视图,在视图中最多只能引用1024列,视图中记录的数 目限制只由其基表中的记录数决定。 (2)如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新的基 表或者视图。 (3)如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同,则必 须为列定义名称。 (4)不能在视图上创建索引,不能在规则、默认、触发器的定义中引用视图。 (5)当通过视图查询数据时,SQL Server要检查以确保语句中涉及的所有数据库对象 存在,每个数据库对象在语句的上下文中有效,而且数据修改语句不能违反数据完整性 规则。 (6)视图的名称必须遵循标识符的规则,且对每个用户必须是惟一的。此外,该名称 不得与该用户拥有的任何表的名称相同
7.1.1利用 SQL SERVER管理平台创建视图 利用 SQL SERVER管理平台创建视图的具体操作步骤如下 )在 SQL SERVER管理平台中,展开指定的服务器,打开要创建视图的数据库文件夹,选择 指定的数据库,右击该数据库图标,从弹出的 单中依次选择“新建(New)→视图”选项, 如图7-1所示。接着就出现添加表、视图、函数对话框。如图72所示 doubtS ? 函数 规图 [添加)_关闭①) 图7-1选择新建视图选项对话框 图7-2添加表、视图、函数对话框 SQL SERVER2005入门与实例教程电子工业出版社2006
7.1.1利用SQL SERVER管理平台创建视图 利用SQL SERVER管理平台创建视图的具体操作步骤如下: (1)在SQL SERVER管理平台中,展开指定的服务器,打开要创建视图的数据库文件夹,选择 指定的数据库,右击该数据库图标,从弹出的快捷菜单中依次选择“新建(New)→视图”选项, 如图7-1所示。接着就出现添加表、视图、函数对话框。如图7-2所示。 图7-1 选择新建视图选项对话框 图7-2 添加表、视图、函数对话框
7.1.1利用 SQL SERVER管理平台创建视图 2)选择好创建视图所需的表、视图、函数后,通过单击字段左边的复选框 选择需要 段,如图7-3所示。单击工具栏中的“保存”按钮,或者单击鼠 标右键,从快捷菜单中选择保存选项保存视图,输入视图名,即可完成视图 的创建。 图-dh.t1·均要 中所有 选器 100.5, n, dbo.ssex, dbo oN dbo. sc- dbo. c, 0o CROS5 DoIN 图7-3选择视图字段对话框 SQL SERVER2005入门与实例教程电子工业出版社2006
7.1.1利用SQL SERVER管理平台创建视图 (2)选择好创建视图所需的表、视图、函数后,通过单击字段左边的复选框 选择需要的字段,如图7-3所示。单击工具栏中的“保存”按钮,或者单击鼠 标右键,从快捷菜单中选择保存选项保存视图,输入视图名,即可完成视图 的创建。 图7-3 选择视图字段对话框
7.1.2利用 Transact-SQL语句中的 ICREATE VIEW命令创建视图 使用 Transact-SQL语句中的 CREATE VIEV创建视图, 其语法形式如下: CREATE VIEW [schema name. view name [(column n TWITH L. nll AS select statement TWITH CHECK OPTION view attribute KENCRYPTIONISCHEMABINDINGVIEW METADATAY SQL SERVER2005入门与实例教程电子工业出版社2006
7.1.2利用Transact-SQL语句中的CREATE VIEW命令创建视图 使用Transact-SQL语句中的CREATE VIEW创建视图, 其语法形式如下: CREATE VIEW [schema_name.] view_name [(column [,...n])] [WITH [,...n]] AS select_statement [WITH CHECK OPTION] ::= {ENCRYPTION|SCHEMABINDING|VIEW_METADATA}
7.1.2利用 Transact-SQL语句中的 ICREATE VIEW命令创建视图 例7-1选择表s和SC中的部分字段和记录来创建一个视图,并且限制表s中的记录只 能是计算机系的记录集合,视图定义为veWs 程序清单如下 create view view s as select s name, sage, s sex, sc cno, sc score from s sc where s.sno=sc. sno and s.dept='计算机’ 例7-2创建一个视图,使之包含复杂的查询 程序清单如 CREATE VIEW EXampleView WITH SCHEMABINDING AS SELECT sno, SUM(score)AS Sumscore, COUNT() AS CountCol FROM SC GROUP BY sno SQL SERVER2005入门与实例教程电子工业出版社2006
7.1.2利用Transact-SQL语句中的CREATE VIEW命令创建视图 例7-1 选择表s和sc中的部分字段和记录来创建一个视图,并且限制表s中的记录只 能是计算机系的记录集合,视图定义为view_s。 程序清单如下: create view view_s as select s.name,s.age,s.sex, sc.cno,sc.score from s,sc where s.sno=sc.sno and s.dept=’计算机’ 例7-2 创建一个视图,使之包含复杂的查询。 程序清单如下: CREATE VIEW ExampleView WITH SCHEMABINDING AS SELECT sno, SUM(score) AS Sumscore, COUNT(*) AS CountCol FROM sc GROUP BY sno
7.1.2利用 Transact-SQL语句中的 ICREATE VIEW命令创建视图 例7-3创建一个视图,使之包含字符串的运算。 程序清单如下 CREATE VIEW v shyjl(shyxh, shj, xm, jglb, phr, bzh) As Select distinct shyxh, substring(shj, 1,10)++zhi to1 shbshy. xm, to12 shyjl jgIb, to12 shyj l- phr, to 12 shyjl bzh from to1 shbshy, to 12 shyjl where to12 shyjlxm=to1 shbshyxm 其中sh列是从基表中取出两列并和一空字符串相加而得到的 这些都为基表中字段间的灵活运算提供了极大方便,从而使我 可以随心所欲地定制符合自己要求的数据 SQL SERVER2005入门与实例教程电子工业出版社2006
7.1.2利用Transact-SQL语句中的CREATE VIEW命令创建视图 例7-3 创建一个视图,使之包含字符串的运算。 程序清单如下: CREATE VIEW v_shyjl(shyxh, shj, xm, jglb, phr, bzh) AS Select distinct shyxh,substring(shj,1,10)+""+zhi, t01_shbshy.xm,t012_shyjl.jglb,t012_shyjl.phr,t012_shyjl.bzh from t01_shbshy, t012_shyjl where t012_shyjl.xm=t01_shbshy.xm 其中shj列是从基表中取出两列并和一空字符串相加而得到的。 这些都为基表中字段间的灵活运算提供了极大方便,从而使我 们可以随心所欲地定制符合自己要求的数据
7.1.3利用模板创建视图 使用视图模板可以很容易地创建视图,其具体操作步骤如下 1)在sα L SERVER管理平台中,选择vew菜单中的“模板资源管理器”选项,如 图7-4所示。 (2)在岀现的“模板资源管理器”选项中选择“创建视图”选项,如图7-5所示 (3)按照提示输入视图名称, select语句后,执行此语句,即可创建视图 工如心即 已正誉的番① nr6.4-ry6sq要 万升待 Create viev template Chl+t Ctrl+4 园圈工具 USE 其留口D IF object id IN, ,VI IS NOT NULi DROP VIET wier sysname, ToplDcales> CREATE VIEW , Is select statement,, SELECt TOP 10. FROM Sales, salesorder Header ORDER BY TotalDue DESC 图7-4选择工具菜单中的向导命令 图7-5创建视图模板 SQL SERVER2005入门与实例教程电子工业出版社2006
7.1.3 利用模板创建视图 使用视图模板可以很容易地创建视图,其具体操作步骤如下; (1)在SQL SERVER管理平台中,选择view菜单中的“模板资源管理器 ”选项,如 图7-4所示。 (2)在出现的“模板资源管理器”选项中选择“创建视图”选项,如图7-5所示。 (3)按照提示输入视图名称,select语句后,执行此语句,即可创建视图。 图7-4 选择工具菜单中的向导命令 图7-5 创建视图模板
7.2修改、删除和重命名视图 7.2.1修改视图 722重命名视图 72.3查看视图信息、删除视图 SQL SERVER2005入门与实例教程电子工业出版社2006
7.2 修改、删除和重命名视图 7.2.1 修改视图 7.2.2 重命名视图 7.2.3 查看视图信息、删除视图