mysql-15-view
#视图
/*
含义:虚拟表,和普通表一样使用。通过表动态生成的数据 只保存了sql逻辑,不保存查询结果 应用场景:
1、多个地方用到同样的查询结果
2、该查询结果使用的sql语句较为复杂
*/ USE students;
show tables; #案例:查询姓张的学生名和专业名
select stu_name, major_name
from stuinfo as s
inner join major m on s.major_id = m.id
where s.stu_name like '张%'; # 用视图来实现
# 创建视图
create view v1 as
select stu_name, major_name
from stuinfo as s
inner join major m on s.major_id = m.id;
#使用视图
select * from v1
where stu_name like '张%'; #一、创建视图
/*
语法:
create view 视图名 as
查询语句;
*/
USE myemployees; #案例1:查询姓名中包含a字符的员工名、部门名和工种信息
create view myv1 as
select last_name,department_name, job_title
from employees as e
inner join departments as d on e.department_id = d.department_id
inner join jobs as j on j.job_id = e.job_id; select * from myv1
where last_name like '%a%'; #案例2:查询各个部门的平均工资级别
#1、创建视图查看各个部门的平均工资
create view myv2 as
select avg(salary) as ag, department_id
from employees
group by department_id;
#2、使用视图查询对应的级别
select myv2.ag, g.grade_level
from myv2
inner join job_grades as g
on myv2.ag between g.lowest_sal and g.highest_sal; #案例3:查询平均工资最低的部门信息
select * from myv2
order by ag
limit 1; #案例4:查询平均工资最低的部门名和工资
create view myv3 as
select * from myv2 order by ag limit 1; select e.salary, d.department_name
from myv3
inner join employees as e on myv3.department_id = e.department_id
inner join departments as d on myv3.department_id = d.department_id; #二、视图的修改
/*
方式一
create or replace view 视图名 as
查询语句; 方式二
alter view 视图名 as
查询语句;
*/ #三、删除视图
/*
drop view 视图名, 视图名, ... ;
*/ #四、查看视图
desc myv3;
show create view myv3; #五、视图的更新
#可以更新,并且会更改原始表。但一般只用于查询
create or replace view v1 as
select last_name, email
from employees; select * from v1;
#1、插入
insert into v1
values('张飞', 'zf@qq.com'); #2、修改
update v1 set last_name='张无忌' where last_name='张飞'; #3、删除
delete from v1 where last_name='张无忌'; #当视图中含有分组groupby、联结join、子查询、并、聚集函数、distinct、导出(计算列)时,不能更新
mysql-15-view的更多相关文章
- MySQL视图view/存储过程和函数的使用
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p. ...
- 深入解析MySQL视图view
阅读目录---深入解析MySQL视图view 创建视图 查看视图 视图的更改 create or replace view alter DML drop 使用with check option约束 嵌 ...
- 转: mysql create view 创建视图
以下的文章主要是对MySQL视图的描述,其中包括MySQ视图L概述,以及创建MySQL视图-create view与修改MySQL视图--alter view等相关内容的具体描述,以下就是文章的具体内 ...
- MySQL视图(view)
一.基本概念 视图是一个虚拟表,是sql的查询结果,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成.视图的数据变化会影响到基表,基表的数据变化也会影响到视图 ...
- sql:Mysql create view,function,procedure
create database Liber; use Liber; #顯示數据庫 20150210 Geovin Du 涂聚文 SHOW DATABASES; drop table BookKindL ...
- mysql crete view
CREATE VIEW user_algo_view ASselect `u`.`userId` AS `UserId`,`u`.`userCode` AS `UserCode`,group_conc ...
- MySQL全面瓦解15:视图
概述 很多时候,我们会有一些很复杂的数据库操作,比如整合用户的行为数据,那这些数据可能包含用户的餐饮.生活日用.充值消费.交通出行.通讯物流.交通出行.医疗保健.住房物业.运动健康... 基于此,我们 ...
- mysql view(视图)
一,什么是视图 视图是存放数据的一个接口,也可以说是虚拟的表.这些数据可以是从一个或几个基本表(或视图)的数据.也可以是用户自已定义的数据.其实视图里面不存放数据的,数据还是放在基本表里面,基本表里面 ...
- mysql 视图(view)
什么是视图 视图是从一个或多个表中导出来的表,是一种虚拟存在的表. 视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据. 这样,用户可以不用看到整个数据库中的数据,而之关心对自己有用的数据. 数 ...
- Mysql 学习之基础操作
一.表复制 1.复制表结构 将表hello的结构复制一份为表hello3 2.复制数据 a.如果两张表的结构一样且你要复制所有列的数据 mysql> insert into hello3 ...
随机推荐
- Linux—账号管理及命令使用详解
关注微信公众号:CodingTechWork,一起学习进步. 引言 在Linux系统中,我们常常会看到目录或文件的所属关系: [root@linux01 ~]# ll -d test.sh -rw ...
- 官网安装Python包太慢?教你三种下载安装方式-PiP、conda、轮子,教你三种Pytorch的下载安装方式,保证你再也不用出现Error
上一期我们介绍了CUDA下载安装以及其总结,这一期教大家如何在Anaconda中使用CUDA来进行加速.神经网络依赖cuDNN的下载安装,以及下载和安装Pytorch-GPU安装包的三种方式(cond ...
- Oracle的timestamp字段更新实验 结论:只有逐条更新才能保证timestamp字段有差别,批量更新只会得到一致的时间,此操作无关时间精度.
有这么一张表: create table hy_testtime( id number(6,0) not null primary key, name nvarchar2(20) not null, ...
- 使用dbUnit的 IDataSet 因乱序造成assert失败而采取的措施
本例源码下载:https://files.cnblogs.com/files/xiandedanteng/dbUnitTest20200211.zip 在做IDataSet比较时,特殊情况下会有期盼的 ...
- 转载:Redis主从复制与高可用方案
转载自: https://www.cnblogs.com/lizhaojun-ops/p/9447016.html 原文链接:http://gudaoyufu.com/?p=1230 redis主从复 ...
- docker 修改容器配置文件
启动docker镜像命令docker run 可以指定端口映射,但是容器一旦创建就无法在通过命令修改.通常是保存镜像在创建一个新的容器.有没有办法不保存镜像直接修改这个容器呢?答案是有的,本文已mys ...
- 企业网站还是要考虑兼容至少IE10
中国国情,大部分企业还在使用win7,IE浏览器.为了兼容这些,还是少用比较VUE等一些高级的框架,改为使用jquery.用惯了VUE,jquey好多忘得差不多了,其中遇到的问题及解决方案 ajax, ...
- Azure技术系列之Redis篇---第一章数据缓存
嘈杂和忙碌的生活占据占据了生活的每一天,好久没有静下心来对自己喜欢的技术进行归纳总结了.痛定思痛,今天开始开荒,把之前研究的技术进行归纳总结,先从Azure的Redis的开发技术开始. Azure 的 ...
- xampp安装和使用:windows和linux使用安装微擎小程序
1.官网下载xampp XAMPP:Apache+MySQL+PHP+PERL,适用于windows+linux+macos x+Solaris等多系统使用 官网地址:https://www.apac ...
- python中实现参数化的原理
k就是 <参数名>