Heim  >  Artikel  >  Datenbank  >  Verstehen Sie kurz die Primärschlüsseleinschränkungen von SQL Server (PRIMARY KEY).

Verstehen Sie kurz die Primärschlüsseleinschränkungen von SQL Server (PRIMARY KEY).

WBOY
WBOYnach vorne
2022-09-06 17:30:573068Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über SQL-Server, der hauptsächlich SQL Server-Primärschlüsseleinschränkungen (PRIMÄRSCHLÜSSEL) vorstellt. Der Primärschlüssel ist eine Spalte oder eine Gruppe von Spalten, die jede Zeile in der Tabelle eindeutig identifiziert Werfen wir einen Blick auf die Details unten. Ich hoffe, es wird für alle hilfreich sein.

Verstehen Sie kurz die Primärschlüsseleinschränkungen von SQL Server (PRIMARY KEY).

Empfohlene Studie: „SQL-Tutorial

Einführung in SQL Server PRIMARY KEY (Primärschlüssel)-Einschränkungen

Der Primärschlüssel ist eine Spalte oder eine Gruppe von Spalten, die jede Zeile in der Tabelle eindeutig identifiziert. Sie können Primärschlüsseleinschränkungen verwenden, um einen Primärschlüssel für eine Tabelle zu erstellen.
Wenn der Primärschlüssel nur eine Spalte enthält, können Sie die PRIMARY KEY-Einschränkung als Spalteneinschränkung verwenden: 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_idrrreee

Wenn der Primärschlüssel zwei oder mehr Spalten hat, müssen Sie die Primäre verwenden Schlüsseleinschränkung als Tabelleneinschränkung:
rrreee

Jede Tabelle kann nur einen Primärschlüssel enthalten, und ein Primärschlüssel kann mehrere Spalten enthalten, dh die Kombination mehrerer Spalten kann nicht wiederholt werden. Alle am Primärschlüssel beteiligten Spalten müssen als NOT NULL definiert sein. Wenn NOT NULL-Einschränkungen nicht für alle Primärschlüsselspalten angegeben sind, legt SQL Server automatisch Nicht-Null-Einschränkungen für diese Spalten fest. SQL Server PRIMARY KEY-Einschränkungsbeispiel

🎜Das folgende Beispiel erstellt eine Tabelle mit einem Primärschlüssel, der aus einer Spalte besteht: 🎜rrreee🎜In Tabelle dbo.activities, activity_id ist eine Primärschlüsselspalte, was bedeutet, dass der Wert dieser Spalte nicht wiederholt werden kann. Das Attribut IDENTITY wird verwendet, um automatisch einen eindeutigen ganzzahligen Wert für den zu generieren Aktivitäts-ID-Spalte. 🎜🎜Im Folgenden wird eine neue Tabelle mit zwei Spalten erstellt, die den Fremdschlüssel bilden: 🎜rrreee🎜In diesem Fall die Spalte activity_id oder customer_id Werte können wiederholt werden, aber jede Wertekombination in den beiden Spalten muss eindeutig sein. 🎜🎜Normalerweise wird der Primärschlüssel immer beim Erstellen einer Tabelle definiert. Manchmal ist jedoch für eine vorhandene Tabelle kein Primärschlüssel definiert. In diesem Fall können Sie die Anweisung ALTER TABLE verwenden, um der Tabelle einen Primärschlüssel hinzuzufügen. Zum Beispiel: 🎜🎜Erstellen Sie zunächst eine Tabelle ohne eine Primärschlüsselspalte: 🎜rrreee🎜 Machen Sie dann die Spalte event_id zum Primärschlüssel: 🎜rrreee
🎜Beachten Sie, dass if Die sales.events-Tabelle enthält bereits Daten. Bevor Sie die Spalte event_id zum Primärschlüssel hochstufen, müssen Sie sicherstellen, dass die Werte in event_id sind einzigartig. 🎜🎜🎜Empfohlenes Lernen: „🎜SQL-Tutorial🎜“🎜

Das obige ist der detaillierte Inhalt vonVerstehen Sie kurz die Primärschlüsseleinschränkungen von SQL Server (PRIMARY KEY).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen