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 ...
随机推荐
- fragment没有getWindowManager 关于fragment下的报错解决方法
其实很简单:只需要在getWindowManager().getDefaultDisplay().getMetrics(metric) 前面加上getactivity()即可.
- JS数组去重的实现
其实数组去重的实现就分为两大类 利用语法自身键不可重复性 利用循环(递归)和数组方法使用不同的api来处理. 注意️:下列封装成方法的要在函数开始增加类型检测,为了让去重的实现代码更加简单易懂,封装时 ...
- MyBatis的逆向工程、Example类
public void testFindUserByName(){ //通过criteria构造查询条件 UserExample userExample = new UserExample(); us ...
- Tomcat三实例cluster多播方案共享session再配置
昨天已经将两实例cluster多播方案共享Session配置成功,其中的关键就在于server.xml中,engine->channel->receiver节点中address得写成自己的 ...
- MySQL查询point类型类型的坐标,返回经度纬度
location字段为point类型的空间坐标 SELECT id, name, address, x(location) as 经度, Y(location) as 纬度, ROUND( 6378. ...
- SEDA架构实现
一.SEDA SEDA全称是:stage event driver architecture,中文直译为“分阶段的事件驱动架构”,它旨在结合事件驱动和多线程模式两者的优点,从而做到易扩展,解耦合,高并 ...
- linux:apache-配置基于域名的虚拟机主机
一个http服务要配置多个站点,就需要用到虚拟机主机. 虚拟机主机一般有三类:1.基于域名 2.基于端口 3.基于ip 举例操作基于域名配置三个站点: 域名 站点目录 www.eejind.com ...
- 蓝奏网盘CMD控制台
LanZouCloud-CMD 2.0 基于蓝奏云API开发的CMD版蓝奏云控制台 Github : https://github.com/zaxtyson/LanZouCloud-CMD 更新说明 ...
- Ajax获取接口数据,url拼接参数跳转页面,js获取上一级页面参数给本页面
1.Ajax获取接口数据 function demo(){ //假设请求参数 var requestBody = [{ "name":"zhang", &quo ...
- 自定义 NSLog以便发版和调试
问题 开发中用了大量的 NSLog,但是发布时想取消这些 NSLog 开发中是否经常用过 NSLog(@"%s", __FUNCTION__); 解决问题 新建 ExtendNSL ...