视图
视图是一种虚拟表 可以把一段查询语句作为视图存储在数据库中
需要的时候把视图看作一个表,对里面的数据进行查询
视图并没有真正存储数据 避免了数据存储过程中可能产生的冗余 提高了存储的效率
子查询
嵌套在另一个查询中的查询
派生表
如果在查询中把子查询的结果作为一个表来使用 这个表就是派生表
创建视图的语法
create [or replace]
view 视图名称 [(字段列表)]
as 查询语句
例如查询每日的销售数据较频繁使用 许多情况也都依赖于该查询结果 因此将该查询结果作为一个视图
create view demo.goos_import as
-> select a.barcode,a.goodsname,a.price,b.quantity
-> from demo.goodmaster as a
-> left join demo.importdetails as b on (a.itemnum=itenum);
从视图中查询
select * from demo.goos_import;
修改视图
alter view 视图名 as 查询语句;
查看视图
describe 视图名;
删除视图
drop view 视图名;
在视图中插入数据
对视图中的数据进行插入修改和删除都是通过实际数据表的操作实现的,只有视图中的字段跟实际数据完全一样,才可以通过视图插入数据
insert into 视图名 (字段列表) values (字段列表的值);
删除视图中的数据
delete from 视图名 where 条件;
修改视图中的数据
update 视图名 set 字段名=数值 where 条件;
尽量不要对视图的数据进行更新
视图的优缺点
1)视图把查询模块化了,查询变得更为简单,提高了开发和维护的效率
2)视图存储的是查询语句 本身不存储数据 不占用数据存储资源
3)视图具有隔离性 用户不需要查询数据表,可以直接通过视图获取数据表中的信息
4)视图数据结构相对独立,即便实际的数据表结构发生变化 也可以通过修改视图的查询语句保持查询结果集中的字段不变
5)若实际数据表的结构变更,需要及时对相关的视图进行维护