Mysql数据库基础系列

软件下载地址
提取码:7v7u
数据下载地址
提取码:e6p9
mysql数据库基础第一章:(一)数据库基本概念
mysql数据库基础第一章:(二)mysql环境搭建
mysql数据库基础第二章:(一)基础查询
mysql数据库基础第二章:(二)条件查询
mysql数据库基础第二章:(三)排序查询
mysql数据库基础第二章:(四)常见函数
mysql数据库基础第二章:(五)分组查询
mysql数据库基础第二章:(六)连接查询
mysql数据库基础第二章:(七)子查询
mysql数据库基础第二章:(八)子查询经典案例
mysql数据库基础第二章:(九)分页查询
mysql数据库基础第二章:(十)连接查询
mysql数据库基础第三章:DML语言
mysql数据库基础第四章:DDL(数据定义语言):库表的管理、数据类型与约束条件
mysql数据库基础第五章:(一)事务
mysql数据库基础第五章:(二)视图
mysql数据库基础第六章:变量、存储过程与函数
mysql数据库基础第七章:流程控制结构
mysql数据库基础第八章:窗口函数和公用表达式(CTE)



1.视图

视图是一个虚拟表:和普通表一样使用
可以将查询结果放在视图里作为虚拟的表,不返回结果,只保留逻辑
优势是可以:
1.可以重用sql语句
2.简化sql语句
3.保存数据,提供安全性

2.视图创建

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

USE myemployees;

#1.查询姓名中包含a字符的员工名、部门名和工种信息
首先创建视图

CREATE VIEW myv1
AS
SELECT 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`;

3.视图修改

方式一:create or replace

方式二:alter

SELECT * FROM myv3;

CREATE OR REPLACE VIEW myv3
AS
SELECT AVG(salary), job_id FROM
employees
GROUP BY job_id;

;

4.视图的删除与更新

DROP VIEW myv1;

CREATE VIEW myv4
AS
SELECT last_name, salary
FROM employees; SELECT * FROM myv4; INSERT INTO myv4 VALUES('皮卡丘',10000); UPDATE myv4 SET last_name = '喷火龙' WHERE last_name = '皮卡丘' DELETE FROM myv4 WHERE last_name = '喷火龙' ; SELECT * FROM employees;

视图可以更新,主要是进行insert, update, delete。但是一般我们不建议更新视图,因为更新视图的数据也会在原始表中更新。

下列几种不可进行视图更新的情况:

  • 包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all
  • select中包含子查询
  • join连接
  • 常量视图

最新文章

  1. RGW/SWIFT对象存储性能测试工具--COSBench安装
  2. 使用ImageCreate()创建一个代表空白图像的变量
  3. fibonacci封闭公式及矩阵连乘
  4. Java基础(4):Scanner输入的典型应用
  5. httperf ---linux web站点压力测试
  6. H5 App设计者需要注意的21条禁忌
  7. 2015年9月29日 sql 触发器
  8. vs2013 使用vs调试器,发现调试器显示的数据错误。查看内存,发现内存是正确的。
  9. 它们的定义AlertDialog(二)
  10. 怎么利用composer创建laravel项目
  11. 响应式移动端去除css的hover和jq的hover还有input在苹果下的默认样式
  12. centos 下安装 Jre 及 selenium
  13. BZOJ_2595_[Wc2008]游览计划_斯坦纳树
  14. Java开发知识之Java控制语句
  15. 数据库镜像转移Failover Partner
  16. redis数据库通过dump.rdb文件恢复数据库或者数据库迁移
  17. 贪吃蛇 v1.01
  18. [C] 如何使用头文件 .h 编译 C 源码
  19. 建造者模式及C++实现
  20. iOS完全自学手册——[三]Objective-C语言速成,利用Objective-C创建自己的对象

热门文章

  1. 10、比较Bigdecimal类型是否相等的方法
  2. 结合商业项目深入理解Go知识点
  3. [编程基础] Python列表解析总结
  4. (一)elasticsearch 编译和启动
  5. iOS根据两点经纬度坐标计算指南针方位角
  6. DVWA靶场实战(三)——CSRF
  7. AIR32F103(八) 集成Helix MP3解码库播放MP3
  8. 从 GPT2 到 Stable Diffusion:Elixir 社区迎来了 Hugging Face
  9. vue-admin-template 单页面刷新 404 问题
  10. 反射_Class对象功能概述-反射_Class对象功能_获取Field