数据库优化之创建视图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库优化之创建视图相关的知识,希望对你有一定的参考价值。

     视图是保存在数据库中的SELECT查询,可在视图上执行SELECT语句的大多数命令。创建视图的原因有两个:一是出于安全考虑,用户不必看到整个数据库结构,而隐藏部分数据;二是符合用户日常业务逻辑,使其对数据更容易理解


什么是视图?

    视图是另一种查看数据库中一个或多个表中数据的方法。视图是一个虚拟表,通常由一个或多个表的行和列的子集创建的,它并不是数据库存储的数据值的集合,它的行和列都来自查询引用的表。在执行时,视图直接显示表中的数据。

    定义视图的查询可基于一个或多个表,也可基于其他视图、当前数据库和其他数据库

技术分享图片

视图的作用

* 筛选表中的行

* 防止未经许可的用户访问敏感数据

* 将多个物理数据表抽象为一个逻辑数据表


使用视图的好处

1. 对于最终用户

* 结果更容易理解,可将列名改为有意义的名称

* 获得数据更容易,无需掌握多表查询的T-SQL语句,通过视图即可查看    

2. 对于开发人员

* 限制检索更容易,创建视图时,将对用户保密的列排查在外

* 维护应用程序更方便


创建视图

    在SQL Server中,创建视图有两种方法:使用SSMS和使用T-SQL语句

1. 使用SSMS创建视图

(1)展开数据库,右击视图,选择新建视图

技术分享图片 


(2)选择需要的表,并选择希望查看的列,填写别名,还可以修改下面的T-SQL语句,执行

技术分享图片


(3)最后选择保存,可以像打开普通表一样使用它


2. 使用T-SQL语句创建视图

创建视图的语法如下:

create  view  视图名  as  T-SQL语句


例如:为网络班的学生创建视图,只显示姓名、性别、班级

技术分享图片


使用视图的注意事项

  1. 每个视图中可以使用多个表

  2. 与查询相似,一个视图可以嵌套另一个视图,但最好不要超过三层

  3. 视图定义中的SELECT语句不能包括下列内容

* ORDER BY语句,除非在SELECT语句的选择列表也有一个TOP子句

* INTO关键字

* 引用临时表或表变量




以上是关于数据库优化之创建视图的主要内容,如果未能解决你的问题,请参考以下文章

Oracle性能优化之物化视图管理_超越OCP精通Oracle视频教程培训39

DRF框架serializer之视图优化

mysql高级之编程优化

数据库性能优化之SQL语句优化(上)

数据库性能优化之SQL语句优化1

《数据库优化》- MySQL视图