1.什么是视图
在SQL来看,视图就是一张表
视图和表的区别在于 视图存放的是SELECT语句,没有存放实际数据;而表中存放着实际数据
创建视图的语句:
CREATE VIEW (视图名称) (列1,列2,...)
AS
(SELECT 语句)
举例:
CREATE VIEW new_product (product_profit, product_date)
AS
SELECT purchase_price,
regist_date
FROM product
where product_id = '0001'
还可视图中嵌套视图,即FROM后接另一个视图,但会影响效率,不建议
一、同时,因为是视图是通过SELECT语句从表中获得数据,而表中的数据行是没有顺序的
因此在创建视图是SELECT语句中不可使用ORDER BY函数
二、视图可以进行更新,但有如下限制:
1.SELECT 中未使用 DISTINCT
2.FROM 的表中只有一张表
3.未使用GROUP BY、HAVING
书中155页
删除视图用DROP VIEW (视图名)
2.子查询
也在FROM后可无限增加子查询的层数
3.标量子查询
标量子查询只能返回一行中的一列数据,即一个数据
因为WHERE中不能使用聚合函数如AVG,这时候标量子查询就派上了用场,但要特别注意,他只能查询一个值,如果会返回多个值,会发生错误
同时标量子查询的书写位置几乎在哪里都可以

关联子查询
这个操作非常重要
关联子查询以细分的组为基础,对组内商品的平均价格和各商品的销售单价进行比较。
比如求取商品中衣服类商品中高于该类平均销售额的商品,鞋子类商品中高于该类销售额的商品,此时用子查询是无法做到的


注意:关联子查询只在子查询中有效,出了子查询就失效了
1158

被折叠的 条评论
为什么被折叠?



