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...