视图view,是一种有结构(有行有列)但是没结果(结构中不真实存放数据)的虚拟表。虚拟表的结构来源不是自己定义,而是从对应的基表中产生(视图的数据来源)。
一、视图定义
视图是由查询结果形成的一张虚拟表,是表通过某种运算得到的一个投影,同一张表可以创建多个视图。
create view 视图名 as select 语句
视图名跟表名是一个级别的名字,隶属于数据库。
可以理解为就是将该select语句命名为视图名。
视图也可以设定自己的字段名,而不是select语句本身的字段名。
视图的使用,几乎跟表一样。
二、视图作用
1.简化查询
--案例:查询平均价格前3高的栏目。
--传统的sql语句
select cat_id,avg(shop_price) as pj from goods group by cat_id order by pj desc limit 3;
--创建一个视图,简化查询
create view goods_v1 as select cat_id,avg(shop_price) pj from goods group by cat_id;
select * from goods_v1;
select * from goods_v1 order by pj desc limit 3;
--案例:查询出商品表,以及所在的栏目名称;
--传统sql
select goods_id,goods_name,b.cat_name,shop_price from goods a left join category b on a.cat_id = b.cat_id;
--创建视