SQL-Primärschlüssel: Erstellen und Hinzufügen zu einer bestehenden Tabelle

⚡ Intelligente Zusammenfassung

Ein Primärschlüssel in SQL Server ist eine Spalte oder eine Gruppe von Spalten, deren Werte jede Zeile in einer Tabelle eindeutig identifizieren. Jede Tabelle besitzt genau einen Primärschlüssel, und seine Spalten dürfen niemals NULL-Werte enthalten.

  • 🔑 Was ist ein Primärschlüssel? Ein Primärschlüssel besteht aus einer oder mehreren Spalten, deren Werte eindeutig sind und jede Zeile in einer Tabelle identifizieren.
  • 🚫 Grundregeln: Eine Tabelle erlaubt nur einen Primärschlüssel, jeder Wert muss eindeutig sein, und keine Schlüsselspalte darf NULL-Werte enthalten.
  • 🖱️ Zwei Erstellungsmethoden: Sowohl der Tabellen-Designer von SQL Server Management Studio als auch die T-SQL-Anweisung CREATE TABLE definieren einen Primärschlüssel.
  • 🧱 Einschränkungsklausel: Innerhalb von CREATE TABLE benennt die CONSTRAINT … PRIMARY KEY-Klausel den Schlüssel und listet seine Spalte(n) auf.
  • ➕ Zu einer bestehenden Tabelle hinzufügen: ALTER TABLE … ADD CONSTRAINT fügt einen Primärschlüssel zu den NOT NULL-Spalten einer bestehenden Tabelle hinzu.
  • 🧩 Zusammengesetzter Schlüssel: Ein Primärschlüssel kann bis zu 16 Spalten kombinieren und so einen zusammengesetzten Schlüssel bilden, der im gesamten Datensatz eindeutig ist.

SQL Server PRIMARY KEY: So erstellen und ergänzen Sie eine bestehende Tabelle

Was ist Primärschlüssel in SQL?

Ein Primärschlüssel in SQL Server Ein Primärschlüssel ist ein Feld oder eine Kombination von Feldern, die einen Datensatz eindeutig identifiziert. Es handelt sich um eine Spalte oder eine Gruppe von Spalten, in denen jeder Wert eindeutig ist. Anders ausgedrückt: Keine zwei Zeilen können denselben Primärschlüsselwert haben.

Regeln für Primärschlüssel

  • Jede Tabelle kann nur einen Primärschlüssel haben.
  • Alle Werte sind einzigartig, und der Primärschlüsselwert kann jede Zeile eindeutig identifizieren.
  • Das System lässt das Einfügen einer Zeile nicht zu, deren Primärschlüsselwert bereits in der Tabelle vorhanden ist.
  • Ein Primärschlüssel darf nicht NULL sein.

Das folgende Diagramm fasst alle oben genannten Punkte zum SQL-Primärschlüssel zusammen.

Diagramm zur Zusammenfassung der SQL-Primärschlüsselregeln: eindeutige Werte, einer pro Tabelle und nicht NULL.

So erstellen Sie einen Primärschlüssel in SQL Server

Sie können einen Primärschlüssel auf zwei Arten erstellen:

Lassen Sie uns jede Methode im Detail untersuchen.

SQL Server Management Studio

Schritt 1) ​​Klicken Sie mit der rechten Maustaste auf den Tabellennamen und klicken Sie auf Technologie .

Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie „Entwurf in SQL Server Management Studio“.

Schritt 2) Klicken Sie mit der rechten Maustaste auf den Spaltennamen und klicken Sie auf Primärschlüssel festlegen.

Klicken Sie mit der rechten Maustaste auf die Spalte und wählen Sie im Tabellendesigner „Primärschlüssel festlegen“.

Ergebnis: Course_Id ist nun ein Primärschlüssel, was durch ein Schlüsselsymbol neben der Spalte angezeigt wird.

Die Spalte Course_Id ist als Primärschlüssel mit einem Schlüsselsymbol gekennzeichnet.

T-SQL: Erstellen eines Primärschlüssels beim Anlegen einer neuen Tabelle

Nachfolgend finden Sie die Syntax für eine Tabelle erstellen mit einem Primärschlüssel aus T-SQL.

Syntax:

CREATE TABLE <Table_Name>
(
Column1 datatype,
Column2 datatype,CONSTRAINT <Name> PRIMARY KEY (Column name)
.
);

Hier bezeichnet CONSTRAINT den Schlüssel, PRIMARY KEY kennzeichnet die Spalte, die eindeutig bleiben muss, und jede Spalte benötigt außerdem einen Datentyp.

Wir erstellen eine Tabelle mit einer Spalte als SQL-Primärschlüssel.

Abfrage:

CREATE TABLE COURSE_TSQL_PK 
(Course_ID Int not Null,
 Course_name Varchar(20)
 CONSTRAINT PK PRIMARY KEY (Course_ID)	
)

Schritt 1) ​​Führen Sie die Abfrage durch Klicken aus. Ausführen.

Die CREATE TABLE-Abfrage, die den Primärschlüssel Course_ID definiert, wird ausgeführt.

Ergebnis: Course_Id ist nun ein Primärschlüssel in der Tabelle COURSE_TSQL_PK.

Die Tabelle COURSE_TSQL_PK zeigt an, dass Course_ID als Primärschlüssel festgelegt ist.

Beispiel: Mal sehen, ob es die Eingabe mehrerer Datensätze mit derselben Kurs-ID ermöglicht.

Schritt 1) ​​Fügen Sie vier Zeilen mit unterschiedlichen Course_ID-Werten ein.

Insert into COURSE_TSQL_PK values (1,'SQL');
Insert into COURSE_TSQL_PK values (2,'Python');
Insert into COURSE_TSQL_PK values (3,'SQL');
Insert into COURSE_TSQL_PK values (4,'C');

Schritt 2) Überprüfen Sie durch Ausführen der SELECT-Abfrage, ob alle Daten erfolgreich eingefügt wurden.

Ergebnis der SELECT-Abfrage, die vier Zeilen mit unterschiedlichen Course_ID-Werten anzeigt

Hinweis: In einer Spalte, die kein Primärschlüssel ist, können doppelte Werte eingefügt werden.

Schritt 3) Versuchen wir nun, einen neuen Datensatz mit einer bereits vorhandenen Course_ID einzufügen, die der Primärschlüssel ist.

Insert into COURSE_TSQL_PK values (4,'JAVA');

Ergebnis: Das System lässt das Einfügen des neuen Wertes nicht zu, da in der Spalte Course_ID, die ein Primärschlüssel ist, bereits der Wert 4 vorhanden ist.

Fehlermeldung: Doppelte Primärschlüsselwerte für Course_ID abgelehnt

Wie füge ich einen Primärschlüssel zu einer vorhandenen Tabelle in SQL hinzu?

Nun werden wir sehen, wie man in SQL einen Primärschlüssel zu einer bestehenden Tabelle hinzufügt.

Sie können mit der ALTER-Anweisung einen Primärschlüssel erstellen. Ein Primärschlüssel kann jedoch nur für Spalten erstellt werden, die als NOT NULL definiert sind. Sie können keinen Primärschlüssel für eine Spalte erstellen, die NULL-Werte zulässt. Wenn eine Spalte derzeit NULL-Werte zulässt, müssen Sie sie zuerst in NOT NULL ändern oder die Tabelle löschen und neu erstellen.

Hier ist die Syntax:

ALTER TABLE tableName
ADD CONSTRAINT constraintName PRIMARY KEY (column_1, column_2, ... column_n);

Beispielsweise:

ALTER TABLE students
ADD CONSTRAINT students_pk PRIMARY KEY (admission);

ALTER TABLE-Anweisung zum Hinzufügen einer Primärschlüsselbeschränkung namens students_pk

Wir haben einer bereits vorhandenen Tabelle eine Primärschlüsseleinschränkung hinzugefügt. Die Einschränkung wurde zur Spalte „Zulassung“ hinzugefügt und erhält den Namen „students_pk“.

Interessante Fakten!

  • Ein Primärschlüssel kann eine Kombination aus mehreren Spalten sein. Diese Kombination wird als zusammengesetzter Primärschlüssel bezeichnet.
  • Ein Primärschlüssel darf maximal 16 Spalten haben.

Häufig gestellte Fragen

Beide gewährleisten Eindeutigkeit. Eine Tabelle erlaubt nur einen Primärschlüssel, und ihre Spalten dürfen nicht NULL-Werte enthalten. Eine Tabelle kann mehrere eindeutige Schlüssel enthalten, und eine eindeutige Spalte kann einen NULL-Wert akzeptieren. Primärschlüssel definieren üblicherweise den Hauptzeilenbezeichner.

Ja. SQL Server erstellt automatisch einen eindeutigen Index, um den Primärschlüssel zu erzwingen. Standardmäßig ist dieser Index gruppiert, wodurch die Zeilen physisch sortiert werden. Sie können stattdessen NONCLUSTERED angeben, wenn eine andere Spalte bereits einen gruppierten Index enthält.

Ein zusammengesetzter Primärschlüssel kombiniert zwei oder mehr Spalten so, dass ihre Werte zusammen eindeutig sind, selbst wenn jede Spalte einzeln wiederholt vorkommt. SQL Server erlaubt einen Primärschlüssel mit bis zu 16 Spalten und einer Gesamtlänge von 900 Byte.

Ein Primärschlüssel identifiziert jede Zeile innerhalb ihrer Tabelle eindeutig und lässt niemals NULL-Werte zu. Fremdschlüssel speichert Werte, die mit einem Primär- oder eindeutigen Schlüssel in einer anderen Tabelle übereinstimmen müssen, und stellt so eine Beziehung zwischen den beiden Tabellen her.

Führen Sie den Befehl `ALTER TABLE table_name DROP CONSTRAINT constraint_name` aus. Sie müssen den Namen der Einschränkung kennen, den Sie in `sys.key_constraints` finden.ping Der Primärschlüssel entfernt außerdem seinen zugehörigen eindeutigen Index und alle Fremdschlüssel, die darauf verweisen.

Eine IDENTITY-Spalte, die automatisch Zahlen generiert, ist ein beliebter Ersatzprimärschlüssel, da sie schmal, stabil und niemals NULL ist. Wählen Sie stattdessen nur dann einen natürlichen Schlüssel, wenn eine vorhandene Spalte, wie beispielsweise ein Produktcode, bereits garantiert eindeutig ist.

Ja. GitHub-Copilot Das Skript kann CREATE TABLE-Anweisungen und PRIMARY KEY-Constraints anhand von natürlichsprachlichen Eingabeaufforderungen erstellen und geeignete Schlüsselspalten vorschlagen. Überprüfen Sie stets die generierten Schlüssel, Datentypen und die Nullbarkeit und testen Sie das Skript, bevor Sie es in der Produktion einsetzen.

KI- und Machine-Learning-Tools analysieren Beispieldaten und Abfragemuster, um die Spalte(n) für den Primärschlüssel zu empfehlen, Kandidatenschlüssel mit Duplikaten oder NULL-Werten zu kennzeichnen und Ersatzschlüssel vorzuschlagen. Der Entwickler bestätigt jede Empfehlung vor ihrer Anwendung.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: