MySQL视图
一.视图的定义
视图是由查询结果形成的一张虚拟表,是表通过运算得到的一个投影,同一张表可以创建多个视图 。
创建视图的语法:
create view view_name as select xxx
这个语句可以理解为,将该select结果命名为view_name。
二.视图的作用
(1).简化查询
例:查询平均价格前三高的商品
正常sql语句
select pro_id avg(price) pj from t_product group by pro_id order by pj desc limit 3
创建视图:
create view view_pro_1 as select pro_id avg(price) pj from t_product group by pro_id
查询视图:
select * from view_pro_1 order by pj desc limit 3
(2).进行权限控制
把表的权限封闭,但是开放相应的视图权限,视图里只开放部分数据
例:用户查询商品的时候不想让其看到商品的价格。
1.创建视图不包含商品价格信息
create view view_pro_2 as select pro_id , pro_name from t_product ;
2.创建一个用户授予查询权限只能操作view_pro_2 视图。
grant select on 库.view_pro_2 to 'xxx' identified by '密码'
三.视图操作的基本语法
(1).查询视图
select * from 视图名 where 条件
(2).修改视图
alter view 视图名 as select xxxx
(3).删除视图
drop view 视图名
(4).查看视图结构
desc 视图名称
(5).查看所有视图
show tables
注意:没有 show views