SQL里面的嵌套查詢語句怎么寫
1,簡單子查詢;
select name,age from person
where age >
(
select age from person
where name = '孫權'
)
2,in嵌套查詢;
select name from person
where countryid in
(
select countryid from country
where countryname = '魏國'
)
3,some嵌套查詢
select name from person
where countryid = some --用等號和以下查詢到的值比較,如果與其中一個相等,就返回
(
select countryid from country
where countryname = '魏國'
)
4,all嵌套查詢
select name from person
where countryid > all --當countryid大于以下返回的所有id,此結果才為True,此結果才返回
(
select countryid from country
where countryname = '魏國'
)
5,exits嵌套查詢
SELECT * FROM Person
WHERE exists
(
SELECT 1 --SELECT 0 SELECT NULL 返回結果都一樣,因為這三個子查詢都有結果集返回,因此總是True SELECT * FROM Person照常執行
)
但是如果子查詢中因為加了條件而沒有結果集返回,則主語句就不執行了:
SELECT * FROM Person
WHERE exists
(
SELECT * FROM Person
WHERE Person_Id = 100 --如果不存在Person_Id的記錄,則子查詢沒有結果集返回,主語句不執行
)
嵌套查詢與連接查詢的區別是什么
嵌套查詢的意思是,一個查詢語句(select-from-where)查詢語句塊可以嵌套在另外一個查詢塊的where子句中,稱為嵌套查詢。其中外層查詢也稱為父查詢,主查詢。內層查詢也稱子查詢,從查詢。
嵌套查詢的工作方式是:先處理內查詢,由內向外處理,外層查詢利用內層查詢的結果。嵌套查詢不僅僅可以用于父查詢select語句使用。
連接查詢是關系數據庫中最主要的查詢,主要包括內連接、外連接和交叉連接等。通過連接運算符可以實現多個表查詢。
總結:都是關聯性查詢方式,嵌套查詢是由內而外的查詢,鏈接查詢是多表間的查詢。