视图.docx
- 文档编号:9639615
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:14
- 大小:227.15KB
视图.docx
《视图.docx》由会员分享,可在线阅读,更多相关《视图.docx(14页珍藏版)》请在冰豆网上搜索。
视图
视图及其应用
要点
●视图的概念
●视图的创建
●视图的维护
视图的概念
1.基本概念
视图具有将预定义的查询作为对象存储在数据库中的能力,便于以后使用。
在视图中查询的表称为基表
一般来说,可以将任何SELECT语句作为视图进行命名和存储。
视图由SELECT语句构成的,其内容是通过选择查询来定义的。
称它是虚拟表,是因为它看起来像一个表,由行列组成,而且可以像表一样作为SELECT语句的数据来源来使用。
但它所对应的数据并不实际存储在数据库中,数据库只存储视图的定义,即视图是从哪个或哪些基表(或视图)导出的,视图不生成所选数据库行和列的永久拷贝,其中的数据是在引用视图时动态生成的。
当基表中的数据发生变化时,可以从视图中直接反映出来。
当对视图执行更新操作时,其实操作的是基表中的数据,所以可以通过视图查看基表中的数据,也可以通过视图更改基表中的数据。
视图的常见实例如下:
●一个基表的行或列的子集
●两个或多个表的合并
●两个或多个表的联接
●一个基表的统计摘要
●另一个视图或视图和基表组合的子集
对其中所引用的基础表来说,视图的作用类似于筛选。
定义视图的筛选可以来自当前或其他数据库的一个或多个表,或者其他视图。
分布式查询也可用于多个定义使用多个异类源数据的视图。
如果有几台不同的服务器分别存储在不同地区的数据,而用户需要将这些服务器上相似结构的数据组合起来,这种方式就很有用。
2.视图的特点
a)为用户聚合数据
视图允许用户访问指定的数据,而其他的数据对用户来说是不可见的,对用户只显示特定数据,不需要的、敏感的或不合适的数据不引入视图。
这样就只关注于重要的或适当的数据,限制对敏感数据的访问。
b)降低数据库设计的复杂性
开发者可修改设计而不影响用户与数据库的交互。
同时,视图提供给用户更好的界面,简化复杂的查询,包括对异构数据的分布查询。
用户直接查询视图,而不需要写查询语句或执行脚本。
c)简化用户权限管理
不必对用户赋予查询基表中特定的权限,而只需要赋予用户查询视图的权限即可。
d)改进性能
视图允许存储复杂的结果,让其他查询直接使用。
视图也允许分区数据,可将单独的分区放置于分散的计算机内。
e)组织数据以便导出到其他应用程序
可基于联接两个或多个表的复杂查询创建视图,并将数据导出到其他应用程序以进行更深入的分析。
视图的创建
一、使用CREATEVIEW创建视图
语法格式:
CREATEVIEW视图名[(视图列名1,视图列名2,……,视图列名n)]
[WITHENCRYTION]
AS
SELECT语句
[WITHCHECKOPTION]
●视图列名表示生成视图中的各列的名称,当该参数省略时,以基表中相应的列名作为视图的别名
●WITHENCRYTION子句表示SQLServer对包含CREATEVIEW语句的文本进行加密。
视图的定义信息是存储在syscomments系统表中的,如果使用该选项,则对syscomments中的视图定义加密,从而使视图的定义不被他人查看
●SELECT语句可以使用不同数据库中的一个或多个表或其他视图
●WITHCHECKOPTION子句表示对视图执行的所有数据修改操作都必须遵守定义视图的SELECT语句中的WHERE子句所指定的条件。
创建一个带WITHCHECKOPTION参数的视图view1,其内容是所有价格低于20元的书信息。
USElibrary
GO
CREATEVIEWview1
AS
SELECT*FROMbooksWHERE价格<20
WITHCHECKOPTION
GO
INSERTview1VALUES('网站建设','李二','大象',2,2002-10-1,2002-12-1,27)
GO
创建一个带WITHCHECKOPTION参数的视图view2,其内容是所有价格低于20元的货品信息。
USElibrary
GO
CREATEVIEWview2
WITHENCRYPTION
AS
SELECT*FROMbooksWHERE价格<20
Go
创建一个对books表中书的分类“类”列,按“书类”进行分组求各分类的书的数量的视图booksum,视图由“类编号”和“图书数量”2列组成。
USElibrary
GO
CREATEVIEWbooksum(类编号,图书数量)
AS
SELECT类编号,Count(图书编号)FROMbooksGROUPBY类编号
GO
二、使用企业管理器创建视图
下面以创建视图view3为例,讲解使用企业管理器创建视图的操作,视图view3要求从books,borrow和readers3个表中检索价格大于30的图书,以及借阅该书的读者姓名,借阅日期和价格信息
1)在打开的企业管理器,依次展开服务器组,服务器,数据库节点,选择要创建的数据库Library。
在“视图”上单击鼠标右键/新建视图
2)在“查询设计器”窗口中选择基表,工具栏中选“添加表”按钮添加Books,Borrow和Readers/添加/关闭
3)第一窗口Books:
选“图书名”和价格;第二窗口Borrow:
选“借阅日期”,第三窗口Readers:
选“姓名”
4)设价格规则为:
>20
5)查询语句:
SELECTdbo.Readers.姓名,dbo.Books.图书名,dbo.Books.价格,dbo.Borrow.借阅日期
FROMdbo.Books
INNERJOINdbo.Borrow
ON
dbo.Books.图书编号=dbo.Borrow.图书编号
INNERJOINdbo.Readers
ON
dbo.Borrow.读者编号=dbo.Readers.读者编号
WHERE(dbo.Books.价格>20)
6)运行:
!
7)保存
8)企业管理器中查询结果:
视图/右键/打开视图/返回所有行
9)查询分析器中查询
UseLibrary
Select*Fromview1
视图的维护
一、查看视图的定义信息
1、查看视图的基本信息
1)使用sp_help查看视图的基本信息语法格式:
[EXECUTE]sp_help视图名
显示视图View2的基本信息
USElibrary
GO
Sp_helpview2
2)使用企业管理器查看视图的基本信息
企业管理器/数据库/视图
2、查看视图的定义信息
1)使用sp_help查看视图的基本信息语法格式:
[EXECUTE]sp_helptext视图名
查看视图booksum的定义语句
USElibrary
GO
Sp_helptextbooksum
2)使用企业管理器查看视图的基本信息
企业管理器/数据库/视图/右键/属性/检查语法(对视图定义代码进行修改)
3、查看视图与其他数据库对象之间的依赖关系
如果想知道视图中的数据来源于哪些数据对象,哪些数据对象引用了视图中的数据,则需要查看视图与其他数据对象之间的依赖关系
1)使用sp_depends查看视图的依赖关系
语法:
[EXECUTE]sp_depends视图名
查看booksum视图与其他数据库对象之间的依赖关系
USElibrary
GO
Sp_dependsbooksum
2)使用企业管理器查看视图的依赖关系
查看视图的依赖关系
●企业管理器/数据库/视图/选择要查看的视图/右键/所有任务/显示相关性
二、修改视图
1)使用企业管理器查看视图的基本信息
修改视图
企业管理器/视图/选修改视图/右键/设计视图/“视图设计器”/添加表、删除引用、添加引用、输出、准则(where子句)、分组(having子句)…
2)使用企业管理器查看视图的基本信息
使用ALTERVIEW语句修改视图
语法格式:
ALTERVIEW视图名
[WITHENCRYPTION]
AS
SELECT语句
[WITHCHECKOPTION]
在Library示例数据库中建立一个名为v-reader的视图,然后用ALTERVIEW语句修改这个视图,在修改以后的视图中要求使用中文表示视图的字段名并加上WHTHENCRYPTION子句和WITHCHECKOPTION子句。
USElibrary
GO
CREATEVIEWv_readers
AS
SELECT读者编号,姓名,类编号,工作单位,住址,联系电话,登记日期FROMreaders
GO
ALTERVIEWv_readers(读者编号,姓名,类编号,工作单位,住址,联系电话,登记日期)
WITHENCRYPTION
AS
SELECT读者编号,姓名,类编号,工作单位,住址,联系电话,登记日期FROMreaders
WITHCHECKOPTION
GO
三、重命名视图
1)使用企业管理器修改视图的名称
企业管理器/数据库/视图/右键/重命名/输入视图的新名称
2)用系统存储过程修改视图的名称
语法格式:
Sp_rename[@object_name=]’object_name’,[@newname=]’new_name’
USELibrary
GO
sp_rename‘view3’,‘newview’
四、删除视图
1)使用企业管理器修改视图的名称
企业管理器/数据库/视图/右键/删除/全部除去
2)用系DROPVIEW语句删除视图
语法格式:
DROPVIEW视图名[…n]
删除Library数据库中的视图view3
USElibrary
GO
DROPVIEWview3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 视图