【14.0】MySQL进阶知识之视图
【一】视图介绍
【1】什么是视图
视图就是通过查询得到一张虚拟表,然后保存下来,下次可以直接使用
视图也是一张表
- 在计算机科学中,视图(View)是一种虚拟表,其内容是一个或多个基本表的查询结果。
- 视图基于数据库中的数据,通过定义查询语句来构建,并在需要时动态地计算数据。
- 与基本表不同,视图不存储实际的数据,而是根据查询语句在使用时进行实时计算。
- 视图可以用于简化复杂查询、隐藏敏感数据、实现数据安全性和完整性约束等。
- 通过定义视图,用户可以从一个或多个基本表中选择所需的列和行,以满足特定的查询需求。
- 用户可以对视图执行与表相同的查询操作,如SELECT、INSERT、UPDATE 和 DELETE。
- 视图可以是虚拟的,也可以是物化的。
- 虚拟视图是基于查询结果的定义,每次查询时都会计算最新的结果。
- 物化视图是基于查询结果的缓存,用于提高查询性能。
- 虚拟视图适用于经常变动的数据,而物化视图适用于查询频繁但数据变动较少的情况。
- 总之,视图是一种查询结果的抽象表示,它提供了一种灵活和安全的方式来访问和操作数据库中的数据。
- 通过使用视图,用户可以根据自己的需求获取所需的数据,而无需直接访问底层的基本表。
【2】为什么要用视图
如果要频繁操作一张虚拟表(拼表组成),就可以制作成视图,后续直接操作
【3】视图的优点
- 简化复杂查询:
- 视图可以对基本表进行复杂的操作,包括连接多个表、过滤条件、聚合函数等。
- 通过定义视图,可以将复杂的查询逻辑封装到一个简单的视图中,使用户能够以更简洁明了的方式进行数据检索。
- 数据安全性:
- 视图可以限制用户对数据的访问权限,通常用于隐藏敏感数据或只提供部分数据给特定的用户。
- 通过定义视图并设置相应的权限,可以保护数据的安全性,防止未经授权的用户访问敏感信息。
- 数据完整性:
- 视图可以用于实现数据完整性约束,即对数据的有效性进行验证。
- 通过定义视图并添加计算列、过滤条件等约束,可以确保所返回的数据满足一定的条件,提高数据的准确性和一致性。
- 逻辑数据独立性:
- 视图使得应用程序与数据之间解耦,即应用程序不需要了解底层表结构的细节。
- 这样,当底层数据库发生变化时(如表结构修改),只需调整底层视图的定义而无需修改应用程序,从而提高系统的可维护性和扩展性。
- 性能优化:
- 物化视图是一种缓存机制,可以将视图的查询结果存储在磁盘上,以提高查询性能。
- 当基本表的数据频繁变动时,物化视图可以减少查询的计算开销和响应时间,提升系统的性能。
【4】总结
- 使用视图可以简化查询操作、保护数据安全性、实现数据完整性、提高系统的可维护性和性能优化。
- 视图提供了一种灵活且安全的数据访问方式,使用户能够根据自身需要方便地获取和操作数据。
【二】如何使用视图
【1】语法结构
create view 视图名(表名) as 虚拟表的查询SQL语句
【2】创建视图
- 首先,您需要使用CREATE VIEW语句创建一个视图。
- 在创建视图时,您需要指定视图的名称以及要查询的源表和过滤条件。
- 例如,下面是一个创建视图的示例语句:
CREATE VIEW my_view AS SELECT column1, column2 FROM my_table WHERE condition;
- 在上述语句中
my_view
是视图的名称my_table
是源表的名称column1
和column2
是要选择的列condition
是过滤条件。
【3】使用视图进行查询
- 一旦视图创建成功,您可以像查询普通表一样使用视图进行数据检索操作。
- 例如,下面是一个使用视图查询数据的示例语句:
SELECT * FROM my_view;
- 上述语句将返回视图
my_view
中的所有数据行。
【4】更新视图
- 如果需要对视图进行更新操作,您可以使用UPDATE语句。
- 注意,不是所有的视图都可以进行更新,只有满足一定条件的视图才支持更新操作。
- 以下是一个更新视图的示例语句:
UPDATE my_view SET column1 = value1 WHERE condition;
- 在上述语句中,
column1
是要更新的列,value1
是要设置的值,condition
是更新条件。
【5】删除视图
- 如果您不再需要某个视图,可以使用DROP VIEW语句将其删除。
- 示例如下:
DROP VIEW my_view;
- 上述语句将删除名为
my_view
的视图。
【三】总结
- 创建视图咋硬盘上只会有表结构,没有表数据
- 表数据还是来自之前的表
- 视图一般只用来查询
- 不建议对视图内的数据进行更改,有可能会对原始数据产生影响
- 视图的使用频率并不高
- 当创建了较多视图后,会造成数据的难以维护
本文来自博客园,作者:Chimengmeng,转载请注明原文链接:https://www.cnblogs.com/dream-ze/p/17995425