mysql---视图
视图是一张虚拟的表,并没有实际存储数据,存储的是一种“函数关系”。
语法:
create view 视图名 as select语句。
为什么说视图存储的是一种函数关系?
当引用视图时,它会依据这样的关系到创建视图的各个表中去寻找相关字段。并依照这样的关系进行运算得到结果。所以视图不须要存储数据,仅仅须要存储这样的“函数关系”。
如表1是记录长方形长的表
长(cm) |
10 |
如表2是记录长方形宽的表
宽(cm) |
20 |
如今创建一个视图用来求长方形面积
面积 |
长*宽 |
当须要引用视图的时候,视图会依照函数关系“面积=长*宽”到表1和表2中取数据运算得到所需结果。实际上视图并没有存储每一个长方形的面积。
以上表设计不严谨仅仅是为了说明问题。
表改变会改变视图吗?
由于是函数关系f(x,y)。当x或者y有一个变化时。f(x,y)的值一定会变化。x和y相当于创建视图的表,f(x,y)相当于视图。
创建一张学生成绩表
各个字段分别代表“学生ID”。“数学成绩”,“语文成绩”。“英语成绩”。
如今创建一个求各个学生平均成绩的视图
对表做一下修改,看看视图会不会跟着一起变化
再看看视图的内容
视图的确变化了。所以表的变化一定会影响视图。
视图改变会改变表吗?
这不一定。假设视图和表是以一个相应的,即f(x,y)能够反得到x,y(类似反函数关系)。
这样的情况下。视图改变会影响原有表。
对于求平均成绩的视图,无法由平均成绩得到各科的成绩,所以他们不是一一相应关系,这样的情况Mysql不同意改变视图。
视图有三种实现方式
merge:引用视图时。将引用时的条件与创建视图时的条件合并。构成新的查询语句去各个表中查询。
以之前的平均分视图为例。红色划线为创建视图的查询语句
如今要求平均分前三高的学生,能够直接引用视图来查询
假设algorithm设置为merge
实际的操作是将这两次的查询条件合并相当于
temptable:引用视图时。先依照创建视图的条件查询各个表,将结果生成暂时表,再对暂时表进行查询。
undefined:数据库默认undefined,由数据库依据情况决定用merge还是temptable。
视图的作用
(1)方便操作:假设要经经常使用到某个暂时表时,比方上面的平均分视图。假设未定义视图,每次都须要求平均分暂时表。再去对暂时表进行查询。有视图就非常方便。直接查询视图就能够了。
(2)安全考虑:假设两个公司合作,须要开放两方的一些用户信息,可是又不想发布一些涉及隐私或机密的信息(如用户password)。能够生成不包括password字段的视图给对方。对方直接使用视图就可以满足要求。
mysql---视图相关推荐
- 【数据库优化专题】MySQL视图优化(一)
本期数据库优化专题分享,为大家带来的是DBA+社群MySQL领域原创专家--李海翔所著的MySQL视图优化系列文章.以下是第一部分的内容,未完部分敬请关注后续更新. 专家简介 李海翔 网名:那海蓝蓝 ...
- mysql视图登录_mysql视图
mysql视图机制 什么是视图 视图是一张虚拟的表,为什么是虚拟呢?因为视图与数据库中存在的表不太一样,前面我们创建的4张表都是包含数据的, 如用户信息,订单信息等,而视图则是不包含数据的,下面通过一 ...
- mysql test 映射到实体_将MySql视图映射到JPA Entitites,使用哪个唯一...
我不认为有一种标准方式,但这种方法似乎值得尝试. 想法是为视图动态生成唯一的"id"值(类似于rownum).来自Create a view with column num_row ...
- 1、MySQL视图是什么?
MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中.行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的. 数据库中 ...
- mysql 视图操作和存储过程
1.mysql 视图的操作是在新版本数据库才支持的,视图操作的好处是可以简化数据库的查询,特别是一些经常查询的数据表我们可以先创建一个视图,以后要在查询这个类式 的数据表时候,就可以直接查询该视图.这 ...
- MYSQL视图用户管理
MYSQL视图 文章目录 MYSQL视图 1. 基本使用 2. 视图规则和限制 用户管理 1. 用户 2. 数据库的权限 视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列 ...
- mysql 视图怎么调用方法_mysql 视图的使用
mysql视图的作用(详细) 测试表:user有id,name,age,sex字段 测试表:goods有id,name,price字段 测试表:ug有id,userid,goodsid字段 视图的作用 ...
- mysql视图实现的_mysql视图是什么?怎么实现?
mysql视图是什么?怎么实现? 发布时间:2020-05-21 18:00:24 来源:亿速云 阅读:152 作者:鸽子 视图本身是一张虚拟表,不存放任何数据.在使用SQL语句访问视图的时候,获取的 ...
- mysql 视图 数据相加_MySQL
查看安装路径 ps -ef|grep mysql 1,配置linux虚拟机,修改IP ????? vim /etc/sysconfig/network-scripts/ifcfg-eth0 2,配置完 ...
- mysql 视图 教程_MySQL视图简介及基本操作教程
前言 视图是数据库系统中一种非常有用的数据库对象.MySQL 5.0 之后的版本添加了对视图的支持. 认识视图 视图是一个虚拟表,其内容由查询定义.同真实表一样,视图包含一系列带有名称的列和行数据,但 ...
最新文章
- 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET平台开发指南 - 实现插件...
- 对于jQuery的初步印象
- 5种JavaScript中常用的排序方法
- Game with Telephone Numbers
- python流式下载处理_流式下载 - 对象存储 OSS - 阿里云
- 开发者需要理解的分布式原语
- java frame清除控件_java – 清除JFrame的组件并添加新组件
- DM***+OSPF测试
- JavaScript:单选钮的事件处理
- repo一个新工程使用步骤
- 使用html查看dicom,使用LEADTOOLS HTML5 Medical Viewer从任何地方查看DICOM图像教程
- 使用linux提交pbs任务:运行matlab或perl程序
- python矩阵转置_矩阵转置python
- 出租屋宽带网络解决方案
- 数据库--db-sjk-Mysql-必须看-复制一张表
- GitHub中开启二次验证Two-factor authentication,如何在命令行下更新和上传代码
- 你的孤独,正在撑起一个万亿级市场
- 2019年应届生校招技面随笔
- matlab直流电机初始转速,直流电机转速控制的matlab实验.doc
- websocket ws + wss 通信
热门文章
- 如何让采集的数据比原创还要原创!
- 键盘映射软件_KOMPLETE KONTROL M32 键盘 MIDI 控制器的评测
- 这些实验好习惯科研小白一定要先养成!
- 医学工作者如何进行医学科研设计?
- 第十天学习Java的笔记(数组)
- linux命令行终端全局反色
- 转载:c+string类详解
- JavaSE(八)——StringBuffer类、Arrays类、数组排序
- java spring异常处理_Java深入 - Spring 异常处理HandlerExceptionResolver
- menu什么意思中文意思_vigorous什么意思