這篇文章為大家帶來了關於SQL server的相關知識,其中主要介紹了SQL Server主鍵約束(PRIMARY KEY),主鍵是唯一標識表中每一行的一列或一組列,文章圍繞主題展開詳情,下面一起來看一下,希望對大家有幫助。
推薦學習:《SQL教學》
主鍵是唯一標識表中每一行的一列或一組列。您可以使用主鍵約束為表格建立主鍵。
如果主鍵只包含一列,你可以使用PRIMARY KEY
約束作為列約束:
CREATE TABLE table_name ( pk_column data_type PRIMARY KEY, ... );
如果主鍵有兩列或多列,則必須將主鍵約束用作表約束:
CREATE TABLE table_name ( pk_column_1 data_type, pk_column_2 data type, ... PRIMARY KEY (pk_column_1, pk_column_2) );
每個表只能包含一個主鍵,一個主鍵可以包含多個列,即多個列的組合不能重複。參與主鍵的所有欄位必須定義為NOT NULL
。如果未為所有主鍵列指定NOT NULL
約束,SQL Server會自動為這些列設定非空約束。
以下範例建立了一個具有主鍵的表,主鍵由一列組成:
CREATE TABLE dbo.activities ( activity_id INT PRIMARY KEY IDENTITY,--主键 activity_name VARCHAR (255) NOT NULL, activity_date DATE NOT NULL );
在表dbo.activities
中,activity_id
列是主鍵列,表示這一列的值不能重複
##IDENTITY屬性用於
activity_id列會自動產生唯一的整數值。
下面建立一個由兩個欄位組成外鍵的新表:
CREATE TABLE dbo.participants( activity_id int, customer_id int, PRIMARY KEY(activity_id, customer_id) );
activity_id或
customer_id列中的值可以重複,但兩列中的每個值組合都必須是唯一的。
ALTER TABLE語句在表格中新增主鍵。例如範例:
先建立一個沒有主鍵列的表格:
CREATE TABLE dbo.events( event_id INT NOT NULL, event_name VARCHAR(255), start_date DATE NOT NULL, duration DEC(5,2) );
event_id列成為主鍵:
ALTER TABLE sales.events ADD PRIMARY KEY(event_id);
注意,如果推薦學習:《sales.events
表已經有數據,在將
event_id列提升為主鍵之前,必須確保
event_id中的值是不重複的。
SQL教學》
以上是簡單了解SQL Server主鍵約束(PRIMARY KEY)的詳細內容。更多資訊請關注PHP中文網其他相關文章!