資料庫中的EXISTS語句

2021-10-01 18:39:58 字數 1287 閱讀 9959

exists語句的語法:

1、當exists語句中的查詢結果為非空時返回值為true

2、當exists語句中的查詢結果為空時返回值為false

exists語句在關係代數中表示存在。

什麼時候使用exists語句:

1、首先要明確在sql server中帶有in謂詞,比較運算子的查詢語句都可以轉換成exists語句。如果你exists語句用的熟練的話可以首先使用它,如果不太熟的話就最後使用。

2、要查詢語句中有「全部」等表達任意意思的詞一般都使用exists語句查詢。(主要思想就是否定再否定)。

例題:例

一、查詢選修了全部課程的學生姓名

可以將其轉換成不存在有課程沒有選。然後根據語義寫出sql 語句。

select sname from student where

notexists

(select

*from course where

notexists

(select

*from sc where student.sno=sc.sno and sc.cno=course.cno)

)

如果這樣不好理解的話,還可以這樣理解!

exists語句的巢狀查詢可以理解為左外連線!!

student.sno

course.cno

sc.cno11

1122

13null14

null

....

....

....

這裡只展示了學號為1的學生選課資訊。 第一條select語句是為了獲取所有學生的學號 第二個select語句是為了獲取所有的選修課程 第三條select語句是為了比較當前學號學生是否與選修課程相等。如果相等第二個not exists語句返回true,故第二個not exist語句返回false,因此不列印這個學生的學號。

例二、查詢至少選修了學生201215122選修的全部課程的學生學號

select sno from sc scx where

notexists

(select

*from sc scy where scy.sno=

'201215122'

andnot exist (

select

*from sc scz where scx.sno=scz.sno and scz.cno=scy.cno)

)

資料庫中IN和EXISTS的區別

乙個是問in exist的區別,乙個是not in和not exists的區別 把這兩個很普遍性的比較關心的問題總結回答一下。in和exist的區別 從sql程式設計角度來說,in直觀,exists不直觀多乙個select,in可以用於各種子查詢,而exists好像只用於關聯子查詢 從效能上來看 e...

資料庫中IN和EXISTS的區別

乙個是問in exist的區別,乙個是not in和not exists的區別 把這兩個很普遍性的比較關心的問題總結回答一下。in和exist的區別 從sql程式設計角度來說,in直觀,exists不直觀多乙個select,in可以用於各種子查詢,而exists好像只用於關聯子查詢 從效能上來看 e...

資料庫 EXISTS的用法

2017年10月23日 09 37 08 airbundey 閱讀數 3310 標籤 資料庫 exists exists用於檢查子查詢是否至少會返回一行資料,該子查詢實際上並不返回任何資料,而是返回值true或false exists 指定乙個子查詢,檢測 行 的存在。語法 exists subqu...