Maison > Article > base de données > Comprendre brièvement les contraintes de la clé primaire de SQL Server (PRIMARY KEY)
Cet article vous apporte des connaissances pertinentes sur SQL server, qui présente principalement les contraintes de clé primaire de SQL Server (PRIMARY KEY). La clé primaire est une colonne ou un groupe de colonnes qui identifie de manière unique chaque ligne du tableau. le thème. Jetons un coup d’œil aux détails ci-dessous, j’espère que cela sera utile à tout le monde.
Étude recommandée : "Tutoriel SQL"
La clé primaire est une colonne ou un groupe de colonnes qui identifie de manière unique chaque ligne de la table. Vous pouvez utiliser des contraintes de clé primaire pour créer une clé primaire pour une table.
Si la clé primaire ne contient qu'une seule colonne, vous pouvez utiliser la contrainte PRIMARY KEY
comme contrainte de colonne : 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);
rrreee注意,如果
Si la clé primaire a deux colonnes ou plus, vous devez utiliser la clé primaire contrainte de clé comme contrainte de table :sales.events
表已经有数据,在将event_id
列提升为主键之前,必须确保event_id
rrreee
Chaque table ne peut contenir qu'une seule clé primaire, et une clé primaire peut contenir plusieurs colonnes, c'est-à-dire que la combinaison de plusieurs colonnes ne peut pas être répétée. Toutes les colonnes participant à la clé primaire doivent être définies comme NOT NULL
. Si les contraintes NOT NULL
ne sont pas spécifiées pour toutes les colonnes de clé primaire, SQL Server définit automatiquement des contraintes non nulles pour ces colonnes. Exemple de contrainte SQL Server PRIMARY KEY
dbo.activities
, activity_id est une colonne de clé primaire, ce qui signifie que la valeur de cette colonne ne peut pas être répétée. L'attribut IDENTITY
est utilisé pour générer automatiquement une valeur entière unique pour le . colonne Activity_id
. 🎜🎜Ce qui suit crée une nouvelle table avec deux colonnes qui forment la clé étrangère : 🎜rrreee🎜Dans ce cas, la colonne activity_id
ou customer_id
Les valeurs peuvent être répétées, mais chaque combinaison de valeurs dans les deux colonnes doit être unique. 🎜🎜Normalement, la clé primaire est toujours définie lors de la création d'une table. Parfois, cependant, une table existante peut ne pas avoir de clé primaire définie. Dans ce cas, vous pouvez utiliser l'instruction ALTER TABLE
pour ajouter une clé primaire à la table. Par exemple : 🎜🎜Créez d'abord une table sans colonne de clé primaire : 🎜rrreee🎜 Ensuite, faites de la colonne event_id
la clé primaire : 🎜rrreee🎜Notez que siLa table sales.events
contient déjà des données. Avant de promouvoir la colonneevent_id
en clé primaire, vous devez vous assurer que les valeurs deevent_id
sont uniques. 🎜🎜🎜Apprentissage recommandé : "🎜Tutoriel SQL🎜"🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!