一、关键点小结
1、“视图不是表,视图是虚表,视图依赖于表”
2、对于一个视图来说,如果包含以下结构的任意一种都是不可以被更新的:
- 聚合函数 SUM()、MIN()、MAX()、COUNT() 等。
- DISTINCT 关键字。
- GROUP BY 子句。
- HAVING 子句。
- UNION 或 UNION ALL 运算符。
- FROM 子句中包含多个表。
视图归根结底还是从表派生出来的。
tips:创建视图时也尽量使用限制不允许通过视图来修改表
3、关联子查询执行逻辑如下:
(1)先从主查询的Product表中product _type列取出第一个值,进入子查询中,得到子查询结果,然后返回父查询,判断父查询的where子句条件,则返回整个语句的第1条结果。
(2)重复上述操作,直到所有主查询中的Product表中product _type列记录取完为止。得出整个语句的结果集,就是最后的答案。
4、使用子查询即可保持 sql 语句不变,极大提高了程序的可维护性,这是系统开发中需要重点考虑的内容。
二、练习
3.1代码及结果:
CREATE VIEW ViewPractice5_1 (product_type, sale_price,regist_date)
AS
SELECT product_type, s