【mysql】—— 视图

2024-01-08 17:27:45

目录

(一)视图理解

1、基本使用

1.1创建视图??

1.2 修改视图?

1.3?删除视图

2、视图规则和限制

(二)小结


(一)视图理解

在 MySQL 中,视图(View)是虚拟的表其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。

  • 上述我们了解了视图的基本概念,接下来我们就需要动手实践一番。?

1、基本使用

1.1创建视图??

create view 视图名 as select语句;
  • 当前我们需要在表中筛选得到以下信息(该测试表为 oracle 9i?):

但是,当我们下次在想查看到当前数据时又需要进行复杂的操作,那么有没有一种方法可以解决这样的问题,避免繁琐的操作呢? ——此时就可以通过创建?视图?的方式来合理避免。

  • ?同时,我们也可以新起一个窗口可以发现创建之后多出了一个文件:

  • 我们去验证查看当前【myviem】中的数据是不是之前的数据:?

?


1.2 修改视图?

在 MySQL 中,修改视图可能会对依赖该视图的查询或应用产生影响,具体的影响取决于所做的修改。

修改了视图,对基表数据有影响 :

  • 此时,我们再去原表查询看是否原数据被修改:

?


修改了基表,对视图有影响:?

  • 此时,我们再去视图查询看是否数据被修改:

在进行任何修改之前,建议进行充分的测试,并确保修改不会破坏现有的查询逻辑。可以使用事务来包装修改操作,以便在出现问题时可以回滚到修改前的状态。?


1.3?删除视图

drop view 视图名;

?


2、视图规则和限制

  1. 与表一样,必须唯一命名(不能出现同名视图或表名)
  2. 创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响
  3. 视图不能添加索引,也不能有关联的触发器或者默认值
  4. 视图可以提高安全性,必须具有足够的访问权限
  5. order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图 中的 order by 将被覆盖
  6. 视图可以和表一起使用

?


(二)小结

  1. 要注意的是,在处理大量数据或复杂查询时,使用视图可能会影响性能,因为每次查询视图时都要重新执行其基础的查询;
  2. 在创建和使用视图时,需要考虑其对性能的影响,因此在许多大公司是不允许用视图的,大家只需知道即可。

文章来源:https://blog.csdn.net/m0_56069910/article/details/135458312
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。