加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

T-SQL查询进阶:视图详解

发布时间:2016-09-27 16:47:45 所属栏目:MsSql教程 来源:站长网
导读:副标题#e# 简介 视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口.常规视图本身并不存储实际的数据,而仅仅存储一个Select语句和所涉及表的metadata. 视图简单的理解如下: 通过视图,客户端不再需要知道底层table
副标题[/!--empirenews.page--]

简介  

视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口.常规视图本身并不存储实际的数据,而仅仅存储一个Select语句和所涉及表的metadata.

视图简单的理解如下:

T-SQL查询进阶:视图详解

通过视图,客户端不再需要知道底层table的表结构及其之间的关系。视图提供了一个统一访问数据的接口。

为什么要使用视图(View)

从而我们不难发现,使用视图将会得到如下好处:

视图隐藏了底层的表结构,简化了数据访问操作

因为隐藏了底层的表结构,所以大大加强了安全性,用户只能看到视图提供的数据

使用视图,方便了权限管理,让用户对视图有权限而不是对底层表有权限进一步加强了安全性

视图提供了一个用户访问的接口,当底层表改变后,改变视图的语句来进行适应,使已经建立在这个视图上客户端程序不受影响

视图(View)的分类

视图在SQL中可以分为三类

普通视图(Regular View)

索引视图(Indexed View)

分割视图(Partitioned View)

下面从这几种视图类型来谈视图

普通视图(Rugular View)

普通视图由一个Select语句所定义,视图仅仅包含其定义和被引用表的metadata.并不实际存储数据。MSDN中创建视图的模版如下:

CREATEVIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ] 
[ WITH <view_attribute> [ ,...n ] ] 
AS select_statement 
[ WITHCHECKOPTION ] [ ; ]

<view_attribute> ::= 
{
    [ ENCRYPTION ]
    [ SCHEMABINDING ]
    [ VIEW_METADATA ]     } 

参数还是比较少的,现在解释一下上面的参数:

ENCRYPTION:视图是加密的,如果选上这个选项,则无法修改.创建视图的时候需要将脚本保存,否则再也不能修改了

SCHEMABINDING:和底层引用到的表进行定义绑定。这个选项选上的话,则视图所引用到的表不能随便更改构架(比如列的数据类型),如果需要更改底层表构架,则先drop或者alter在底层表之上绑定的视图.

VIEW_METADATA:这个是个很有意思的选项.正如这个选项的名称所指示,如果不选择,返回给客户端的metadata是View所引用表的metadata,如果选择了这个选项,则返回View的metadata.再通俗点解释,VIEW_METADATA可以让视图看起来貌似表一样。View的每一个列的定义等直接告诉客户端,而不是所引用底层表列的定义。

WITH Check Option:这个选项用于更新数据做限制,下面会在通过视图更新数据一节解释.

当然了,创建视图除了需要符合上面的语法规则之外,还有一些规则需要遵守:

在View中,除非有TOP关键字,否则不能用Order By子句(如果你一意孤行要用Order by,这里有个hack是使用Top 100 percent…..)

View在每个Schema中命名必须独一无二

View嵌套不能超过32层(其实实际工作中谁嵌套超过两层就要被打PP了-.-)

Compute,compute by,INTO关键字不允许出现在View中

View不能建立在临时表上

View不能对全文索引进行查询

建立View一个简单的例子:

CREATEVIEW v_Test_View1
ASSELECTTOP 100 * FROM HumanResources.Employee

视图建立完成后,就可以像访问表一样访问视图了:

SELECT * FROM v_Test_View1

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读