自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server內(nèi)連接和外連接的區(qū)別

數(shù)據(jù)庫 SQL Server
連接查詢是SQL Server中的重要查詢方式,下文將對內(nèi)連接和外連接這兩種連接查詢進行比較,希望可以讓您對這兩種連接查詢方式有更深的了解。

SQL Server內(nèi)連接和外連接的區(qū)別在哪里呢?這是很多人都提到過的問題,下面就為您分析SQL Server內(nèi)連接和外連接的具體區(qū)別,供您參考。

假設(shè)一個數(shù)據(jù)庫中有兩張表,一張是學(xué)生表StudentInfo,一張是班級表ClassInfo,兩張表之間用ClassId字段進行關(guān)聯(lián)。

如果用SQL Server內(nèi)連接,正常的寫法是這樣的:

Select StudentInfo.*,ClassInfo.* from StudentInfo join ClassInfo on StudentInfo.ClassId=ClassInfo.ClassId

用這種寫法不會出現(xiàn)笛卡爾積,但是內(nèi)連接是允許省略連接條件的,也就是可以省略掉on后面的內(nèi)容,所以如果寫成這樣:

Select StudentInfo.*,ClassInfo.* from StudentInfo,ClassInfo

也是可以通過編譯的,但是這樣一來就產(chǎn)生了一個笛卡爾積(關(guān)于笛卡爾積的內(nèi)容見文章最后注解)。

但是因為怕產(chǎn)生笛卡爾積而拒絕使用內(nèi)鏈接是不正確的,只要不省略掉連接條件,是不會產(chǎn)生笛卡爾積的。

具體采用內(nèi)連接還是外連接要看具體問題的需要。內(nèi)連接的特性是只顯示符合連接條件的記錄,以剛才的語句為例,查詢結(jié)果只顯示學(xué)生表和班級表中ClassId相等的記錄。舉例來說,如果有條學(xué)生記錄的ClassId字段為空,那么用內(nèi)鏈接將不會顯示這條學(xué)生記錄,因為在班級表里面是找不到對應(yīng)的ClassId的。

而外連接就不一樣,以左外連接為例(右外連接類似),它除了顯示符合連接條件的記錄以外,還會顯示所有左表中的記錄(右外連接就是所有右表中的記錄)。還是以剛才的例子說明,如果學(xué)生表中有條學(xué)生記錄的ClassId字段為空,用學(xué)生表左外連接班級表,那么是會顯示這條學(xué)生記錄的。

所以如果要求只顯示已有分班的學(xué)生記錄,那么就應(yīng)該用內(nèi)連接查詢;如果要求查詢所有學(xué)生記錄,那么就應(yīng)該采用外連接查詢。

笛卡爾積:
假設(shè)集合A={a,b},集合B={0,1,2},則兩個集合的笛卡爾積為{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}。可以擴展到多個集合的情況。類似的例子有,如果A表示某學(xué)校學(xué)生的集合,B表示該學(xué)校所有課程的集合,則A與B的笛卡爾積表示所有可能的選課情況。
 

 

 

【編輯推薦】

SQL Server添加列及刪除列

SQL Server存儲過程的單步調(diào)試

sql server系統(tǒng)表說明

SQL Server系統(tǒng)表的應(yīng)用

Sql Server全文索引的遷移

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-11-08 15:47:01

SQL Server外

2015-08-21 13:50:49

Oracle連接

2010-11-04 15:56:13

DB2內(nèi)連接查詢

2010-09-17 17:23:45

SQL外連接

2010-09-17 16:17:13

SQL內(nèi)連接

2009-07-22 10:53:42

MySQL左連接

2010-11-08 16:56:52

SQL Server綁

2010-08-26 11:48:30

DB2外連接交叉連接

2010-09-26 14:12:35

SQL內(nèi)連接

2010-11-08 17:01:53

SQL Server綁

2010-11-10 10:09:40

2010-11-08 14:40:46

SQL Server連

2010-11-08 15:21:17

SQL Server連

2023-08-02 10:58:18

SP_WHOSQL Server

2010-10-19 17:28:08

SQL SERVER外

2010-10-20 17:37:23

SQL Server連

2023-10-08 07:37:44

SQL連接

2009-08-24 15:41:50

C#連接SQL Ser

2024-06-06 09:12:40

數(shù)據(jù)庫SQLServer

2010-06-17 15:24:51

SQL SERVER
點贊
收藏

51CTO技術(shù)棧公眾號