最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

主鍵與聚集索引

 更新時間:2009年07月24日 00:08:04   作者:  
表通常具有包含唯一標(biāo)識表中每一行的值的一列或一組列。這樣的一列或多列稱為表的主鍵 (PK),用于強制表的實體完整性。在創(chuàng)建或修改表時,您可以通過定義 PRIMARY KEY 約束來創(chuàng)建主鍵。

主鍵(PRIMARY KEY )
來自MSDN的描述:
表通常具有包含唯一標(biāo)識表中每一行的值的一列或一組列。這樣的一列或多列稱為表的主鍵 (PK),用于強制表的實體完整性。在創(chuàng)建或修改表時,您可以通過定義 PRIMARY KEY 約束來創(chuàng)建主鍵。
一個表只能有一個 PRIMARY KEY 約束,并且 PRIMARY KEY 約束中的列不能接受空值。由于 PRIMARY KEY 約束可保證數(shù)據(jù)的唯一性,因此經(jīng)常對標(biāo)識列定義這種約束。
如果為表指定了 PRIMARY KEY 約束,則 SQL Server 2005 數(shù)據(jù)庫引擎 將通過為主鍵列創(chuàng)建唯一索引來強制數(shù)據(jù)的唯一性。當(dāng)在查詢中使用主鍵時,此索引還可用來對數(shù)據(jù)進(jìn)行快速訪問。因此,所選的主鍵必須遵守創(chuàng)建唯一索引的規(guī)則。
創(chuàng)建主鍵時,數(shù)據(jù)庫引擎 會自動創(chuàng)建唯一的索引來強制實施 PRIMARY KEY 約束的唯一性要求。如果表中不存在聚集索引或未顯式指定非聚集索引,則將創(chuàng)建唯一的聚集索引以強制實施 PRIMARY KEY 約束。
聚集索引
聚集索引基于數(shù)據(jù)行的鍵值在表內(nèi)排序和存儲這些數(shù)據(jù)行。每個表只能有一個聚集索引,因為數(shù)據(jù)行本身只能按一個順序存儲。
每個表幾乎都對列定義聚集索引來實現(xiàn)下列功能:
可用于經(jīng)常使用的查詢。
提供高度唯一性。
兩者的比較
下面是一個簡單的比較表 

  主鍵 聚集索引
用途 強制表的實體完整性 對數(shù)據(jù)行的排序,方便查詢用
一個表多少個 一個表最多一個主鍵 一個表最多一個聚集索引
是否允許多個字段來定義 一個主鍵可以多個字段來定義 一個索引可以多個字段來定義
     
是否允許 null 數(shù)據(jù)行出現(xiàn) 如果要創(chuàng)建的數(shù)據(jù)列中數(shù)據(jù)存在null,無法建立主鍵。
創(chuàng)建表時指定的 PRIMARY KEY 約束列隱式轉(zhuǎn)換為 NOT NULL。
沒有限制建立聚集索引的列一定必須 not null .
也就是可以列的數(shù)據(jù)是 null
參看最后一項比較
是否要求數(shù)據(jù)必須唯一 要求數(shù)據(jù)必須唯一 數(shù)據(jù)即可以唯一,也可以不唯一??茨愣x這個索引的 UNIQUE 設(shè)置。
(這一點需要看后面的一個比較,雖然你的數(shù)據(jù)列可能不唯一,但是系統(tǒng)會替你產(chǎn)生一個你看不到的唯一列)
     
創(chuàng)建的邏輯 數(shù)據(jù)庫在創(chuàng)建主鍵同時,會自動建立一個唯一索引。
如果這個表之前沒有聚集索引,同時建立主鍵時候沒有強制指定使用非聚集索引,則建立主鍵時候,同時建立一個唯一的聚集索引
如果未使用 UNIQUE 屬性創(chuàng)建聚集索引,數(shù)據(jù)庫引擎 將向表自動添加一個四字節(jié) uniqueifier 列。
必要時,數(shù)據(jù)庫引擎 將向行自動添加一個 uniqueifier 值,使每個鍵唯一。此列和列值供內(nèi)部使用,用戶不能查看或訪問。

相關(guān)文章

  • Ubuntu 17.10安裝phpMyAdmin數(shù)據(jù)庫管理工具配置詳解

    Ubuntu 17.10安裝phpMyAdmin數(shù)據(jù)庫管理工具配置詳解

    這篇文章主要介紹了Ubuntu 17.10安裝phpMyAdmin數(shù)據(jù)庫管理工具,通過示例代碼給大家講解了安裝phpmyadmin數(shù)據(jù)庫的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-03-03
  • Navicat?Premium12進(jìn)行數(shù)據(jù)庫定期自動備份的方法步驟

    Navicat?Premium12進(jìn)行數(shù)據(jù)庫定期自動備份的方法步驟

    本文主要介紹了Navicat?Premium?12進(jìn)行數(shù)據(jù)庫定期自動備份,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Navicat Premium 15無限試用注冊表修改的方法詳解

    Navicat Premium 15無限試用注冊表修改的方法詳解

    這篇文章主要介紹了Navicat Premium 15無限試用注冊表修改的方法詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 使用Navicat工具比對兩個數(shù)據(jù)庫所有表結(jié)構(gòu)的差異案例詳解

    使用Navicat工具比對兩個數(shù)據(jù)庫所有表結(jié)構(gòu)的差異案例詳解

    這篇文章主要介紹了如何使用Navicat工具對比兩個數(shù)據(jù)庫test_old和test_new,并生成相應(yīng)的DDL?SQL語句,以便將test_old升級到和test_new一致的狀態(tài),需要的朋友可以參考下
    2025-02-02
  • DBeaver連接hive的超詳細(xì)圖解

    DBeaver連接hive的超詳細(xì)圖解

    dbeaver是一個圖形化的界面工具,專門用于與各種數(shù)據(jù)庫的集成,通過dbeaver我們可以與各種數(shù)據(jù)庫進(jìn)行集成通過圖形化界面的方式來操作我們的數(shù)據(jù)庫與數(shù)據(jù)庫表,這篇文章主要給大家介紹了關(guān)于DBeaver連接hive的超詳細(xì)圖解,需要的朋友可以參考下
    2024-03-03
  • 通過navicat導(dǎo)入sql文件的操作方法

    通過navicat導(dǎo)入sql文件的操作方法

    在很多項目當(dāng)中都有sql文件導(dǎo)入到MySQL數(shù)據(jù)庫的需要,因為有sql數(shù)據(jù)庫文件,這個項目才能正常運行起來,那么現(xiàn)在就來學(xué)習(xí)一下怎么導(dǎo)入sql文件到navicat里面吧,需要的朋友可以參考下
    2024-03-03
  • SQLite與MySQL區(qū)別及優(yōu)缺點介紹

    SQLite與MySQL區(qū)別及優(yōu)缺點介紹

    這篇文章介紹了SQLite與MySQL的區(qū)別及優(yōu)缺點,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • 本地SQL注射攻略分析曝光

    本地SQL注射攻略分析曝光

    以后會陸續(xù)給大家講一些本人的入侵經(jīng)驗,一天學(xué)一點,這東西雖然我玩膩了,但是還是很想給大家入門時的一些幫助。本地SQL注射,可能很多朋友都沒有聽說過,下面biweilun為大家講解下概念及其應(yīng)用
    2008-07-07
  • 國產(chǎn)開源數(shù)據(jù)庫openGauss容器部署過程詳解

    國產(chǎn)開源數(shù)據(jù)庫openGauss容器部署過程詳解

    openGauss是一款開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它具有多核高性能、全鏈路安全性、智能運維等企業(yè)級特性,這篇文章主要介紹了國產(chǎn)開源數(shù)據(jù)庫openGauss容器部署,需要的朋友可以參考下
    2022-08-08
  • 處理Hive中的數(shù)據(jù)傾斜的方法

    處理Hive中的數(shù)據(jù)傾斜的方法

    數(shù)據(jù)傾斜是大數(shù)據(jù)處理不可避免會遇到的問題,那么在Hive中數(shù)據(jù)傾斜又是如何導(dǎo)致的?通過本片本章,你可以清楚的認(rèn)識為什么Hive中會發(fā)生數(shù)據(jù)傾斜;發(fā)生數(shù)據(jù)傾斜時我們又該用怎么的方案去解決不同的數(shù)據(jù)傾斜問題,需要的朋友可以參考下
    2024-10-10

最新評論

邛崃市| 高青县| 三门县| 雷波县| 广灵县| 洪湖市| 缙云县| 虞城县| 新余市| 武夷山市| 宁远县| 横峰县| 临洮县| 高碑店市| 信丰县| 石阡县| 冷水江市| 宁远县| 喀什市| 浦北县| 阿克苏市| 墨江| 洪泽县| 太仆寺旗| 永吉县| 台前县| 南充市| 兰考县| 太仆寺旗| 钟山县| 海晏县| 安丘市| 澄迈县| 孝义市| 花莲市| 隆德县| 苏尼特右旗| 七台河市| 休宁县| 南城县| 台南县|