当前位置: 首页 > news >正文

【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 ----------------------

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

相关文章:

  • 管理类联考——数学——汇总篇——知识点突破——应用题——最值问题
  • 学习SpringMvc第二战之【SpringMVC之综合案例】
  • 【算法日志】单调栈: 单调栈简介及其应用
  • VSCode自动分析代码的插件
  • 设计模式之外观模式
  • Web端测试和 App端测试有何不同?
  • 12.(Python数模)(相关性分析一)相关系数矩阵
  • 系统架构设计师(第二版)学习笔记----嵌入式系统及软件
  • Python列表操作指南:索引、切片、遍历与综合应用
  • 第15章_锁: MySQL并发访问相同记录以及从数据操作的类型划分锁(读锁、写锁)
  • PHP 排序函数使用方法,按照字母排序等操作
  • windows本地验证码识别工具
  • 修改图片尺寸的几个简单方法
  • 三、GoLang字符串的基本操作
  • 基于vue-cli创建后台管理系统前端页面——element-ui,axios,跨域配置,布局初步,导航栏
  • 在 ubuntu20.04 上安装 Pytorch
  • 远程恋爱网站部署秘籍——群晖虚拟机助ni秀恩爱
  • vscode c++解决包含头文件红色波浪线问题
  • PostgreSQL docker compose安装配置
  • 电脑文件批量重命名:高效操作技巧
  • c高级day4(shell)
  • 整十粉丝庆祝文章系列内容征集建议
  • 两数乘积:输出1~100整数乱序列表中两数乘积是目标整数的最小下标对
  • 【JavaSE】面试01
  • Elasticsearch(二)kibana数据检索
  • JavaScript编程语法作业
  • 服务器中了Malloxx勒索病毒应该怎么办?勒索病毒解密,数据恢复
  • 如何实现Spring的事务管理功能:@Transactional声明式事务
  • LeetCode(力扣)122. 买卖股票的最佳时机 II
  • 串行通信协议