2017年10月11日 星期三

PRIMARY KEY條件約束

PRIMARY KEY條件約束
PRIMARY KEY條件約束能夠將某單一欄位或多個欄位的組合定義為主索引鍵(其必須具有獨一性資料欄位)
例如,身分證字號欄位具有獨一性資料,因此可以用來建立主索引鍵。
如果將多個欄位組合成主索引鍵,則各別欄位中所存放的資料是允許重複的,然這些欄位組合後的值則必須是獨一的。

主索引鍵注意事項:
1.      每一個資料表只能擁有一個PRIMARY KEY條件約束,亦即只能有一個主索引鍵。
2.      主索引鍵的來源欄位不能允許接受Null值。
3.      最好是長度小且為整數欄位,以自動編號欄位最適合。

※新建資料表時建立PRIMARY KEY條件約束
1.      使用SQL Server Enterprise Manager建立資料表:
(1)   如果欲使用PRIMARY KEY條件約束將某單一欄位定義為主索引鍵,需先將此欄位設定成不允許接受Null值,再於此欄位左側方塊按右鍵選[設定主索引鍵]即可。
(2)   承上,若欲設多個欄位組成主索引鍵,需先將此欄位設定成不允許接受Null值,按住Ctrl鍵不放,於各欄位左側方塊選定後,按右鍵選[設定主索引鍵]即可
(3)   欲設定PRIMARY KEY條件約束的獨一索引,可於工具列中按[資料表和索引屬性]按鈕,選取[索引/索引鍵]標籤頁面。從[選定的索引]清單中選取PRIMARY KEY條件約束(預設名稱是’PK_資料表名稱),並進行下列設定:
a.       [索引名稱]文字方塊中鍵入PRIMARY KEY條件約束名稱,必須具有唯一性。
b.      預設會將PRIMARY KEY條件約束的獨一索引放在PRIMARY檔案群組中。
c.       如果希望將PRIMARY KEY條件約束的獨一索引建立成叢集獨一索引(Clustered Unique Index),請勾選核取方塊□建立成叢集-CLUSTERED(C)
(4)   [存檔]按鈕。
2.      使用CREATE TABLE命令
如果要使用PRIMARY KEY條件約束將某單一欄位定義成主索引鍵,可採用:
   CREATE TABLE table_name
      (
       { column_name data_type
        [[ CONSTRAINT constraint_name]
         {PRIMARY KEY}
         [CLUSTERED | NONCLUSTERED]
         [WITH FILLFACTOR = fillfactor]
         [ON {filegroup | DEFAULT}]
        ]
       } [,…n]
      )
  
   如果要使用PRIMARY KEY條件約束將多個欄位的組合定義成主索引鍵,則採用:
   CREATE TABLE table_name
      (
       { column_name data_type
       } [,…n]
       {[CONSTRAINT constraint_name]
         {PRIMARY KEY}
         [CLUSTERED | NONCLUSTERED]
         {(column[,…n])}
         [WITH FILLFACTOR = fillfactor]
         [ON {filegroup | DEFAULT}]
       }
      )
   語法中的CONSTRAINT constraint_name是一個可選擇性的引數,用來指定PRIMARY KEY條件約束的名稱。
   關鍵字PRIMARY KEY是不可省略的,它表示要建立一個PRIMARY KEY條件約束。
   如果希望替PRIMARY KEY條件約束建立一個叢集獨一索引,則加入關鍵字CLUSTERED
   WITH FILLFACTOR = fillfactor引數用來指定PRIMARY KEY條件約束之獨一索引的填充係數。
   ON引數用來指定存放PRIMARY KEY條件約束之獨一索引的檔案群組。
  
範例:
   建立一個資料表,並以PRIMARY KEY條件約束將欄位Id定義為主索引鍵,並將PRIMARY KEY條件約束的名稱設為PK_Id
   /* 檔案名稱:Demo618.sql */
   CREATE TABLE DemoTable8
     (
     Id char(10) CONSTRAINT PK_Id  PRIMARY KEY,
     Name varchar(16)
     )


沒有留言:

用頭腦去思考,不要人云亦云才好, 宗教信徒就是依賴與自私心態(求東求西)的人, 光是這點就很容易暴露弱點了, 難怪seafood吃飽飽,哈哈。 續上, 除了依賴與自私心態(兩者都是人性)之外。 另外也有很大一部份的人,是人云亦云的思考邏輯, 所以宗教才能譁眾取寵。