一、视图介绍
1.1视图定义:是一个虚拟表,本身不包含数据,行和列的数据来自于自由定义视图查询所引用的列,在引用视图的时候动态生成。和普通的表格使用方式一致。
1.2视图的优点:
①简化操作:将复杂的sql关联查询和筛选条件进行视图封装,使用较为方便。
②安全性:视图可以定制可以查询到的数据(列值),提高了数据的安全性,用于权限控制。
③调高了数据查询效率。
④实现了一定层度上的逻辑独立性。
1.3视图和表格区别
二、视图的使用
2.1视图的创建
语法:create view 视图名
as
查询语句;
表结构:
需求1:查询员工last_name like “c”的lase_name(员工名), department_name(部门名),job_title(工种名)
需求2:查询各个部门的平均工资的级别
2.2视图修改:
① create or replace view 视图名
as
查询语句;
② alter view 视图名
as
查询语句;
2.3查询视图
①desc chen;
②show create view chen02;
2.4删除视图
Drop view 视图名,视图名,(可多个);
三、视图数据更新
3.1可以实现:
数据的插入
数据的修改
数据的删除
会对原始表改变。【相应的CRUT】
3.2不可更新的视图
①包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all
②常量视图
③Select中包含子查询
④含有 join 语句
⑤from一个不能更新的视图
⑥where子句的子查询引用了from子句中的表