SQL中,select 後的子查詢的一些理解

2022-05-17 08:44:06 字數 500 閱讀 3995

首先我們假設有表a,b

現在我們想知道a中的所有屬性a,於是我們寫出

select a.a from a;
這個時候,資料庫便會去遍歷a表中的每一行,並將其作為結果輸出,假設a表中有n行,那麼最後的結果也就是n行

在此基礎上,如果我們不光想知道的所有的a.a,還有在b表中,有多少行b.a與 a.a對應的a.b相等,於是我們寫出

select a.a,( select count(*) from b where b.a = a.b ) from a;
資料庫仍然會去遍歷a表中的每一行,對於每一行,子查詢中的a.b也會獲得乙個值,用於完成子查詢,子查詢的結果被附在結果集上,被輸出出來

也就是說,select後面的子查詢不會影響結果的行數,只是可以把from後方,表每一行的屬性借來一用

對於exists也是如此,只不過它可以改變結果的數量

SELECT 查詢 子查詢

1 非相關子查詢 非相關子查詢,也稱巢狀子查詢,可以多層巢狀。這種子查詢的執行不依賴於外查詢。執行過程是,先執行子查詢,子查詢的結果並不顯示出來,而是作為外查詢的條件值,然後執行外查詢。非相關子查詢的特點 子查詢只執行一次,其查詢結果不依賴於外查詢。而外查詢的查詢條件依賴於子查詢的結果,因此,也可以...

SQL查詢Select初探

一 根據身份證號查詢生日 select workno,name,substring identitycards,7,8 indate from dbo user where substring identitycards,7,4 1995 使用substring函式獲取生日,並篩選出1995年生的人...

SQL查詢語句SELECT精華

一 簡單查詢 簡單的transact sql查詢只包括選擇列表 from子句和where子句。它們分別說明所查詢列 查詢的 表或檢視 以及搜尋條件等。例如,下面的語句查詢testtable表中姓名為 張三 的nickname欄位和email欄位。select nickname,email from ...