子查詢是一個查詢語句嵌套在另一個查詢語句中诀拭。內(nèi)層查詢語句的結(jié)果蝗拿,可以為外層查詢語句提供查詢條件。
子查詢關(guān)鍵字:in蛹找、not in蜕便、any劫恒、all、exists轿腺、not exists
1.帶in關(guān)鍵字的子查詢
實例:
select * from employee where d_id in (select d_id from department)
not in與之相反两嘴。
2.帶比較運算符的子查詢
比較運算符包括=、族壳!=憔辫、> 、>=仿荆、 <贰您、 <=、 <>等
select id,name,score from computer_stu where score >= (select score from schoolarship where level = 1);
3.帶exists關(guān)鍵字的子查詢
exists表示存在拢操。內(nèi)層返回一個布爾值锦亦。當內(nèi)層返回false,則不進行外層查詢庐冯,返回空值孽亲;如果內(nèi)層返回true,則進行外層查詢展父。
select * from employee where exists (select d_name from department where d_id = 1003);
exists可以與其他查詢條件一起使用返劲,用and、or連接栖茉。
select * from employee where age > 25 and exists (select d_name from department where d_id = 1003);
not exists與exists正好相反篮绿。
4.帶any關(guān)鍵字的子查詢
any關(guān)鍵字表示滿足其中任何一條件。只要滿足內(nèi)層查詢語句返回結(jié)果中的任何一個吕漂,就可以通過該條件執(zhí)行外層查詢語句亲配。
>any 表示大于任何一個值,=any表示等于任何一個值惶凝。
select * from computer_stu where score >= any (select score from scholarship);
5.帶all關(guān)鍵字的子查詢
all表示滿足所有條件吼虎。只有滿足內(nèi)襯層查詢語句返回的所有結(jié)果,才可以執(zhí)行外層查詢語句苍鲜。
select * from computer_stu where score >= all (select score from scholarship);