MySQL基础教程——视图

[复制链接]
发表于 2026-8-27 19:21:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
@
目录

  • 前言
  • 一、视图的概念
  • 二、视图的根本操作

    • (一)创建视图
    • (二)删除视图

  • 二、视图规则和限制
  • 结语

前言

在了解了事务中的快照Read View后,本期我们来简单介绍MySQL的视图,其能帮助我们在数据库的操作中简化复杂查询、提高数据安全性(隔离性)、保证逻辑数据独立性与重用SQL逻辑。
一、视图的概念

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。
视图的数据变革会影响到基表,基表的数据变革也会影响到视图。
二、视图的根本操作

(一)创建视图

create view 视图名 as select语句;
以下为一个简单案例:
  1. create view v_ename_dname as select ename, dname from EMP, DEPT where EMP.deptno=DEPT.deptno;
  2. select * from v_ename_dname order by dname;
复制代码
效果为:
+--------+------------+
| ename | dname |
+--------+------------+
| CLARK | ACCOUNTING |
| KING | ACCOUNTING |
| MILLER | ACCOUNTING |
| SMITH | RESEARCH |
| JONES | RESEARCH |
| SCOTT | RESEARCH |
| ADAMS | RESEARCH |
| FORD | RESEARCH |
| ALLEN | SALES |
| WARD | SALES |
| MARTIN | SALES |
| BLAKE | SALES |
| TURNER | SALES |
| JAMES | SALES |
+--------+------------+
  1. select emp.ename,dept.dname,dept.deptno from emp,dept where emp.deptno=dept.deptno order by dname;
  2. update v_ename_dname set ename='TEST' where ename='CLARK';
  3. select * from EMP where ename='CLARK';
  4. select * from EMP where ename='TEST';
复制代码
在这我们修改了视图,也会对基表数据产生影响。并且如果我们修改了基表,也会对视图有影响。
  1. update EMP set deptno=10 where ename='JAMES'; -- 修改基表
  2. select * from v_ename_dname where ename='JAMES';
复制代码
效果如下:
+-------+----------+
| ename | dname |
+-------+----------+
| JAMES | RESEARCH |
+-------+----------+
(二)删除视图

drop view 视图名;
二、视图规则和限制


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

以上便是MySQL事务的内容了,十分基础简单。如果喜欢我的内容,请点赞、收藏加关注,多多支持我这个编程小白啊,以及欢迎各位在评论区讨论交流,并指出我的不敷,谢谢大家。

免责声明:如果侵犯了您的权益,请联系站长及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金.
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表