Constraints (Bedingungen) sind Regeln, die die Datenintegrität in einer Tabelle erzwingen. Fügen wir NOT NULL- und UNIQUE-Constraints zu einer neuen Tabelle namens users hinzu.
-
Erstellen Sie eine Tabelle namens users mit Constraints. Führen Sie diesen Befehl an der sqlite>-Eingabeaufforderung aus:
CREATE TABLE users (
id INTEGER PRIMARY KEY,
username TEXT NOT NULL UNIQUE,
email TEXT NOT NULL,
age INTEGER
);
Dieser Befehl erstellt eine Tabelle namens users mit den folgenden Constraints:
username darf nicht NULL sein und muss UNIQUE sein.
email darf nicht NULL sein.
Lassen Sie uns den Befehl aufschlüsseln:
CREATE TABLE users: Dies weist SQLite an, eine neue Tabelle namens users zu erstellen.
id INTEGER PRIMARY KEY: Dies definiert eine Spalte namens id mit dem Datentyp INTEGER. Der PRIMARY KEY-Constraint (Primärschlüssel-Bedingung) stellt sicher, dass jeder Wert in dieser Spalte eindeutig ist und als primärer Identifikator für jede Zeile dient.
username TEXT NOT NULL UNIQUE: Dies definiert eine Spalte namens username mit dem Datentyp TEXT. Der NOT NULL-Constraint (Nicht-Null-Bedingung) stellt sicher, dass diese Spalte nicht leer sein darf, und der UNIQUE-Constraint (Eindeutigkeitsbedingung) stellt sicher, dass alle Werte in dieser Spalte unterschiedlich sind.
email TEXT NOT NULL: Dies definiert eine Spalte namens email mit dem Datentyp TEXT. Der NOT NULL-Constraint stellt sicher, dass diese Spalte nicht leer sein darf.
age INTEGER: Dies definiert eine Spalte namens age mit dem Datentyp INTEGER.
-
Versuchen wir nun, einige Daten einzufügen, die gegen diese Constraints verstoßen, um zu sehen, wie sie funktionieren. Versuchen Sie zunächst, einen Benutzer ohne Benutzernamen einzufügen:
INSERT INTO users (email, age) VALUES ('test@example.com', 25);
Sie sehen einen Fehler, da die Spalte username als NOT NULL definiert ist.
Erwartete Ausgabe:
Error: NOT NULL constraint failed: users.username
Dieser Fehler zeigt, dass SQLite den NOT NULL-Constraint für username erzwingt und das Einfügen verhindert.
-
Versuchen Sie als Nächstes, einen Benutzer mit einem doppelten Benutzernamen einzufügen. Fügen Sie zuerst einen gültigen Benutzer ein:
INSERT INTO users (username, email, age) VALUES ('johndoe', 'john.doe@example.com', 30);
Versuchen Sie dann, einen anderen Benutzer mit demselben Benutzernamen einzufügen:
INSERT INTO users (username, email, age) VALUES ('johndoe', 'jane.doe@example.com', 25);
Sie sehen einen Fehler, da die Spalte username als UNIQUE definiert ist.
Erwartete Ausgabe:
Error: UNIQUE constraint failed: users.username
Dieser Fehler zeigt, dass SQLite den UNIQUE-Constraint für username erzwingt und doppelte Werte verhindert.