一、子查询:
为什么要学习使用子查询?
1、弥补分组查询的限制
2、体现SQL的“结构化”
3、锻炼逻辑思维能力
二、 子查询:嵌套在其他查询中的查询。又称内部查询,包含子查询的查询语句成为外部查询。
所有的子查询可以被分为两个类型:相关子查询和非相关子查询。
三、相关/非相关子查询的特点和区别:
1、非相关子查询:只执行一次;
2、相关子查询:外部返回一条,内部执行一次。
3、区分:相关查询依赖外面查询,不能单独查询。
四、子查询最简单的形式:内部查询为外部查询的每行返回一个单值,他通常做个一个结果插入到一个计算列。
五、 子查询返回结果集必须加别名;子查询同时也可以用于修改、删除。
六、where后的子查询:
1、返回一个值
2、返回多个值
七、 针对子查询返回集合的操作符:
1、使用not exists代替notin提供性能,exists后面总是跟着一个子查询,只要子查询返回了行,exists的值就为真。
2、 all运算符与子查询和比较运算符(如=、>或<=)一起使用。如果子查询返回的所有值都满足比较运算,那么比较表达式就为真。
3、any与all的工作方式相同,不同的是:在子查询返回的 值中,只要有一行满足比较运算,那么比较表达式就为真。
八、为什么子查询这么强大但是工作中却用得不多?因为子查询的效率低。