SQL中的Exist和in關鍵字使用和區別

2021-09-12 05:34:00 字數 759 閱讀 6235

1.什麼是exist關鍵字。

指定乙個子查詢,檢測行的存在。遍歷迴圈外表,然後看外表中的記錄有沒有和內錶的資料一樣的。匹配上就將結果放入結果集中,沒有則不將結果放入結果集。

2.表結構

3.exist查詢和in查詢

exists查詢:先看外表的值,再看內錶值和外表值進行匹配,匹配上了則將結果(返回外表的字段列)放進結果集

select

cno,

cname

from

course

where

exists (

select

*from

teacher

where

teacher.tno = course.tno

);in查詢:先看內錶的值,再看外表值和內錶值進行匹配,匹配上了則將結果(返回外表的字段列)放進結果集

select

distinct

cno,

cname

from

course

where

tno in (

select

teacher.tno

from

teacher

);以上內容**:

sql中in和exist語句的區別?

in和exists in 是把外表和內錶作hash 連線,而exists是對外表作loop迴圈,每次loop迴圈再對內表進行查詢。如果兩個表中乙個較小,乙個是大表,則子查詢表大的用exists,子查詢錶小的用in 例如 表a 小表 表b 大表 1 select from a where cc in ...

SQL中exist和in的執行效率問題

select from a where id in select id from b select a.from a a where exists select 1 from b b where a.id b.id 結論 1 看表資料規模,a表 b表,使用in a表2 無論什麼情況,not exis...

sql中exist與in的區別

in 和 exists也是很好區別的.in 是乙個集合運算子.a in 這個運算中,前面是乙個元素,後面是乙個集合,集合中的元素型別是和前面的元素一樣的.而exists是乙個存在判斷,如果後面的查詢中有結果,則exists為真,否則為假.in 運算用在語句中,它後面帶的select 一定是選乙個字段...