from student
where exists
(select *
from sc
where sc.sno=student.sno and cno='1;
)在這裡插入**片
本查詢涉及表student和sc表。我們可以這樣理解上面的sql語句做的事情:在student表中從頭到尾每次取乙個元組出來,用這個元組的sno與sc表所有的元組做比較,如果比較條件成立(sc表中存在sno值等於student.sno中值並且其cno='1』的元組),即exists語句中的sql語句有返回值過來,則exists返回給上一級元組乙個true值,則表示允許現在student表中的這個元組可以放入結果表中。
我是這樣理解的:
一、寫帶有exists查詢的子句時,首先子查詢中必須要有依賴父查詢的條件,即我們單獨把子查詢的select語句提出來不能正常執行;
二、每次查詢時父查詢表中的乙個元組對子查詢所有的元組進行判定,如果為true則父查詢中的這個元組允許放入結果表,否則進行父查詢下乙個元組的判定。
SQL中關於EXISTS謂詞的理解
讓我們先看看exists的用法 exists代表存在量詞。帶有exists謂詞的子查詢不返回任何資料,只產生邏輯真值 true 或邏輯假值 false 例如,以下的sql語句 select sname from student where exists select from sc where sc...
SQL之對EXISTS謂詞的理解
一 首先明確幾點 exists相當於存在量詞彐 exists和not exists不返回任何資料,只返回邏輯真或者假由exists引出的子查詢,其目標列表示式通常都用 因為exists的子查詢只返回真值或者假值,不返回選擇出來的結果,因此,你給什麼樣的列名最後返回的都是true或者false,所以給...
SQL語句查詢謂詞Exists原理之我見
在sql中使用exists表示判斷子查詢是否存在記錄,它返回的是true或false欄位。如果有記錄返回,則返回值,否則返回為false。exists做為where 條件時,是先對where 前的主查詢詢進行查詢,然後用主查詢的結果乙個乙個的代入exists的查詢進行判斷,如果為真則輸出當前這一條主...