七、视图

一、视图

视图即是虚拟表,也称为派生表,因为它们的内容都派生自其它表的查询结果—《SQLite权威指南》

简单的说就是,视图是基于已存在的表通过SELECT查询语句将查询出来的结果集作为数据生成的一个虚拟表。可以将视图当作一个正常的表来查询。至于直接对视图数据进行增删改的操作,有一些需要注意的地方会在下文中提及。然而请切记,视图不是表,不保存数据,只是一张虚拟表。

那么既然是基于已存在的表,为什么还要使用视图呢?在一些比较复杂的业务需求中,我们需要写出大量复杂的关联查询语句来获取需要的数据,这个是十分的消耗效率的,这时可以将复杂的关联查询结果集设置为视图,这样复杂关联语句无需再从应用层向MySQL数据库发送,只要请求相应的视图即可。简化了应用层的开发,还能够提升查询速度。

二、创建视图

  • 创建语句模型
CREATE VIEW name_view AS SELECT col1,col2... FROM ... [WHERE ... WITH CHECK OPTION];

这里需要注意的是,一般在给视图起名字的时候,会在名字后面添加_view来区别视图与基本表
- WITH CHECK OPTION

如果在创建视图的时候制定了WITH CHECK OPTION,那么更新数据时不能插入或更新不符合视图条件的记录。

CREATE VIEW t_view AS SELECT a.id,b.name,a.num FROM tableA a LEFT JOIN tableB b ON a.id = b.id WHERE a.num > 30 WITH CHECK OPTION;

因为此时添加了WITH CHECK OPTION,因此在对视图进行插入或更新必须符合条件num > 30

三、修改视图

CREATE OR REPLACE VIEW name_view AS SELECT ... FROM ...;

四、查看视图

  • 查看库中的视图
SHOW TABLES;
  • 查看视图详情
DESC name_view;

SHOW FIELDS FROM name_view;

五、视图数据操作

1.基本表数据变更

由于视图是基于基本表的,因此当基本表的数据有所变动时,视图的数据会随之变动

2.视图数据变更

限制条件太多,目前并没有实际运用到,暂且放过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值