【MySQL系列】视图特性

「前言」文章内容大致是MySQL事务管理。

「归属专栏」MySQL

「主页链接」个人主页

「笔者」枫叶先生(fy)

MySQL

目录

  • 视图
    • 1.1 视图概念
    • 1.2 创建视图
    • 1.3 修改互相影响
    • 1.4 删除视图
    • 1.5 视图规则和限制

视图

1.1 视图概念

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

注意:这里的视图与上一篇的Read View没有任何关系

1.2 创建视图

准备测试表,雇员信息表
在这里插入图片描述
假设要查询每个员工及其对应的部门名称时,需要使用员工表和部门表进行多表查询,并筛选出员工的部门号等于部门的部门号的记录

select ename, dname from emp,dept where emp.deptno=dept.deptno;

在这里插入图片描述
如果该查询结果会被频繁用到,那我们就可以给上述查询结果创建视图

创建视图语法如下:

create view 视图名 as select语句;

:创建视图时会先执行select语句,然后用查询得到的结果来创建视图

例如,给上面的表创建视图

create view myview as select ename, dname from emp,dept where emp.deptno=dept.deptno;

也是通过show命令查看该表
在这里插入图片描述
视图创建,在数据库对应的目录下,会增加一个对应的xxx.frm文件,但并没有与之对应的xxx.ibd文件,这也证明了视图和基表使用的是同一份数据
在这里插入图片描述
查询视图
在这里插入图片描述

1.3 修改互相影响

修改基表影响视图

在emp表修改名为“CLARK”的名字,改为小写“clark”
在这里插入图片描述
修改后再查询视图,发现视图里面的内容也跟着修改了
在这里插入图片描述

修改视图影响基表

在视图里面修改名为“SIMTH”的名字,改为小写“smith”
在这里插入图片描述
再查询emp表,发现内容也跟着被修改了
在这里插入图片描述
上述实验说明视图与基表共用一份相同的数据

1.4 删除视图

删除视图语法如下:

drop view 视图名;

比如将刚才创建的视图删除后,在数据库中就看不到这个视图了
在这里插入图片描述

1.5 视图规则和限制

  • 与普通表一样,视图的命名也必须是唯一的,不能出现同名视图或表名
  • 创建视图的数目无限制,但要考虑复杂查询创建为视图之后的性能影响
  • 视图不能添加索引,也不能有关联的触发器或者默认值
  • 视图可以提高安全性,在访问视图时必须具有足够的访问权限
  • 创建视图时可以使用order by子句,但如果从该视图检索数据时也含有order by子句,那么该视图中的order by将被覆盖
  • 视图可以和普通表一起使用,比如进行多表查询,内外连接等

以上就是视图的内容,简单了解即可
--------------------- END ----------------------文章来源地址https://www.uudwc.com/A/rZ9dD/

「 作者 」 枫叶先生
「 更新 」 2023.9.11
「 声明 」 余之才疏学浅,故所撰文疏漏难免,
          或有谬误或不准确之处,敬请读者批评指正。

原文地址:https://blog.csdn.net/m0_64280701/article/details/132773679

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年09月15日 02:05
下一篇 2023年09月15日 02:05