Primärschlüssel, Fremdschlüssel und Constraints
Schlüssel, Eindeutigkeit und referenzielle Integrität so erklären, wie Interviewer es erwarten
Primärschlüssel, Fremdschlüssel und Constraints ist eine kostenlose SQL Interview Prep-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Interview Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Interview Prep-Kurs umfasst insgesamt 4 Lektionen.
Warum Schlüssel immer wieder zur Sprache kommen
Nach der Definition von SQL wenden sich Interviewer den Schlüsseln und Einschränkungen zu. Das verbindende Thema ist Integrität: Regeln, die die Datenbank durchsetzt, damit keine fehlerhaften Daten hineingelangen.
Was ein Primärschlüssel ist
Ein Primärschlüssel identifiziert jede Zeile eindeutig. Er ist immer eindeutig und NOT NULL, und eine Tabelle hat höchstens einen Primärschlüssel. Formulieren Sie das klar, um Punkte zu sammeln.
CREATE TABLE customers (
id INTEGER PRIMARY KEY,
email VARCHAR(255) NOT NULL,
name VARCHAR(100)
);Natürliche vs. künstliche Schlüssel
Echte Daten oder eine generierte Zahl? Ein natürlicher Schlüssel verwendet vorhandene eindeutige Daten; ein künstlicher Schlüssel ist eine generierte ID. Die meisten Teams bevorzugen künstliche Schlüssel, weil sie stabil sind.
Zusammengesetzte Primärschlüssel
Ein Primärschlüssel kann sich über mehr als eine Spalte erstrecken – dann handelt es sich um einen zusammengesetzten Schlüssel. Sie finden solche Schlüssel in Zwischentabellen, in denen zwei Fremdschlüssel gemeinsam jede Zeile identifizieren.
CREATE TABLE enrollments (
student_id INTEGER,
course_id INTEGER,
enrolled_on DATE,
PRIMARY KEY (student_id, course_id)
);Primärschlüssel vs. UNIQUE-Einschränkung
Eine garantierte Frage: Primärschlüssel oder UNIQUE-Einschränkung? Beide erzwingen Eindeutigkeit, aber eine Tabelle hat einen Primärschlüssel (NOT NULL) und beliebig viele UNIQUE-Einschränkungen (jede erlaubt einen NULL-Wert).
CREATE TABLE users (
id INTEGER PRIMARY KEY,
email VARCHAR(255) UNIQUE,
username VARCHAR(50) UNIQUE
);Was ein Fremdschlüssel ist
Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle und erzwingt referenzielle Integrität: Sie können keine untergeordnete Zeile hinzufügen, die auf ein nicht vorhandenes übergeordnetes Element verweist.
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
customer_id INTEGER REFERENCES customers(id),
amount NUMERIC(10,2)
);Referenzielle Aktionen: ON DELETE / ON UPDATE
„Was passiert mit Bestellungen, wenn der Kunde gelöscht wird?“ Das ist eine referenzielle Aktion: RESTRICT verhindert den Vorgang (Standardeinstellung), CASCADE löscht untergeordnete Datensätze und SET NULL leert den Schlüssel.
CREATE TABLE order_items (
id INTEGER PRIMARY KEY,
order_id INTEGER REFERENCES orders(id) ON DELETE CASCADE
);NOT NULL, CHECK und DEFAULT
Drei weitere Einschränkungen vervollständigen die Integrität: NOT NULL verbietet fehlende Werte, CHECK erzwingt eine Regel wie stock >= 0, und DEFAULT liefert einen Ersatzwert.
CREATE TABLE products (
id INTEGER PRIMARY KEY,
price NUMERIC(10,2) NOT NULL DEFAULT 0,
stock INTEGER CHECK (stock >= 0)
);Durchgespieltes Beispiel: Mit Integrität entwerfen
Entwerfen wir die Ausleihtabelle einer Bibliothek. Der folgende Code verwendet zwei Fremdschlüssel, ein NOT-NULL-Fälligkeitsdatum und eine UNIQUE-Regel, damit ein Buch nicht gleichzeitig zweimal ausgeliehen werden kann.
CREATE TABLE loans (
id INTEGER PRIMARY KEY,
book_id INTEGER NOT NULL REFERENCES books(id),
member_id INTEGER NOT NULL REFERENCES members(id),
due_date DATE NOT NULL,
returned BOOLEAN DEFAULT false
);Über Integrität sprechen
Nennen Sie die drei Arten von Integrität, um fachliche Tiefe zu zeigen: Entitätsintegrität durch Primärschlüssel, referenzielle Integrität durch Fremdschlüssel und Domänenintegrität durch NOT NULL, CHECK und Datentypen.
Einer vorhandenen Tabelle Einschränkungen hinzufügen
Sollen Sie einer vorhandenen Tabelle Einschränkungen hinzufügen? Verwenden Sie ALTER TABLE ... ADD CONSTRAINT. Ein wichtiger Punkt: Der Vorgang kann fehlschlagen, wenn vorhandene Zeilen bereits gegen die neue Regel verstoßen.
ALTER TABLE orders
ADD CONSTRAINT fk_orders_customer
FOREIGN KEY (customer_id) REFERENCES customers(id);Schnelltest
Unterscheiden Sie einen Primärschlüssel von einer UNIQUE-Einschränkung.
Zusammenfassung
Zusammenfassung: Ein Primärschlüssel ist eindeutig und NOT NULL, pro Tabelle gibt es einen; eine UNIQUE-Einschränkung erlaubt einen NULL-Wert, und Sie können mehrere davon haben; ein Fremdschlüssel erzwingt referenzielle Integrität.
Häufig gestellte Fragen
Ist die Lektion „Primärschlüssel, Fremdschlüssel und Constraints“ kostenlos?
Ja — der vollständige Text von „Primärschlüssel, Fremdschlüssel und Constraints“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Interview Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Interview Prep-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Primärschlüssel, Fremdschlüssel und Constraints“?
Schlüssel, Eindeutigkeit und referenzielle Integrität so erklären, wie Interviewer es erwarten Du übst SQL Interview Prep mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um SQL Interview Prep zu starten?
Keine Vorkenntnisse erforderlich. SQL Interview Prep auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Primärschlüssel, Fremdschlüssel und Constraints“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser SQL Interview Prep-Lektion Code schreiben und ausführen?
Ja. Jede SQL Interview Prep-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Was ist SQL und warum wird es in Vorstellungsgesprächen gefragt?
- Die logische Reihenfolge der Abfrageausführung
- Primärschlüssel, Fremdschlüssel und Constraints
- Ein Schema unter Zeitdruck lesen