【mysql】—— 视图

目录

(一)视图理解

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. 在创建和使用视图时,需要考虑其对性能的影响,因此在许多大公司是不允许用视图的,大家只需知道即可。

相关推荐

  1. MySQL-视图

    2024-01-09 10:00:03       60 阅读
  2. MySQL视图

    2024-01-09 10:00:03       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-09 10:00:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-09 10:00:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-09 10:00:03       82 阅读
  4. Python语言-面向对象

    2024-01-09 10:00:03       91 阅读

热门阅读

  1. 算法训练营Day40(动态规划)

    2024-01-09 10:00:03       64 阅读
  2. 在 PyCharm 中运用 GitHub Copilot 的详细指南

    2024-01-09 10:00:03       56 阅读
  3. 笙默考试管理系统-MyExamTest----codemirror(63)

    2024-01-09 10:00:03       52 阅读
  4. 机器学习 -决策树的案例

    2024-01-09 10:00:03       65 阅读
  5. how2heap-2.23-15-house_of_einherjar

    2024-01-09 10:00:03       67 阅读
  6. 记一次线上报错 GList AddChildAt NullReferenceException

    2024-01-09 10:00:03       45 阅读