這篇文章主要講解了“主鍵與聚集索引的區(qū)別有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“主鍵與聚集索引的區(qū)別有哪些”吧!
創(chuàng)新互聯(lián)主營(yíng)建始網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開發(fā),建始h5微信平臺(tái)小程序開發(fā)搭建,建始網(wǎng)站營(yíng)銷推廣歡迎建始等地區(qū)企業(yè)咨詢
主鍵(PRIMARY KEY )
來(lái)自MSDN的描述:
表通常具有包含唯一標(biāo)識(shí)表中每一行的值的一列或一組列。這樣的一列或多列稱為表的主鍵 (PK),用于強(qiáng)制表的實(shí)體完整性。在創(chuàng)建或修改表時(shí),您可以通過定義 PRIMARY KEY 約束來(lái)創(chuàng)建主鍵。
一個(gè)表只能有一個(gè) PRIMARY KEY 約束,并且 PRIMARY KEY 約束中的列不能接受空值。由于 PRIMARY KEY 約束可保證數(shù)據(jù)的唯一性,因此經(jīng)常對(duì)標(biāo)識(shí)列定義這種約束。
如果為表指定了 PRIMARY KEY 約束,則 SQL Server 2005 數(shù)據(jù)庫(kù)引擎 將通過為主鍵列創(chuàng)建唯一索引來(lái)強(qiáng)制數(shù)據(jù)的唯一性。當(dāng)在查詢中使用主鍵時(shí),此索引還可用來(lái)對(duì)數(shù)據(jù)進(jìn)行快速訪問。因此,所選的主鍵必須遵守創(chuàng)建唯一索引的規(guī)則。
創(chuàng)建主鍵時(shí),數(shù)據(jù)庫(kù)引擎 會(huì)自動(dòng)創(chuàng)建唯一的索引來(lái)強(qiáng)制實(shí)施 PRIMARY KEY 約束的唯一性要求。如果表中不存在聚集索引或未顯式指定非聚集索引,則將創(chuàng)建唯一的聚集索引以強(qiáng)制實(shí)施 PRIMARY KEY 約束。
聚集索引
聚集索引基于數(shù)據(jù)行的鍵值在表內(nèi)排序和存儲(chǔ)這些數(shù)據(jù)行。每個(gè)表只能有一個(gè)聚集索引,因?yàn)閿?shù)據(jù)行本身只能按一個(gè)順序存儲(chǔ)。
每個(gè)表幾乎都對(duì)列定義聚集索引來(lái)實(shí)現(xiàn)下列功能:
可用于經(jīng)常使用的查詢。
提供高度唯一性。
兩者的比較
下面是一個(gè)簡(jiǎn)單的比較表
主鍵 | 聚集索引 | |
用途 | 強(qiáng)制表的實(shí)體完整性 | 對(duì)數(shù)據(jù)行的排序,方便查詢用 |
一個(gè)表多少個(gè) | 一個(gè)表最多一個(gè)主鍵 | 一個(gè)表最多一個(gè)聚集索引 |
是否允許多個(gè)字段來(lái)定義 | 一個(gè)主鍵可以多個(gè)字段來(lái)定義 | 一個(gè)索引可以多個(gè)字段來(lái)定義 |
是否允許 null 數(shù)據(jù)行出現(xiàn) | 如果要?jiǎng)?chuàng)建的數(shù)據(jù)列中數(shù)據(jù)存在null,無(wú)法建立主鍵。 創(chuàng)建表時(shí)指定的 PRIMARY KEY 約束列隱式轉(zhuǎn)換為 NOT NULL。 | 沒有限制建立聚集索引的列一定必須 not null . 也就是可以列的數(shù)據(jù)是 null 參看最后一項(xiàng)比較 |
是否要求數(shù)據(jù)必須唯一 | 要求數(shù)據(jù)必須唯一 | 數(shù)據(jù)即可以唯一,也可以不唯一。看你定義這個(gè)索引的 UNIQUE 設(shè)置。 (這一點(diǎn)需要看后面的一個(gè)比較,雖然你的數(shù)據(jù)列可能不唯一,但是系統(tǒng)會(huì)替你產(chǎn)生一個(gè)你看不到的唯一列) |
創(chuàng)建的邏輯 | 數(shù)據(jù)庫(kù)在創(chuàng)建主鍵同時(shí),會(huì)自動(dòng)建立一個(gè)唯一索引。 如果這個(gè)表之前沒有聚集索引,同時(shí)建立主鍵時(shí)候沒有強(qiáng)制指定使用非聚集索引,則建立主鍵時(shí)候,同時(shí)建立一個(gè)唯一的聚集索引 | 如果未使用 UNIQUE 屬性創(chuàng)建聚集索引,數(shù)據(jù)庫(kù)引擎 將向表自動(dòng)添加一個(gè)四字節(jié) uniqueifier 列。 必要時(shí),數(shù)據(jù)庫(kù)引擎 將向行自動(dòng)添加一個(gè) uniqueifier 值,使每個(gè)鍵唯一。此列和列值供內(nèi)部使用,用戶不能查看或訪問。 |
感謝各位的閱讀,以上就是“主鍵與聚集索引的區(qū)別有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)主鍵與聚集索引的區(qū)別有哪些這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
當(dāng)前名稱:主鍵與聚集索引的區(qū)別有哪些
當(dāng)前鏈接:http://www.rwnh.cn/article32/jdgppc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、用戶體驗(yàn)、App開發(fā)、網(wǎng)站排名、網(wǎng)頁(yè)設(shè)計(jì)公司、企業(yè)網(wǎng)站制作
聲明:本網(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)