一、视图的概念

视图(view)是一个从单张或多张基础数据表或其他视图中构建出来的虚拟表。同基础表一样,视图中也包含了一系列带有名称的列和行数据,但是数据库中只是存放视图的定义,也就是动态检索数据的查询语句,而并不存放视图中的数据,这些数据依旧存放于构建视图的基础表中,只有当用户使用视图时才去数据库请求相对应的数据,即视图中的数据是在引用视图时动态生成的。因此视图中的数据依赖于构建视图的基础表,如果基本表中的数据发生了变化,视图中相应的数据也会跟着改变。

PS:视图本质上就是:一个查询语句,是一个虚拟的表,不存在的表,你查看视图,其实就是查看视图对应的sql语句

二、视图的好处

简化用户操作:视图可以使用户将注意力集中在所关心地数据上,而不需要关心数据表的结构、与其他表的关联条件以及查询条件等。

对机密数据提供安全保护:有了视图,就可以在设计数据库应用系统时,对不同的用户定义不同的视图,避免机密数据(如,敏感字段“salary”)出现在不应该看到这些数据的用户视图上。这样视图就自动提供了对机密数据的安全保护功能

三、SQL展示

1、创建/替换单表视图

create or replace view 视图名称 as:创建视图

create or replace view myview1_1
as
select empno,ename,job,comm,deptno
from emp
where deptno=10
with check option;

查看视图
select * from 视图名称:查看视图

select * from myview1_1

在视图中插入数据

insert into myview1_1 (empno,ename,job,comm,deptno) values (7778,'love','MANAGER',1212,10)

运行后:插入成功

insert into myview1_1 (empno,ename,job,comm,deptno) values (7779,'love1','MANAGER',1212,20)

运行后:1369 - CHECK OPTION failed ‘mytestdb.myview1_1’
只能插入部门为10的同事,插入其他的部门同事会报错

insert into myview1_1 (empno,ename,job,comm,deptno,sal) values (7779,'love1','MANAGER',1212,20,5000)

运行后:1054 - Unknown column ‘sal’ in ‘field list’
插入视图中不存在的字段信息,也会报错

2、创建/替换多表视图

create or replace view myview2
as
select e.empno,e.ename,e.sal,d.deptno,d.dname
from emp e
inner join dept d
on e.deptno=d.deptno
where sal>2000

多表视图:

查看多表视图

select * from myview2_1

3、创建统计视图

create or replace view myview3_1
as
select e.empno,e.ename,avg(sal),min(sal),max(sal)
from emp e
inner join dept d
on e.deptno=d.deptno
group by e.deptno

统计视图为:

4、创建基于视图的视图

create or replace view myview4_1
as
select * from myview2_1 where deptno=10

myview2_1视图为:

myview4_1视图为:

MySQL—视图(一)相关推荐

  1. 【数据库优化专题】MySQL视图优化(一)

    本期数据库优化专题分享,为大家带来的是DBA+社群MySQL领域原创专家--李海翔所著的MySQL视图优化系列文章.以下是第一部分的内容,未完部分敬请关注后续更新. 专家简介 李海翔 网名:那海蓝蓝 ...

  2. mysql视图登录_mysql视图

    mysql视图机制 什么是视图 视图是一张虚拟的表,为什么是虚拟呢?因为视图与数据库中存在的表不太一样,前面我们创建的4张表都是包含数据的, 如用户信息,订单信息等,而视图则是不包含数据的,下面通过一 ...

  3. mysql test 映射到实体_将MySql视图映射到JPA Entitites,使用哪个唯一...

    我不认为有一种标准方式,但这种方法似乎值得尝试. 想法是为视图动态生成唯一的"id"值(类似于rownum).来自Create a view with column num_row ...

  4. 1、MySQL视图是什么?

    MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中.行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的. 数据库中 ...

  5. mysql 视图操作和存储过程

    1.mysql 视图的操作是在新版本数据库才支持的,视图操作的好处是可以简化数据库的查询,特别是一些经常查询的数据表我们可以先创建一个视图,以后要在查询这个类式 的数据表时候,就可以直接查询该视图.这 ...

  6. MYSQL视图用户管理

    MYSQL视图 文章目录 MYSQL视图 1. 基本使用 2. 视图规则和限制 用户管理 1. 用户 2. 数据库的权限 视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列 ...

  7. mysql 视图怎么调用方法_mysql 视图的使用

    mysql视图的作用(详细) 测试表:user有id,name,age,sex字段 测试表:goods有id,name,price字段 测试表:ug有id,userid,goodsid字段 视图的作用 ...

  8. mysql视图实现的_mysql视图是什么?怎么实现?

    mysql视图是什么?怎么实现? 发布时间:2020-05-21 18:00:24 来源:亿速云 阅读:152 作者:鸽子 视图本身是一张虚拟表,不存放任何数据.在使用SQL语句访问视图的时候,获取的 ...

  9. mysql 视图 数据相加_MySQL

    查看安装路径 ps -ef|grep mysql 1,配置linux虚拟机,修改IP ????? vim /etc/sysconfig/network-scripts/ifcfg-eth0 2,配置完 ...

  10. mysql 视图 教程_MySQL视图简介及基本操作教程

    前言 视图是数据库系统中一种非常有用的数据库对象.MySQL 5.0 之后的版本添加了对视图的支持. 认识视图 视图是一个虚拟表,其内容由查询定义.同真实表一样,视图包含一系列带有名称的列和行数据,但 ...

最新文章

  1. 在ECSHOP分类列表页中调用商品货号
  2. 盲人计算机培训计划,中国盲人协会-河南省郑州市盲人按摩培训班教学大纲及计划...
  3. Linux下安装JDK,Tomcat,Mysql详细教程
  4. 2019年第十届蓝桥杯 - 省赛 - C/C++研究生组 - G. 扫地机器人
  5. Linux软件源apt,仓库,包的概念
  6. 如何设置定时器每天执行一次_游戏活动的自动循环——定时器管理
  7. weakreference_Java中WeakReference,SoftReference,PhantomReference和Strong Reference之间的区别...
  8. 角标越界 Java_【新人求助】利用占位符操作数据库是总是提示数组角标越界是怎么回事 - Java论坛 - 51CTO技术论坛_中国领先的IT技术社区...
  9. win7系统丢失文件的处理方法
  10. 【codevs4654】【BZOJ2442】修剪草坪,第一次的单调队列,优化DP
  11. 2018 我所了解的 Vue 知识大全(一)
  12. 拓端tecdat|R语言两层2^k析因试验设计(因子设计)分析工厂产量数据和Lenth方法检验显著性可视化
  13. 开博第一篇:一个关于正则表达式相关的问题
  14. Windows Phone上的相机景深计算器
  15. vm服务器复制文件,怎么实现从宿主机拖动复制文件到虚拟机VM中的示例
  16. springboot优缺点
  17. 2019年系统架构师考试心得
  18. 常见遥感卫星基本参数大全
  19. 迅雷9窗口右侧的内置浏览器如何去掉。
  20. 网络互联设备:中继器、交换机、网桥、路由器和网关

热门文章

  1. android升级功能键,Android 按键添加转载
  2. DL之CNN:利用自定义DeepConvNet【7+1】算法对mnist数据集训练实现手写数字识别并预测(超过99%)
  3. BlockChain:《2016年中国区块链产业概况》听课笔记
  4. Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离
  5. C#获取文件夹下指定格式的所有文件
  6. python登录网页版微信发送消息
  7. 洛谷——P1549 棋盘问题(2)
  8. [R]R语言中的%%和%.%
  9. 四种ASP网页跳转代码
  10. 如何解决div层被flash遮盖的问题