Oracle(五)--> 進階子查詢(二),oracle--查詢

來源:互聯網
上載者:User

Oracle(五)--> 進階子查詢(二),oracle--查詢
一、相互關聯的子查詢相互關聯的子查詢按照一行接一行的順序執行,主查詢的每一行都執行一次子查詢。
例:若 employees 表中 employee_id 與 job_history 表中 employee_id 相同的數目不小於 2 ,輸出這些相同 id 的員工的 employee_id , last_name 和其 job_id。讓表 employees 進入子查詢,通過 employee_id 與 job_history 建立聯絡。sql 語句與查詢結果如下
二、EXISTS 關鍵字   ·EXISTS 操作符檢查在子查詢中是否存在滿足條件的行   ·如果在子查詢中存在滿足條件的行:     -- 不在子查詢中繼續尋找     -- 條件返回 TRUE   ·如果在子查詢中不存在滿足條件的行:     -- 條件返回 FALSE     -- 繼續在子查詢中尋找例:
查詢結果如下:
三、相關XX
1、相關更新-- 使用相互關聯的子查詢依據一個表中的資料更新另一個表的資料1)建立一個新表
2)插入一列新的記錄
3)為新列插入資料,資料必須一一對應
-- 此操作使得不同表的資訊可以集中到一個表
2、相關刪除 -- 使用相互關聯的子查詢依據一個表中的資料刪除另一個表的資料例:刪除表 employees ,與 emp_history 表都有的資料1)建立表 emp022 ,將 employees 表中 department_id 為 80,90 的資料添加進去
2)建立表 emp033 ,將 employees 表中 department_id 為 90 的添加進去
3)將 emp022 表中與 emp033 表資料重複的部分進行刪除

四、WITH 子句   1)使用 WITH 子句,可以避免在 SELECT 語句中重複書寫相同的語句塊;   2)WITH 子句將該子句中的語句塊執行一次並儲存到使用者的暫存資料表空間中;   3)使用 WITH 子句可以提高查詢效率。
例:查詢公司中工資比 Fay 高的員工的資訊不使用 with 子句:
使用 with 子句:
此例並不明顯,但當資料量較大且查詢相同部分時,使用 WITH 子句會大大提高查詢效率。
例2:查詢公司中各部門的總工資大於公司中各部門的平均總工資的部門資訊
如果採取以前的查詢方式,將會有很多的巢狀查詢,使用 WITH 子句將大大簡化查詢,提高效率。

 

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.