关于视图的学习
视图:执行select语句创建的一张临时表
好处:1、频繁使用select语句保存提高效率。2、定义视图可以使用户看的数据更加清晰。3、可以不完全对外公布表中全部内容有一定的保密性。4、通过定义视图降低冗余
** 注意:视图不能使用order by,因为数据行没有顺序
** 注意:不建议通过修改视图来修改表
练习题
练习题
3.1
select product_name, sale_price, regist_date
from (select product_name, sale_price, regist_date from product
where sale_price >= 1000 ) as p1 where regist_date = '2009-09-20';
3.2
会报错。不可以向视图插入数据,因为视图只是一个临时表(不可插入等操作)。
3.3
select product_id, product_name, product_type, sale_price, (select avg(sale_price)
from product) as sale_price_avg from product as p;
3.4
create view AvgPriceByType (product_id, product_name, product_type, sale_price,
sale_price_avg_type )
as
select product_id, product_name, product_type, sale_price,
(select avg(sale_price) from product as p2
where p1.product_type = p2.product_type
group by product_type)
from product as p1;
谓词、case的学习
注意case的行转列用法
3.5
不是,例如求和、相减等
3.6
1、不包含200、 5800、 5000的数据
2、不包含所有purchase_price有值的数据
3.7
select count(case when sale_price <= 1000 then product_name else null end) as low_price,
count(case when sale_price >= 1001 and sale_price <= 3000 then product_name else null end) as mid_price,
count(case when sale_price >= 3001 then product_name else null end) as high_price
from product