十一、MySQL视图学习笔记(详解)

视图

含义:理解成一张虚拟的表,和普通表一样使用
mysql5.1版本出现的新特性,是通过表动态生成的数据
比如:舞蹈班和普通班级的对比

视图和表的区别:

名称创建语法的关键字使用占用物理空间
视图create view增删改查,只是一般不能增删改不占用,仅仅保存的是sql逻辑
create table增删改查占用

视图的好处:

1、sql语句提高重用性,效率高
2、和表实现了分离,提高了安全性

视图的创建

语法:
CREATE VIEW  视图名
AS
查询语句;

视图的增删改查

1、查看视图的数据 ★SELECT * FROM my_v4;
SELECT * FROM my_v1 WHERE last_name='Partners';2、插入视图的数据
INSERT INTO my_v4(last_name,department_id) VALUES('虚竹',90);3、修改视图的数据UPDATE my_v4 SET last_name ='梦姑' WHERE last_name='虚竹';4、删除视图的数据
DELETE FROM my_v4;

某些视图不能更新

包含以下关键字的sql语句:分组函数、distinct、group  by、having、union或者union all
常量视图
Select中包含子查询
join
from一个不能更新的视图
where子句的子查询引用了from子句中的表

视图逻辑的更新

#方式一:
CREATE OR REPLACE VIEW test_v7
AS
SELECT last_name FROM employees
WHERE employee_id>100;方式二:
ALTER VIEW test_v7
AS
SELECT employee_id FROM employees;SELECT * FROM test_v7;

视图的删除

DROP VIEW test_v1,test_v2,test_v3;

视图结构的查看

DESC test_v7;
SHOW CREATE VIEW test_v7;

一、创建视图

语法:
create view 视图名
as
查询语句;

#案例:查询姓张的学生名和专业名
SELECT stuname,majorname
FROM stuinfo s
INNER JOIN major m ON s.`majorid`= m.`id`
WHERE s.`stuname` LIKE '张%';CREATE VIEW v1
AS
SELECT stuname,majorname
FROM stuinfo s
INNER JOIN major m ON s.`majorid`= m.`id`;SELECT * FROM v1 WHERE stuname LIKE '张%';#一、创建视图
/*
语法:
create view 视图名
as
查询语句;*/
USE myemployees;#1.查询姓名中包含a字符的员工名、部门名和工种信息
#①创建
CREATE VIEW myv1
ASSELECT last_name,department_name,job_title
FROM employees e
JOIN departments d ON e.department_id  = d.department_id
JOIN jobs j ON j.job_id  = e.job_id;#②使用
SELECT * FROM myv1 WHERE last_name LIKE '%a%';#2.查询各部门的平均工资级别#①创建视图查看每个部门的平均工资
CREATE VIEW myv2
AS
SELECT AVG(salary) ag,department_id
FROM employees
GROUP BY department_id;#②使用
SELECT myv2.`ag`,g.grade_level
FROM myv2
JOIN job_grades 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 d.*,m.ag
FROM myv3 m
JOIN departments d
ON m.`department_id`=d.`department_id`;

二、视图的修改

方式一:

语法:
create or replace view 视图名
as
查询语句;

方式二:

语法:
alter view 视图名
as
查询语句;

#二、视图的修改#方式一:
/*
create or replace view  视图名
as
查询语句;*/
SELECT * FROM myv3 CREATE OR REPLACE VIEW myv3
AS
SELECT AVG(salary),job_id
FROM employees
GROUP BY job_id;#方式二:
/*
语法:
alter view 视图名
as 
查询语句;*/
ALTER VIEW myv3
AS
SELECT * FROM employees;

三、删除视图

语法:drop view 视图名,视图名,…;

#三、删除视图/*语法:drop view 视图名,视图名,...;
*/DROP VIEW emp_v1,emp_v2,myv3;

四、查看视图

#四、查看视图DESC myv3;SHOW CREATE VIEW myv3;
五、视图的更新
#五、视图的更新CREATE OR REPLACE VIEW myv1
AS
SELECT last_name,email,salary*12*(1+IFNULL(commission_pct,0)) "annual salary"
FROM employees;CREATE OR REPLACE VIEW myv1
AS
SELECT last_name,email
FROM employees;SELECT * FROM myv1;
SELECT * FROM employees;
#1.插入INSERT INTO myv1 VALUES('张飞','zf@qq.com');#2.修改
UPDATE myv1 SET last_name = '张无忌' WHERE last_name='张飞';#3.删除
DELETE FROM myv1 WHERE last_name = '张无忌';#具备以下特点的视图不允许更新#①包含以下关键字的sql语句:分组函数、distinct、group  by、having、union或者union allCREATE OR REPLACE VIEW myv1
AS
SELECT MAX(salary) m,department_id
FROM employees
GROUP BY department_id;SELECT * FROM myv1;#更新
UPDATE myv1 SET m=9000 WHERE department_id=10;#②常量视图
CREATE OR REPLACE VIEW myv2
ASSELECT 'john' NAME;SELECT * FROM myv2;#更新
UPDATE myv2 SET NAME='lucy';#③Select中包含子查询CREATE OR REPLACE VIEW myv3
ASSELECT department_id,(SELECT MAX(salary) FROM employees) 最高工资
FROM departments;#更新
SELECT * FROM myv3;
UPDATE myv3 SET 最高工资=100000;#④join
CREATE OR REPLACE VIEW myv4
ASSELECT last_name,department_name
FROM employees e
JOIN departments d
ON e.department_id  = d.department_id;#更新SELECT * FROM myv4;
UPDATE myv4 SET last_name  = '张飞' WHERE last_name='Whalen';
INSERT INTO myv4 VALUES('陈真','xxxx');#⑤from一个不能更新的视图
CREATE OR REPLACE VIEW myv5
ASSELECT * FROM myv3;#更新SELECT * FROM myv5;UPDATE myv5 SET 最高工资=10000 WHERE department_id=60;#⑥where子句的子查询引用了from子句中的表CREATE OR REPLACE VIEW myv6
ASSELECT last_name,email,salary
FROM employees
WHERE employee_id IN(SELECT  manager_idFROM employeesWHERE manager_id IS NOT NULL
);#更新
SELECT * FROM myv6;
UPDATE myv6 SET salary=10000 WHERE last_name = 'k_ing';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471290.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css cursor 的可选值(鼠标的各种样式)

crosshair; 十字准心 The cursor render as a crosshair游标表现为十字准线 cursor: pointer; cursor: hand;写两个是为了照顾IE5,它只认hand。 手 The cursor render as a pointer (a hand) that indicates a link游标以暗示(手指)的形式来表明有一个连…

2021年算法工作总结

2021年5月10日,我转行到互联网做算法工作,离开了工作接近8年的机械设计工作,还是要在这里感谢军哥对我的帮助和指点! 换工作后,陆续学了《流畅的python》,FastAPI框架学了点皮毛,python web 编…

学硕计算机考296算高分么,考研总分是多少算高分?考研340分是什么水平?

原标题:考研总分是多少算高分?考研340分是什么水平?每个考研的学生都想考一个高分,分数越高代表录取的希望越大,但是考研达到多少分算高分呢?有没有衡量考研分数的标准呢?小编为大家整理了关于考研总分高分相关的相关信息,一起…

HDU 4117 GRE Words

这道题不难想到这样的dp。 dp[字符串si] 以si为结尾的最大总权值。 dp[si] max(dp[sj]) &#xff0c;1.j < i&#xff0c;2.sj是si的子串。 对于第二个条件&#xff0c;是一个多模版串匹配的问题&#xff0c;可以用AC自动机。 预先O(m)把AC自动机建好&#xff0c;然后动态…

十四、CSS 3新特性详解(二)——2D转换(transform)、动画(animation)、动画序列

HTML5 第二天 一、rotate 2d旋转指的是让元素在2维平面内顺时针旋转或者逆时针旋转 使用步骤&#xff1a; 给元素添加转换属性 transform属性值为 rotate(角度) 如 transform:rotate(30deg) 顺时针方向旋转30度 div{transform: rotate(0deg); }二、三角 <!DOCTYPE html&…

pip/conda导出 requirements.txt 注意事项

pip 使用 pip freeze > ./requirements.txt 导出 requirements.txt 发现很多包没有版本号&#xff0c;而是 file:/// 使用pip list --formatfreeze > ./requirements.txt 导入安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt con…

计算机系统操作在线作业,电子科大《计算机操作系统》在线作业3

计算机操作,计算机网络14春13秋 13春电子科大《计算机操作14春13秋 13春电子科大《计算机操作系统》在线作业3 1 2试卷总分&#xff1a;100 测试时间&#xff1a;--单选题、单选题(共 20 道试题&#xff0c;共 100 分。)1. 在下列性质中,哪一个是分时系统的特征()。A. 多路性B.…

fortune命令简介

本文转自《阮志峰的网络日志》&#xff0c;原文网址&#xff1a;http://www.ruanyifeng.com/blog/2015/04/fortune.html 作者&#xff1a; 阮一峰 日期&#xff1a; 2015年4月14日 美国中餐馆的最后一道菜&#xff0c;往往是小甜饼&#xff0c;叫做"幸运饼"&#xff…

conda安装pytorch1.10.1+paddlepaddle-gpu2.2.1+cuda10.2+cudnn7.6.5

NV驱动下载安装https://www.nvidia.cn/Download/index.aspx多卡的话&#xff0c;安装 NCCL https://developer.nvidia.com/nccl/nccl-download安装conda&#xff0c;并配置通道 vim ~/.condarc show_channel_urls: truessl_verify: truechannels:- https://mirrors.tuna.tsing…

十五、CSS 3新特性详解(三)——3D转换(位移、旋转、呈现)、透视perspective、旋转rotateX、Y、Z、呈现transform-style

HTML5 第三天 一、 认识 3D 转换 3D 的特点 近大远小物体和面遮挡不可见 三维坐标系 x 轴&#xff1a;水平向右 – 注意&#xff1a;x 轴右边是正值&#xff0c;左边是负值 y 轴&#xff1a;垂直向下 – 注意&#xff1a;y 轴下面是正值&#xff0c;上面是负值 z 轴&#x…

用计算机表白的数字,用数字表白的句子大全 如何用数字表白一段话

表白总是一个让人十分难忘的经历&#xff0c;如果大家想要对喜欢的人表白&#xff0c;又不好意思直说自己的想法&#xff0c;那么今天的这份用数字表白的句子大全就对你们很有帮助了。跟我一起看看&#xff0c;如何用数字表白一段话呢&#xff1f;一、用数字表白的句子大全1、3…

python 常用 time, datetime处理

python 中 time 有三种格式&#xff1a; float, struct tuple(time.struct_time 或 datetime.datetime), str 常用的&#xff1a; float --> struct tuple: time.localtime( float ) struct time tuple --> str: time.strftime(format, struct time tuple) str --> …

pip安装pytorch1.10.1+paddlepaddle-gpu2.2.1+cuda10.2+cudnn7.6.5

NV驱动下载安装https://www.nvidia.cn/Download/index.aspx多卡的话&#xff0c;安装 NCCL https://developer.nvidia.com/nccl/nccl-download配置 pip 源 vim ~/.pip/pip.conf [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple安装virtualenv包pip install vir…

jQuery学习笔记系列(一)——入口函数,jQuery对象和DOM对象,jQuery选择器、样式操作、效果(显示隐藏、滑入滑出、淡入淡出、自定义动画、停止动画队列)

day01 - jQuery 学习目标&#xff1a; 能够说出什么是 jQuery 能够说出 jQuery 的优点 能够简单使用 jQuery 能够说出 DOM 对象和 jQuery 对象的区别 能够写出常用的 jQuery 选择器 能够操作 jQuery 样式 能够写出常用的 jQuery 动画 1.1. jQuery 介绍 1.1.1 JavaScript 库 ​…

计算机主机显卡安装,安装后如何在计算机中启用独立显卡

如今&#xff0c;许多朋友对他们的计算机配置不满意&#xff0c;希望将计算机配置提高一些. 现在&#xff0c;我将告诉您如何设置带有高性能图形卡的笔记本电脑.详细信息如下:1. 第一步&#xff0c;在打开计算机电源后&#xff0c;右键单击桌面&#xff0c;然后在出现的菜单中显…

RHadoop和CDH整合实例(三)- RHive

五、 RHive的安装及测试 RHive依赖于Rserve&#xff0c;所有首先需要安装Rserve(在各个namenode上)&#xff0c;接下来在所有节点上启动Rserve&#xff1a; > sudo R > install.packages("Rserve") > q() > Rserve --RS-conf /usr/lib64/R/Rserv.…

LeetCode 2144. 打折购买糖果的最小开销(贪心)

文章目录1. 题目2. 解题1. 题目 一家商店正在打折销售糖果。每购买 两个 糖果&#xff0c;商店会 免费 送一个糖果。 免费送的糖果唯一的限制是&#xff1a;它的价格需要小于等于购买的两个糖果价格的 较小值 。 比方说&#xff0c;总共有 4 个糖果&#xff0c;价格分别为 1…

在微型计算机中8m,第一部分 计算机基础知识部分习题(答案)

A)bit B)Byte C)bout D)baud95. 目前用于计算机的光盘有三大类&#xff1a;只读光盘、一次性写入光盘和_____C_____A)CD-ROM B)多媒体光盘C)可擦写光盘D)随机光盘96. 要将整屏幕打印出来应按___C_______.A)B)< Printscreen >C)< Printscreen > D)97. 与二进制数010…

淘宝弹性布局方案lib-flexible实践

2个月前&#xff0c;写过一篇文章《从网易与淘宝的font-size思考前端设计稿与工作流》总结过一些移动web中有关手机适配的一些思路&#xff0c;当时也是因为工作的关系分析了下网易跟淘宝的移动页面&#xff0c;最后才有那篇文章的总结&#xff0c;可惜的是因为项目的关系&…

jQuery学习笔记系列(二)

day02 - jQuery 学习目标&#xff1a; 能够操作 jQuery 属性 能够操作 jQuery 元素 能够操作 jQuery 元素尺寸、位置 1.1. jQuery 属性操作 ​ jQuery 常用属性操作有三种&#xff1a;prop() / attr() / data() ; 1.1.1 元素固有属性值 prop() ​ 所谓元素固有属性就是元素本…