SQLite Einschränkungen
Constraints sind Regeln, die für Datenspalten in einer Tabelle erzwungen werden. Sie werden verwendet, um die Arten von Daten einzuschränken, die in eine Tabelle eingefügt werden können, wodurch die Genauigkeit und Zuverlässigkeit der Daten in der Datenbank sichergestellt wird.
Einschränkungen können auf Spaltenebene oder Tabellenebene liegen. Einschränkungen auf Spaltenebene gelten nur für eine Spalte, während Einschränkungen auf Tabellenebene für die gesamte Tabelle gelten.
Die folgenden sind die häufig verwendeten Constraints in SQLite.
NOT NULL Constraint: Stellt sicher, dass eine Spalte keine NULL-Werte haben kann.
DEFAULT Constraint: Stellt einen Standardwert für eine Spalte bereit, wenn kein Wert angegeben wird.
UNIQUE Constraint: Stellt sicher, dass alle Werte in einer Spalte unterschiedlich sind.
PRIMARY KEY Constraint: Identifiziert jede Zeile/jeden Datensatz in einer Datenbanktabelle eindeutig.
CHECK Constraint: Die CHECK-Constraint stellt sicher, dass alle Werte in einer Spalte bestimmte Bedingungen erfüllen.
NOT NULL-Einschränkung
Standardmäßig kann eine Spalte NULL-Werte enthalten. Wenn Sie nicht möchten, dass eine Spalte NULL-Werte enthält, müssen Sie diese Einschränkung für diese Spalte definieren und angeben, dass NULL-Werte in dieser Spalte nicht zulässig sind.
NULL unterscheidet sich davon, keine Daten zu haben; es stellt unbekannte Daten dar.
Beispiel
Beispielsweise erstellt die folgende SQLite-Anweisung eine neue Tabelle COMPANY mit fünf Spalten, wobei für die drei Spalten ID, NAME und AGE festgelegt wird, dass sie keine NULL-Werte akzeptieren:
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
DEFAULT Constraint
Die DEFAULT-Constraint stellt einen Standardwert für eine Spalte bereit, wenn die INSERT INTO-Anweisung keinen bestimmten Wert angibt.
Beispiel
Beispielsweise erstellt die folgende SQLite-Anweisung eine neue Tabelle COMPANY mit fünf Spalten. Hier ist die Spalte SALARY standardmäßig auf 5000.00 gesetzt. Wenn die INSERT INTO-Anweisung also keinen Wert für diese Spalte angibt, wird sie auf 5000.00 gesetzt.
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL DEFAULT 50000.00 );
UNIQUE-Einschränkung
Die UNIQUE-Constraint verhindert, dass zwei Datensätze in einer bestimmten Spalte denselben Wert haben. In der Tabelle COMPANY möchten Sie beispielsweise verhindern, dass zwei oder mehr Personen dasselbe Alter haben.
Beispiel
Beispielsweise erstellt die folgende SQLite-Anweisung eine neue Tabelle COMPANY mit fünf Spalten. Hier ist die Spalte AGE auf UNIQUE gesetzt, sodass es nicht zwei Datensätze mit demselben Alter geben kann:
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL UNIQUE, ADDRESS CHAR(50), SALARY REAL DEFAULT 50000.00 );
PRIMARY KEY-Constraint
Die PRIMARY KEY-Constraint identifiziert jeden Datensatz in einer Datenbanktabelle eindeutig. Es kann mehrere UNIQUE-Spalten in einer Tabelle geben, aber nur einen Primärschlüssel. Primärschlüssel sind wichtig beim Entwerfen von Datenbanktabellen. Ein Primärschlüssel ist eine eindeutige ID.
Wir verwenden Primärschlüssel, um auf Zeilen in einer Tabelle zu verweisen. Beziehungen zwischen Tabellen können erstellt werden, indem der Primärschlüssel in anderen Tabellen als Fremdschlüssel festgelegt wird. Aufgrund eines "seit Langem bestehenden Programmierfehlers" können Primärschlüssel in SQLite NULL sein, was sich von anderen Datenbanken unterscheidet.
Ein Primärschlüssel ist ein Feld in einer Tabelle, das jede Zeile/jeden Datensatz in einer Datenbanktabelle eindeutig identifiziert. Primärschlüssel müssen eindeutige Werte enthalten. Eine Primärschlüsselspalte darf keine NULL-Werte enthalten.
Eine Tabelle kann nur einen Primärschlüssel haben, der aus einem oder mehreren Feldern bestehen kann. Wenn mehrere Felder als Primärschlüssel verwendet werden, bezeichnet man sie alszusammengesetzten Schlüssel.。
Wenn für eine Tabelle ein Primärschlüssel für ein oder mehrere Felder definiert ist, können zwei Datensätze nicht denselben Wert in diesen Feldern haben.
Beispiel
Wir haben bereits verschiedene Beispiele für das Erstellen der Tabelle COMAPNY mit ID als Primärschlüssel gesehen:
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
CHECK-Constraint
Die CHECK-Constraint ermöglicht eine Bedingung zur Überprüfung der Werte beim Eingeben eines Datensatzes. Wenn die Bedingung als falsch ausgewertet wird, verletzt der Datensatz die Constraint und kann nicht in die Tabelle eingefügt werden.
Beispiel
Beispielsweise erstellt die folgende SQLite-Anweisung eine neue Tabelle COMPANY mit fünf Spalten. Hier fügen wir eine CHECK-Bedingung für die Spalte SALARY hinzu, sodass das Gehalt nicht null sein kann:
CREATE TABLE COMPANY3( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL CHECK(SALARY > 0) );
Löschen von Constraints
In SQLite müssen Sie normalerweise dieALTER TABLEAnweisung verwenden, um Einschränkungen aus einer Tabelle zu entfernen, und die Art der zu entfernenden Einschränkung angeben.
Löschen der Primärschlüssel-Einschränkung:
ALTER TABLE table_name DROP CONSTRAINT primary_key_name;
Dabei isttable_nameder Name der Tabelle, auf der Sie arbeiten, undprimary_key_nameist der Name der zu löschenden Primärschlüssel-Einschränkung.
Löschen der UNIQUE-Einschränkung:
ALTER TABLE table_name DROP CONSTRAINT unique_constraint_name;
Ebenso isttable_nameder Tabellenname,unique_constraint_nameist der Name der zu löschenden UNIQUE-Einschränkung.
Löschen der Fremdschlüssel-Einschränkung:
ALTER TABLE table_name DROP CONSTRAINT foreign_key_constraint_name;
Dabei isttable_nameder Tabellenname,foreign_key_constraint_nameist der Name der zu löschenden Fremdschlüssel-Einschränkung.
Andere Erweiterungen