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 ...
随机推荐
- Inno Setup Compiler 中文使用教程
一.概要 该文章主要解决,Inno Setup Compiler工具的使用问题. 如有什么建议欢迎提出,本人及时修改.[如有任何疑惑可以加Q群:580749909] 二.步骤 (1)下载地址:http ...
- POJ - 3037-Skiing(邻接表+Dijkstra)
Bessie and the rest of Farmer John's cows are taking a trip this winter to go skiing. One day Bessie ...
- HDU-多校2-Everything Is Generated In Equal Probability(公式+逆元)
Problem Description One day, Y_UME got an integer N and an interesting program which is shown below: ...
- 01vue.config.js
const path = require('path'); module.exports = { // 基本路径 publicPath: process.env.NODE_ENV === 'pro ...
- 学习python你必须弄懂的 Python、Pycharm、Anaconda 三者之间的关系
Python作为深度学习和人工智能学习的热门语言,学习一门语言,除了学会其简单的语法之外还需要对其进行运行和实现,才能实现和发挥其功能和作用.下面来介绍运行Python代码常用到的工具总结. 一.Py ...
- Agumater 增加基本数据上传下载能力
- Brup sute
暴力破解
- cmd运行SpringBoot的jar中文乱码
问题: 通过以下命令启动springBoot项目后,在项目中查看日志,发现中文乱码 java -jar projectName.jar 解决 启动时添加参数-Dfile.encoding=UTF-8即 ...
- Hexo + Github Pages搭建个人网站主页
1.GitHub创建个人仓库 登录GitHub创建账号,同时拥有一个自己设定的用户名(username).点击New Repositories创建仓库.仓库名必须为username.github.io ...
- 通过例子讲解Spring Batch入门,优秀的批处理框架
1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Spring相关文章:Springboot-Cloud相关 Spring Batch是一个轻量级的.完善的批处理框架,作为S ...