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

mysql 视图_mysql中常见的视图操作,你理解了吗?

视图算是一个mysql中一个稍微比较高级一点的知识点,它本身就是一个虚拟表,这篇文章从案例出发介绍mysql中的视图。

一、理解视图

还记得在刚刚学习视图的时候,总是和表的概念分不清。我们可以这样来理解。小学的时候,每年都会举办一次抽考活动,意思是从每一个班级里面筛选出几个优秀的同学去参加考试。这时候每一个班级就可以当作是一张真实的表,很多班级筛选出来的这些同学就可以临时组成一个班级,这个班级就可以当作一个视图,也就是说,这个班级其实不是真实存在的,当考试过后,这些学生还是各回各家各找各妈。

mysql从5.1的版本开始有视图功能的,通常情况下,视图是为了封装一些复杂的操作或者是一些重复的操作。比如说在多个地方使用相同的查询结果,再或者是sql语句比较复杂,封装成视图,下一次直接使用即可。

视图的作用:

(1)提高了重用性,对数据库重构,却不影响程序的运行,

(2)提高了安全性,可以对不同的用户,让数据更加清晰,特别是查询操作,减少复杂的SQL语句,

(3)增强可读性;更加安全,数据库授权命令不能限定到特定行和特定列,但是通过合理创建视图,可以把权限限定到行列级别;

二、视图操作

创建视图:

create view 视图名 as select 字段名称 from 表名……;

查看视图:

(1)describe 视图名;

(2)show table status like '视图名'G;

(3)show create view 视图名;

(4)select * from information_schema.views;

修改视图:

create view 视图名 as select 字段名称 from 表名……. ;

alter view 视图名 as select 字段名称 from 表名……;

更新视图:

(1)update 视图名 set 字段名=值;

(2)insert into 表名 values(值,值…);

(3)delete from 视图名 where 字段=值;

删除视图:

drop view if exists 视图名;

下面举个例子看看吧。

三、举例演示

在这里使用的是单表下创建视图

7b8af13c61763e22412ea377d3e405cf.png

在这里新建了一个user表,然后往里面插入了几条数据。下面我们新建一个视图再去使用。

efcb5a516dc7337f16ca5425f9808cd9.png

​现在我们创建了一个视图名字叫做user_view,然后选择了其中几条字段,使用的时候就可以像正常表一样去使用了。在多表情况下创建视图也是一样的,只是在select语句的时候再多表链接查询而已。

相关文章:

  • Windows文件操作的直接函数调用
  • python同名包_python去除rpm仓库中同名低版本的包
  • MOSS2007基础:Windows SharePoint Services 3.0中的Web Part
  • 输入代码自动生成流程图_输入示例,自动生成代码:TensorFlow官方工具TF-Coder已开源...
  • MOSS 2007基础:WSS 3.0 中的母版页(Master Pages)和内容页(Content Pages)
  • recyclerview嵌套recyclerview_阿里3轮面试都问了RecyclerView
  • 更改某用户个人网站的配额设置
  • python语音录音_同时从麦克风录制音频并用python播放
  • 隐藏自定义列表中的某些栏
  • python生成多级文件夹_利用 python 遍历多级文件夹处理不同文件
  • python去除视频中的logo_视频去水印神器(Easy Video Logo Remover)
  • MOSS 2007基础:内容类型(Content Type)
  • python 第三方包自动导入_Python第三方包的导入
  • SharePoint高级内容--访问群体对象模型的开发之一
  • php soap 两个版本_zabbix-第一章-第三节 LNMP之PHP搭建
  • 《深入 React 技术栈》
  • Android 架构优化~MVP 架构改造
  • CentOS从零开始部署Nodejs项目
  • input的行数自动增减
  • JavaWeb(学习笔记二)
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • leetcode讲解--894. All Possible Full Binary Trees
  • mysql外键的使用
  • Octave 入门
  • Python进阶细节
  • Spring Boot MyBatis配置多种数据库
  • SpringBoot 实战 (三) | 配置文件详解
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • SpriteKit 技巧之添加背景图片
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 将回调地狱按在地上摩擦的Promise
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 项目管理碎碎念系列之一:干系人管理
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  •  一套莫尔斯电报听写、翻译系统
  • ​io --- 处理流的核心工具​
  • #QT(智能家居界面-界面切换)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (1)(1.11) SiK Radio v2(一)
  • (附源码)php投票系统 毕业设计 121500
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (四) Graphivz 颜色选择
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)c++ std::pair 与 std::make
  • *Django中的Ajax 纯js的书写样式1
  • ..回顾17,展望18
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET Framework 4.6.2改进了WPF和安全性
  • .Net的C#语言取月份数值对应的MonthName值
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • @RequestBody详解:用于获取请求体中的Json格式参数