1、單行子查詢
查詢工資比名字為ADAMS高的員工的名字和工資:
除了關聯子查詢以外,子查詢都是先執行子查詢再執行主查詢。
2、在from后面使用子查詢
把子查詢的查詢的結果當作一個新的表。
3、sql優化
在子查詢和多表查詢都可以解決同一個問題的時候,盡量使用多表查詢,因為子查詢的方式需要訪問數據庫兩次,查詢效率更低。
4、多行子查詢
(1)關鍵字in:
(2)any(集合中的任意一個值)
這里的大於any,即大於最小值。
(3)all(集合中的所有元素)
這里大於all,即大於最大值。
5、rownum
查詢全部的員工信息:
加上rownum屬性后進行員工信息的查詢:
可以看出rownum屬性是根據查詢結果的先后順序進行添加的。
當按員工薪水進行員工信息的排序時,rownum屬性依舊不變。
查詢薪水最高的三個人的信息,第二行的select語句查詢的數據是臨時表。
6、關聯子查詢
關聯子查詢中,外部查詢返回的每一行數據,內部查詢都要執行一次。上面的例子中,先取出emp表中的第一行數據,在內查詢中查詢該工作的平均工資,然后利用外查詢,查詢高於平均工資的員工信息。
7、UNION
(1)分別查詢10號部門和20號部門的員工信息:
(2)使用集合運算的方式一次查詢10號和20號部門的員工信息:
(3)盡量不要使用UNION,因為查詢效率會隨着UNION使用的次數的增多(訪問數據庫的次數也會增多)而降低。
8、交集:INTERSECT
9、差集:MINUS