數(shù)據(jù)庫(kù)表與表之間如何建立聯(lián)系-創(chuàng)新互聯(lián)

這篇文章主要介紹了數(shù)據(jù)庫(kù)表與表之間如何建立聯(lián)系,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)建站專(zhuān)注于銅鼓企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開(kāi)發(fā),商城網(wǎng)站定制開(kāi)發(fā)。銅鼓網(wǎng)站建設(shè)公司,為銅鼓等地區(qū)提供建站服務(wù)。全流程定制制作,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

數(shù)據(jù)庫(kù)表與表之間通過(guò)主外鍵來(lái)建立聯(lián)系。如果為表指定了主鍵約束, 數(shù)據(jù)庫(kù)引擎將通過(guò)為主鍵列自動(dòng)創(chuàng)建索引來(lái)強(qiáng)制數(shù)據(jù)的性;而外鍵是用于在兩個(gè)表中的數(shù)據(jù)之間建立和加強(qiáng)鏈接的一列或多列的組合,可控制可在外鍵表中存儲(chǔ)的數(shù)據(jù)。

數(shù)據(jù)庫(kù)表與表之間通過(guò)主外鍵來(lái)建立聯(lián)系。

(推薦教程:mysql視頻教程)

主鍵約束

表通常具有包含標(biāo)識(shí)表中每一行的值的一列或一組列。 這樣的一列或多列稱(chēng)為表的主鍵 (PK),用于強(qiáng)制表的實(shí)體完整性。 由于主鍵約束可保證數(shù)據(jù)的性,因此經(jīng)常對(duì)標(biāo)識(shí)列定義這種約束。

如果為表指定了主鍵約束, 數(shù)據(jù)庫(kù)引擎 將通過(guò)為主鍵列自動(dòng)創(chuàng)建索引來(lái)強(qiáng)制數(shù)據(jù)的性。 當(dāng)在查詢(xún)中使用主鍵時(shí),此索引還允許對(duì)數(shù)據(jù)進(jìn)行快速訪問(wèn)。 如果對(duì)多列定義了主鍵約束,則一列中的值可能會(huì)重復(fù),但來(lái)自主鍵約束定義中所有列的值的任何組合必須。

如下圖所示, Purchasing.ProductVendor 表中的 ProductID 和 VendorID 列構(gòu)成了針對(duì)此表的復(fù)合主鍵約束。 這確保了 ProductVendor 表中的每個(gè)行都具有 ProductID 和 VendorID 的一個(gè)組合。 這樣可以防止插入重復(fù)的行。

數(shù)據(jù)庫(kù)表與表之間如何建立聯(lián)系

  • 一個(gè)表只能包含一個(gè)主鍵約束。

  • 主鍵不能超過(guò) 16 列且總密鑰長(zhǎng)度不能超過(guò) 900 個(gè)字節(jié)。

  • 由主鍵約束生成的索引不會(huì)使表中的索引數(shù)超過(guò) 999 個(gè)非聚集索引和 1 個(gè)聚集索引。

  • 如果沒(méi)有為主鍵約束指定聚集或非聚集索引,并且表中沒(méi)有聚集索引,則使用聚集索引。

  • 在主鍵約束中定義的所有列都必須定義為不為 Null。 如果沒(méi)有指定為 Null 性,則參與主鍵約束的所有列的為 Null 性都將設(shè)置為不為 Null。

  • 如果在 CLR 用戶定義類(lèi)型的列中定義主鍵,則該類(lèi)型的實(shí)現(xiàn)必須支持二進(jìn)制排序。

外鍵約束

外鍵 (FK) 是用于在兩個(gè)表中的數(shù)據(jù)之間建立和加強(qiáng)鏈接的一列或多列的組合,可控制可在外鍵表中存儲(chǔ)的數(shù)據(jù)。 在外鍵引用中,當(dāng)包含一個(gè)表的主鍵值的一個(gè)或多個(gè)列被另一個(gè)表中的一個(gè)或多個(gè)列引用時(shí),就在這兩個(gè)表之間創(chuàng)建了鏈接。 這個(gè)列就成為第二個(gè)表的外鍵。

例如,因?yàn)殇N(xiāo)售訂單和銷(xiāo)售人員之間存在一種邏輯關(guān)系,所以 Sales.SalesOrderHeader 表含有一個(gè)指向 Sales.SalesPerson 表的外鍵鏈接。 SalesOrderHeader 表中的 SalesPersonID 列與 SalesPerson 表中的主鍵列相對(duì)應(yīng)。 SalesOrderHeader 表中的 SalesPersonID 列是指向 SalesPerson 表的外鍵。 通過(guò)創(chuàng)建此外鍵關(guān)系,如果 SalesPerson 表的主鍵中不存在 SalesPersonID 的值,則 SalesPersonID 的值將無(wú)法插入到 SalesOrderHeader 表。

表最多可以將 253 個(gè)其他表和列作為外鍵引用(傳出引用)。 SQL Server 2016 (13.x) 將可在單獨(dú)的表中引用的其他表和列(傳入引用)的數(shù)量限制從 253 提高至 10,000。 (兼容性級(jí)別至少必須為 130。)數(shù)量限制的提高帶來(lái)了下列約束:

  • 只有 DELETE DML 操作才支持超過(guò) 253 個(gè)外鍵引用。 不支持 UPDATE 和 MERGE 操作。

  • 對(duì)自身進(jìn)行外鍵引用的表仍只能進(jìn)行 253 個(gè)外鍵引用。

  • 列存儲(chǔ)索引、內(nèi)存優(yōu)化表、Stretch Database 或已分區(qū)外鍵表暫不支持進(jìn)行超過(guò) 253 個(gè)外鍵引用。

外鍵約束的索引

與主鍵約束不同,創(chuàng)建外鍵約束不會(huì)自動(dòng)創(chuàng)建對(duì)應(yīng)的索引。 但是由于以下原因,對(duì)外鍵手動(dòng)創(chuàng)建索引通常是有用的:

  • 當(dāng)在查詢(xún)中組合相關(guān)表中的數(shù)據(jù)時(shí),經(jīng)常在聯(lián)接條件中使用外鍵列,方法是將一個(gè)表的外鍵約束中的一列或多列與另一個(gè)表中的主鍵列或鍵列匹配。 索引使 數(shù)據(jù)庫(kù)引擎 可以在外鍵表中快速查找相關(guān)數(shù)據(jù)。 但是,創(chuàng)建此索引并不是必需的。 即使沒(méi)有對(duì)兩個(gè)相關(guān)表定義主鍵或外鍵約束,也可以對(duì)來(lái)自這兩個(gè)表中的數(shù)據(jù)進(jìn)行組合,但兩個(gè)表間的外鍵關(guān)系說(shuō)明已用其鍵作為條件對(duì)其進(jìn)行了優(yōu)化,以便組合到查詢(xún)中。

  • 對(duì)主鍵約束的更改可由相關(guān)表中的外鍵約束檢查。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“數(shù)據(jù)庫(kù)表與表之間如何建立聯(lián)系”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

網(wǎng)站欄目:數(shù)據(jù)庫(kù)表與表之間如何建立聯(lián)系-創(chuàng)新互聯(lián)
標(biāo)題URL:http://muchs.cn/article38/dhespp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、網(wǎng)站制作、網(wǎng)站營(yíng)銷(xiāo)品牌網(wǎng)站建設(shè)、云服務(wù)器、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開(kāi)發(fā)