首頁 > 資料庫 > SQL > 主體

簡單了解SQL Server主鍵約束(PRIMARY KEY)

WBOY
發布: 2022-09-06 17:30:57
轉載
3084 人瀏覽過

這篇文章為大家帶來了關於SQL server的相關知識,其中主要介紹了SQL Server主鍵約束(PRIMARY KEY),主鍵是唯一標識表中每一行的一列或一組列,文章圍繞主題展開詳情,下面一起來看一下,希望對大家有幫助。

簡單了解SQL Server主鍵約束(PRIMARY KEY)

推薦學習:《SQL教學

SQL Server PRIMARY KEY(主鍵)限制簡介

主鍵是唯一標識表中每一行的一列或一組列。您可以使用主鍵約束為表格建立主鍵。
如果主鍵只包含一列,你可以使用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會自動為這些列設定非空約束。

SQL Server PRIMARY KEY約束範例

以下範例建立了一個具有主鍵的表,主鍵由一列組成:

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_idcustomer_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中文網其他相關文章!

相關標籤:
sql
來源:jb51.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板