Primärschlüssel und Fremdschlüssel sind die zentralen Werkzeuge relationaler Datenbanken, um Datensätze eindeutig zu identifizieren und Tabellen miteinander zu verknüpfen. Sie bilden die Grundlage für JOINs und die Normalisierung.

Primärschlüssel: Jede Zeile eindeutig

Der Primärschlüssel (Primary Key) ist eine Spalte oder Spaltenkombination, die jede Zeile einer Tabelle eindeutig kennzeichnet. Typische Beispiele sind id oder kundennummer. Ein Primärschlüssel darf nie NULL sein und niemals doppelt vorkommen.

CREATE TABLE kunden (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL
);

Fremdschlüssel: Verweise zwischen Tabellen

Ein Fremdschlüssel (Foreign Key) ist eine Spalte, die auf den Primärschlüssel einer anderen Tabelle verweist. Er stellt die referentielle Integrität sicher: Man kann keinen Verweis auf einen nicht existierenden Datensatz anlegen.

CREATE TABLE bestellungen (
    id INT PRIMARY KEY AUTO_INCREMENT,
    kunde_id INT,
    FOREIGN KEY (kunde_id) REFERENCES kunden(id)
);

Mit diesem Schema gehört jede Bestellung zu einem real existierenden Kunden.

Typen von Schlüsseln

  • Primärschlüssel (Primary Key): Eindeutige ID einer Zeile.
  • Fremdschlüssel (Foreign Key): Verweis auf einen Primärschlüssel einer anderen Tabelle.
  • Kandidatenschlüssel: Alle Spalten, die als Primärschlüssel infrage kämen.
  • Komposit-Schlüssel: Primärschlüssel aus mehreren Spalten.

Verwandte Grundlagen: SQL-Grundlagen, Transaktionen, Datenbank-Indizes.