SQL第7篇 视图

视图

1视图.png

1.创建视图

 

create view 视图名 as sql查询语句

2.修改视图

 

法一:create or  replace 视图名 as
法二:alter view 视图名 as    

3.删除视图

 

drop view 视图1,视图2,...
ps:删除视图要有权限,root用户有所有权限,哈哈

4.查看视图结构

 

法一:desc 视图名
法二:show create view 视图名 
ps:法二用cmd命令行看,比较全,包括创建过程,字符集之类的信息

5.特点:视图就可以作为表,可以嵌套使用。

2视图的好处.png

-------------案例分割线------------------

案例1.查询邮箱中包含a字符的员工名,部门名和工种信息

①创建员工名,部门名和工种信息的视图

 

CREATE VIEW v1 AS 
SELECT `last_name`,`department_name`, j.*
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 v1
WHERE `last_name` LIKE '%a%';

案例2.查询各部门的平均工资级别

①创建各部门的平均工资视图

 

CREATE VIEW avgSalary  AS
SELECT AVG(salary) ag,department_id FROM employees
GROUP BY department_id;

②使用

 

SELECT a.ag,g.`grade_level`
FROM avgSalary a JOIN `job_grades` g
ON a.ag BETWEEN g.`lowest_sal` AND g.`highest_sal`;

案例3.查询平均工资最低部门信息

创建视图:每个部门的平均工资 正是案例2中的avgSalary

 

SELECT MIN(ag) ,department_id FROM avgSalary;
#或者
SELECT ag ,department_id FROM avgSalary ORDER BY ag LIMIT 1;

案例4.查询平均工资最低的部门名和工资

 

SELECT ag,d.`department_name` 
FROM avgSalary a JOIN `departments` d
ON a.`department_id`=d.`department_id`
ORDER BY a.`ag` LIMIT 1;

视图的更新

这里指的是修改视图里的数据,对视图的修改也会对原始数据进行修改。
insert update delete语句的操作与表的操作相同,但我们一般不去操作视图。
此外,视图的更新是有限制的,只对于简单的视图可以。

以下情况是不可修改的。

 

3视图不能更新的情况.png

视图与表的对比

 

            关键字           占用的物理空间                         使用
视图    create view as        只保存了sql的逻辑,没有保存数据       insert, delete,update,select,一般只用来查询
表      create table           保存了数据                         insert,delete,update,select



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值