简介
这里我想说的是,程序本身不需要关心表的结构,只需要按照视图定义来取数据或更新数据。
什么是视图
说起视图呢,就是说它相当于一个虚拟的表,你看不到它,但是你可以根据它来更新和操作表,视图中的with check option就是针对于可更新的视图的
例子
首先我们来创建一个叫做t的表,然后再创建一个视图,这个视图当中的数据是和t表相关的,也就是对这个表进行了一个限制
create table t (id int);
create view v_t
as
select * from t where id< 10;
如上图代码所示,就是说你在插入数据的时候id不能大于或等于10,如果大于或等于的话,就会不成功,不信我?那你看看下面的代码和结果把~
insert into t select 20;
select * from v_t;
上图显示,查找数据的时候为空,但是我是插入进去了啊,这里就是视图书写的问题了,我们都知道,视图要求的是id不能大于或者等于10,否则就不会有结果,于是呢,我们可以在这个视图当中设置相应的check option,使得它在插入语句输入之后就会自动弹出对应的错误信息,不信我们来看代码和截图
看到没有!就是这样的!
查看一个数据库中的表和视图
查看视图
物化视图
优点:
当遇到一些很繁琐的操作计算的时候,物化视图可以预先计算,这样就大大地降低了时间。
特点:
Mysql本身并不支持物化视图,换句话来说,不同于oracle,mysql中的视图总是虚拟的。
物化步骤
首先,我们想要通过物化视图