SqlServer视图介绍以及创建方式
1,视图的介绍:
(ps:学sqlServer视图是在面试问到之后学的,答不上来太low了,然后就去各种搜索操作对视图也有了自己的理解)
其实视图就是一张虚拟表,视图的结构来自基本表是,一张基本表或多张基本表中经过单表查询或多表查询显示的数据可以创建视图,
我们可以选择重要的数据不展示,视图是可以进行增删改查的,一般我们所开发的功能都是对基表进行,操作基表改变随着视图也进
行改变,所以不允许用户直接对视图进行操作保证数据的安全性,但是我们可以。
1.1,视图的作用:
- 视图隐藏了底层的表结构,简化了数据访问操作,客户端不再需要知道底层表的结构及其之间的关系。youshh
- 视图提供了一个统一访问数据的接口。(即可以允许用户通过视图访问数据的安全机制,而不授予用户直接访问底层表的权限)
- 从而加强了安全性,使用户只能看到视图所显示的数据。
- 视图还可以被嵌套,一个视图中可以嵌套另一个视图。
2,创建视图的语法:
2.1,视图的创建,删除,查看:
数据库视图情况:
2.2,对视图进行修改:
3,往视图中插入数据
视图除了进行查询记录外,也可以利用视图进行插入、更新、删除记录的操作,减少对基表中信息的直接操作,提高了数据的安全性。
在视图上使用INSERT语句添加数据时,要符合以下规则。
(1)使用INSERT语句向数据表中插入数据时,用户必须有插入数据的权利。
(2)由于视图只引用表中的部分字段,所以通过视图插入数据时只能明确指定视图中引用的字段的取值。而那些表中并未引用的字段,必
须知道在没有指定取值的情况下如何填充数据,因此视图中未引用的字段必须具备下列条件之一。
该字段允许空值。
该字段设有默认值。
该字段是标识字段,可根据标识种子和标识增量自动填充数据。
该字段的数据类型为timestamp或uniqueidentifier。
(3)视图中不能包含多个字段值的组合,或者包含使用统计函数的结果。
(4)视图中不能包含DISTINCT或GROUP BY子句。
(5)如果视图中使用了WITH CHECK OPTION,那么该子句将检查插入的数据是否符合视图定义中SELECT语句所设置的条件。如果插入的数据不符合该条件,SQL Server会拒绝插入数据。
(6)不能在一个语句中对多个基础表使用数据修改语句。因此,如果要向一个引用了多个数据表的视图添加数据时,必须使用多个INSERT语句进行添加。
PS:
- 视图不能包含 ORDER BY 子句,除非SELECT语句的选择列表中还有一个 TOP 子句。
- 视图不能使用 INTO 关键字。视图不能包含 OPTION 子句。
- 视图不能有对临时表或表变量的引用。视图最多可以有 1024 列。
作者: 屢敗屢戰
出处: https://www.cnblogs.com/joeyJss/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接;
如有问题可咨询邮箱: 1824293259@qq.com