什么是视图?

在数据库中由于很多数据是用表来存的,简单的理解视图就是将多个表的数据进行整合然后构成一个新表,这个新表就是视图。但是视图本质上是一种虚拟表,在物理上是不存在的,其内容与真实的表相似,包含一系列带有名称的列和行数据。所以视图起到一个过滤数据的作用,使开发者是关注自己需要的某些特定数据和所负责的特定任务,只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高了数据库中数据的安全性。

视图有哪些特点?

  • 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。
  • 视图是由基本表(实表)产生的表(虚表)。
  • 视图的建立和删除操作对基本表不产生影响。
  • 当视图来自多个基本表时,不允许添加和删除数据。
  • 对视图的内容进行添加,删除或修改操作将直接影响基本表。

视图的作用?

视图的作用:简化sql查询,提高开发效率。

视图的使用场景?

  • 重用SQL语句;
  • 简化复杂的SQL操作。在编写查询后,可以方便的重用它而不必知道它的基本查询细节;
  • 使用表的一部分而不是使用整个表;
  • 保护数据,可以给用户授予表的特定部分的访问权限而不是整个表的访问权限;
  • 更改数据的格式和表示,视图可以返回与底层表的表示和格式不同的数据。

- 视图的优点

  1. 使查询简单化,视图能简化用户的操作
  2. 数据安全性,视图使用户能以多种角度看待同一数据,能够对机密数据提供安全保护
  3. 逻辑数据独立性,视图对重构数据库提供了一定程度的逻辑独立性

视图的缺点

1.性能方面 : 数据库必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,数据库也把它变成一个复杂的结合体,可能会降低性能。
2. 修改限制方面: 当用户试图修改视图的某些行时,数据库必须把它转化为对基本表的某些行的修改。所以当从视图中插入或者删除时,情况也是这样。所以在对于比较复杂的视图,可能是不可修改的。