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

简单描述mysql视图的概念_介绍mysql中视图的概念及操作

概念

视图是一种虚拟存在的表,对于使用视图的用户来说,基本上跟使用正常的表一样。视图在数据库中是不存在的,视图中的数据是动态生成的。

视图相对于普通表的优势:简单:使用视图不需要关心后面的表的对应结构条件,对于使用者来说,视图是过滤好的结果集。

安全:使用者只能访问他们被允许查询的结果集。

数据独立:一旦视图结构确定,对实际表的改变对视图使用者是没有影响的。

视图操作

视图操作分为创建视图、修改视图、删除视图、查看视图定义。

创建视图,修改视图#创建视图

create [or replace] [algorithm={undefined|merge|temptable}]

view view_name[(column_list)]

as select_statement

[with[cascaded|local] check option]

# 修改视图

alter [algorithm={undefined|merge|temptable}]

view view_name[(column_list)]

as select_statement

[with[cascaded|local] check option]

举例:create view view_test as

select t1.sid,t1.username,t2.department

from test1 t1 left join test2 t2 on t1.sid=t2.sid;

64f40582643d4a1b4f0af5e8f556e4d1.png

创建视图

说明:from关键字后面不能包含子查询;

不能更新的视图:包含聚合函数/group/distinct/having/union,常量视图,select中包含子查询,jion,from一个不能更新的视图,where中子查询引用from子句中的表。

with[cascaded|local] check option 绝对是否允许更新数据使记录不再满足视图条件。其中local-只需满足本视图条件就可以更新、cascaded-必须满足所有针对该视图的所有视图的条件才可以更新。默认为cascaded。

查看视图数据

同普通表select * from view_test;

2fc0ad17b2abca2bb0a7876041e49ed6.png

查看视图数据

删除视图#删除视图

drop view [if exists] view_name [,view_name2]...[restrict|cascade]

#举例

drop view view_test;

查看视图状态

从MySQL5.1开始,使用show tables命令的时候不仅显示表名还显示视图名称。

【相关推荐】

1. 免费mysql在线视频教程

2. MySQL最新手册教程

3. 数据库设计那些事

相关文章:

  • java web 与asp.net_JavaWeb与Asp.net工作原理比较分析
  • java 对象序列化磁盘_java对象的序列化以及反序列化详解
  • java --help_java help
  • java linux 接口_理解Java中的接口
  • java dns 缓存_Java DNS解析缓存的过期策略配置
  • java 二叉树图形_java实现二叉树以及实例
  • java tree的使用_Java TreeSet的使用
  • java矩形_JAVA实现矩形(长方形)的周长面积计算
  • phymeleaf 除取整_【Bug档案01】Spring Boot的控制器+thymeleaf模板 -使用中出现静态资源加载路径不当的问题 -解决时间:3h...
  • python 矩阵乘法梯度下降_使用python numpy矩阵类的梯度下降
  • oracle 存储过程调用java_oracle 存储过程调用java一
  • java春天_java – 春天的Aspectj
  • java开发微信设计论文_集客微信公众号: 本科毕业设计:基于WxJava框架的集客微信公众号的设计与实现...
  • java 判断是不是英文怎么说_java判断一个字符串是中文还是英文
  • linux+mysql运算符_MySQL 运算符
  • 【笔记】你不知道的JS读书笔记——Promise
  • 2019年如何成为全栈工程师?
  • CentOS 7 修改主机名
  • es6(二):字符串的扩展
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • JavaScript创建对象的四种方式
  • jdbc就是这么简单
  • js作用域和this的理解
  • Koa2 之文件上传下载
  • rabbitmq延迟消息示例
  • Sublime text 3 3103 注册码
  • Swift 中的尾递归和蹦床
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 百度地图API标注+时间轴组件
  • 我与Jetbrains的这些年
  • 一个项目push到多个远程Git仓库
  • 在weex里面使用chart图表
  • puppet连载22:define用法
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (3)llvm ir转换过程
  • (9)STL算法之逆转旋转
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (过滤器)Filter和(监听器)listener
  • (一)RocketMQ初步认识
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • .Net 6.0 处理跨域的方式
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NetCore 如何动态路由
  • .Net多线程总结
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • ::before和::after 常见的用法
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [2019.2.28]BZOJ4033 [HAOI2015]树上染色
  • [AutoSar]BSW_OS 02 Autosar OS_STACK
  • [AutoSar]工程中的cpuload陷阱(三)测试
  • [C++]模板与STL简介