视图

视图不提高性能

目的:

简化开发难度,因为视图已经把一些关系给整理在一起了
数据安全,开发人员不能直接对表操作,也不能进行删除,修改操作
数据重构,在有限的表中,以不同的角度生成所需的视图,简化业务

1.什么是视图?
视图是由查询结果形成的一张虚拟表。
2.什么时候要用到视图?
如果某个查询结果出现的非常频繁,也就是,要经常拿这个查询结果来做子查询
3.视图的创建语法:
create view 视图名 as select 语句;
4.使用视图有什么好处呢?
①简化查询语句
比如:有一张商品表,我们经常要查每个栏目下商品的平均价格
select cat_id,avg(shop_price) from goods gropy by cat_id;
这时候我们就可以创建一张视图:
create view avgPrice as select cat_id,avg(shop_price) from goods gropy by cat_id;
创建完,以后我们要查每个栏目的平均价格时,只要这么写
select * from avgPrice;就可以了。
②可以进行权限控制
把表的权限封闭,但是开放相应的视图权限,视图里只开放部分数据列
比如我们的goods商品表,我们不想让别人看到我们的销售价格,这时候我们就可以把查看商品表的权限封闭,创建一张视图
create view showGoods as select goods_id,goods_name from goods;
不出现销售价格列就可以了。
③大数据分表时可以用到
比如表的行数据超过200万行时,速度就会变慢
可以把一张表的数据拆成4张表来存放
News表
newsid 1,2,3,4…
news1,news2,news3,news4表
把一张表的数据分散到4张表里,分散的方法有很多,
最常用的是id取模来计算
id%4+1=[1,2,3,4]

还可以用视图,把四张表形成一张视图
create view news as select * from news1 union select * from news2 union …
5.视图的修改
alter view 视图名 as select 语句;
6.视图与表的关系
视图是表的查询结果,自然表的数据变了,会影响视图的结果
7.那么视图改变了会影响到表吗?
①视图的增删改也会影响表;
②但视图并不总是能增删改的;
视图的数据与表的数据一一对应时可以修改;
对于视图的insert还应注意:视图必须包含表中没有默认值的列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值