SQL学习中的视图(view)知识

视图的含义以及功能

含义:虚拟表,和普通表一样使用
mysql5.1版本出现的新特性,是通过表动态生成的数据
(可以理解成就是将生成的表临时保存起来下一次如果要用就直接用这个虚拟表就好了)
功能
1.重用sql语句
2.简化负责的sql操作,不必知道它的查询细节
3.保护数据,提高安全性

视图的相关操作

创建视图的语法

语法:
vreate view 视图名
as
查询语句

简单的案例

#案例 查询张某的专业
 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 '张%';
 
 #案例 查询姓名中包含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%'; 
 
 #案例:查询各部门的平均工资级别
 #创建视图查看每个部门的平均工资
 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;
 
 #查询平均工资最低的部门信息
 SELECT * FROM myv2 ORDER BY ag LIMIT 1;
 
 #查询平均工资最低的部门名字和工资
 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
查询语句

视图的删除

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

视图的更新

一旦具备一下特点的视图是不允许被更新的
①包含一下关键字的sql语句:分组函数、distinct,group by, having,union或者union all
②常量视图
③select中包含子查询
④join
⑤from一个不能更新的视图(就是创建视图的时候from了一个不可更新的视图,辣么创建的视图也不可以更新)
⑤where字句的子查询引用了from字句中的表

CREATE OR REPLACE VIEW myv1
 AS
 SELECT last_name, email
 FROM employees;
 
 SELECT * FROM myv1;
 
 #1.插入
 INSERT INTO myv1 VALUES('张飞','zf@qq.com');
 
 #2.修改
 UPDATE myv1 SET last_name = '张无忌' WHERE last_name = '张飞';
 
 #3.删除
 DELETE FROM myv1 WHERE last_name = '张无忌';

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值