数据库

注册

 

发新话题 回复该主题

学习园地数据库视图 [复制链接]

1#
北京白癜风治疗费用 http://pf.39.net/bdfyy/

数据库-视图

1、视图综述

视图是一种常用的数据库对象,它是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在,而且系统也不会在其他任何地方专门为标准视图存储数据。视图所引用的表由行和列数据自由定义,并且在引用视图时动态生成。

对视图所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其他数据库的一个或多个表,或者其他视图。分布式查询也可用于定义使用多个异类源数据的视图。如果有几台不同的服务器分别存储组织中不同地区的数据,而用户需要将这些服务器上相似结构的数据组合起来,这时视图就能发挥作用了。

通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。

视图可以被看做是虚拟表或存储查询。可通过视图访问的数据不作为独特的对象存储在数据库内。数据库内存储的是SELECT语句,SELECT语句的结果集构成视图所返回的虚拟表。用户可以用引用表时所使用的方法,在T-SQL语句中通过引用视图名称来使用虚拟表。在授权许可的情况下,用户还可以通过视图来插入、更改和删除数据。在视图中被查询的表称为基表。

2、视图的作用

1.视图能简化用户操作。

视图机制可以使用户将注意力集中在其所关心的数据上,而且可以简化用户的数据查询操作。例如,对于定义了若干张表连接的视图,就将表与表之间的连接操作对用户隐蔽起来,用户所做的只是对一个虚表的简单查询,而这个虚表是怎样得来的,用户无需了解。

2.视图使用户以多角度看待同一数据。

视图机制能使不同的用户以不同的方式看待同一数据。

3.视图对重构数据库提供了一定程度的逻辑独立性。

4.视图能够对机密数据提供安全保护。

3、视图的操作

一、创建视图

1、在SQLServer中,可以创建标准视图、索引视图和分区视图。

(1)标准视图:标准视图组合了一个或多个表中的数据。一般情况下的视图都是标准视图。

(2)索引视图:索引视图是经过计算并存储的视图。可以为视图创建唯一的聚集索引。索引视图是被物理化的视图,它包含经过计算的物理数据,可显著提高查询的性能。索引视图使用于聚合许多行的查询,不适合需要经常更新的基本数据集。

(3)分区视图:即视图在服务器间连接表中的数据。分区视图用于实现数据库服务器的联合。

2、创建视图有如下限制:

(1)只能在当前数据库中创建视图。

(2)用户创建视图嵌套不能超过32层。

(3)不能把规则、默认值或触发器与视图相关联。

(4)定义视图查询不能包含COMPUTE语句和COMPUTEBY语句。

(5)使用视图查询时,若其关联的基本表中添加了新字段,则必须重新创建视图才能查询到新字段。

(6)如果与视图相关联的表或视图被删除,则该视图将不能再使用。

(一)菜单法

方法:在窗格中,右击该数据库下的—。

(二)命令法

格式:CREATEVIEW视图名[(列名1[,列名2]?)][WITH[ENCRYPTION][SCHEMABINDING]]ASSELECT语句[WITHCHECKOPTION]

说明:

(1)列名是视图中的列名。可以在SELECT语句中指派列名。如果未指定列名,则视图中的列将获得与SELECT语句中的列相同的名称。但在下列三种情况下必须明确指定组成视图的所有列名:

①其中某个目标列不是单纯的属性名,而是函数或列表达式。

②多表连接时选出了几个同名列作为视图的字段。

③需要在视图中为某个列启用新的名字。

(2)WITHENCRYPTION:表示对视图进行加密;

(3)WITHCHECKOPTION:表示对视图进行UPDATE、INSERT和DELETE操作时,要保证所操作的行满足视图定义中的条件。

(4)如果SQL过长的时候,需要写GO,或者有一些语句只能是第一句操作的,在它之前也得写GO,每个被GO分隔的语句都是一个单独的事务,一个语句执行失败不会影响其它语句执行。GO的意思是分批处理语句,不同批处理是分开执行的。有GO,就执行GO行的代码,执行后再执行接下来的代码。

(5)SCHEMABINDING表示视图及表的架构绑定。指定SCHEMABINDNG时不能删除有架构绑定子句创建的表或视图。

二、修改视图

(一)菜单法

方法:在窗格中,右击该视图名——。

(二)命令法

格式:ALTERVIEW视图名[(列名1),(列名2)?][WITH[ENCRYPTION][SCHEMABINDING]]ASSELECT语句[WITHCHECKOPTION]

三、重命名视图

方法:在窗格中,右击该视图名—。

四、使用视图

(一)利用视图查询

(二)使用视图修改数据更新视图包括插入(INSERT)、删除(DELETE)、修改(UPDATE)三类操作。

由于视图不是实际存储的虚表,因此对视图的更新最终要转换为对基表的更新。为防止用户通过视图对数据进行修改、无意或故意操作不属于视图范围内的基本数据时,可在定义视图时加上WITHCHECKOPTION语句,这样在视图上修改数据时,DBMS会进一步检查视图定义中的条件,若不满足条件,则拒绝执行该操作。

五、删除视图

(一)菜单法

方法:在窗格中,右击该视图名—。

(二)命令法

格式:DROPVIEW视图名

说明:一个视图被删除后,由该视图导出的其他视图也将失效,用户应该使用DROPVIEW语句将其一一删除。

六、加密视图

当由于安全考虑,要求视图定义对于用户不可见时,可以在定义视图时使用加密语句WITHENCRYPTION。

上期回顾:

渗透测试-漏洞扫描篇02

数据库-索引

渗透测试-漏洞扫描篇01

渗透测试-信息收集篇03

数据查询-连接查询

渗透测试-信息收集篇02

数据查询-简单查询

渗透测试-信息收集篇01

数据库中表的操作

SQLServer表概述

渗透测试流程

维护数据库

开源蜜罐平台T-pot

创建数据库

SQLServer安装与使用

SQL注入专题(三)

SQLServer数据库的基本知识与概念

SQL注入专题(二)

SQL注入专题(一)

SQLServer概述

主流数据库

属于自己的CTF训练场—CTFd平台

Docker容器

数据库设计

企业SRC搭建

关系数据库

初识数据库

自己动手搭建私有云笔记+博客平台

预览时标签不可点收录于话题#个上一篇下一篇
分享 转发
TOP
发新话题 回复该主题