1、单行子查询
查询工资比名字为ADAMS高的员工的名字和工资:
除了关联子查询以外,子查询都是先执行子查询再执行主查询。
2、在from后面使用子查询
把子查询的查询的结果当作一个新的表。
3、sql优化
在子查询和多表查询都可以解决同一个问题的时候,尽量使用多表查询,因为子查询的方式需要访问数据库两次,查询效率更低。
4、多行子查询
(1)关键字in:
(2)any(集合中的任意一个值)
这里的大于any,即大于最小值。
(3)all(集合中的所有元素)
这里大于all,即大于最大值。
5、rownum
查询全部的员工信息:
加上rownum属性后进行员工信息的查询:
可以看出rownum属性是根据查询结果的先后顺序进行添加的。
当按员工薪水进行员工信息的排序时,rownum属性依旧不变。
查询薪水最高的三个人的信息,第二行的select语句查询的数据是临时表。
6、关联子查询
关联子查询中,外部查询返回的每一行数据,内部查询都要执行一次。上面的例子中,先取出emp表中的第一行数据,在内查询中查询该工作的平均工资,然后利用外查询,查询高于平均工资的员工信息。