sql学习(task 03)

本文探讨了SQL视图的概念及其好处,包括提高查询效率、数据安全性及简化数据展示。同时,强调了视图的限制,如无法进行ORDER BY操作和直接修改。通过实例展示了如何创建和使用视图,以及练习题解析,加深对视图的理解。此外,还介绍了CASE语句在条件判断和数据转换中的应用,尤其是行转列的方法。
摘要由CSDN通过智能技术生成

关于视图的学习

视图:执行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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值