SQLite - Einschränkungen

Einschränkungen sind die Regeln, die für Datenspalten in der Tabelle gelten. Diese werden verwendet, um den Datentyp zu begrenzen, der in eine Tabelle aufgenommen werden kann. Dies stellt die Genauigkeit und Zuverlässigkeit der Daten in der Datenbank sicher.

Einschränkungen können Spalten- oder Tabellenebene sein. Einschränkungen auf Spaltenebene werden nur auf eine Spalte angewendet, während Einschränkungen auf Tabellenebene auf die gesamte Tabelle angewendet werden.

Im Folgenden werden häufig verwendete Einschränkungen aufgeführt, die in SQLite verfügbar sind.

  • NOT NULL Constraint - Stellt sicher, dass eine Spalte keinen NULL-Wert haben kann.

  • DEFAULT Constraint - Stellt einen Standardwert für eine Spalte bereit, wenn keiner angegeben ist.

  • UNIQUE Constraint - Stellt sicher, dass alle Werte in einer Spalte unterschiedlich sind.

  • PRIMARY Key - Identifiziert jede Zeile / jeden Datensatz in einer Datenbanktabelle eindeutig.

  • CHECK Constraint - Stellt sicher, dass alle Werte in einer Spalte bestimmte Bedingungen erfüllen.

NICHT NULL Einschränkung

Standardmäßig kann eine Spalte NULL-Werte enthalten. Wenn Sie nicht möchten, dass eine Spalte einen NULL-Wert hat, müssen Sie eine solche Einschränkung für diese Spalte definieren und angeben, dass NULL für diese Spalte jetzt nicht zulässig ist.

Ein NULL ist nicht dasselbe wie keine Daten, sondern repräsentiert unbekannte Daten.

Beispiel

Mit der folgenden SQLite-Anweisung wird beispielsweise eine neue Tabelle mit dem Namen COMPANY erstellt und fünf Spalten hinzugefügt, von denen drei, ID und NAME und AGE, angeben, dass NULL-Werte nicht akzeptiert werden sollen.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

STANDARD-Einschränkung

Die DEFAULT-Einschränkung stellt einen Standardwert für eine Spalte bereit, wenn die INSERT INTO-Anweisung keinen bestimmten Wert bereitstellt.

Beispiel

Mit der folgenden SQLite-Anweisung wird beispielsweise eine neue Tabelle mit dem Namen COMPANY erstellt und fünf Spalten hinzugefügt. Hier ist die Spalte SALARY standardmäßig auf 5000,00 festgelegt. Wenn die Anweisung INSERT INTO keinen Wert für diese Spalte bereitstellt, wird diese Spalte standardmäßig auf 5000,00 festgelegt.

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
);

Einzigartige Beschränkung

Die UNIQUE-Einschränkung verhindert, dass zwei Datensätze in einer bestimmten Spalte identische Werte haben. In der Tabelle UNTERNEHMEN möchten Sie beispielsweise möglicherweise verhindern, dass zwei oder mehr Personen das gleiche Alter haben.

Beispiel

Mit der folgenden SQLite-Anweisung wird beispielsweise eine neue Tabelle mit dem Namen COMPANY erstellt und fünf Spalten hinzugefügt. Hier ist die Spalte AGE auf EINZIGARTIG gesetzt, sodass Sie nicht zwei Datensätze mit demselben Alter haben können -

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-Einschränkung

Die PRIMARY KEY-Einschränkung identifiziert jeden Datensatz in einer Datenbanktabelle eindeutig. Es können mehrere EINZIGARTIGE Spalten vorhanden sein, jedoch nur ein Primärschlüssel in einer Tabelle. Primärschlüssel sind beim Entwerfen der Datenbanktabellen wichtig. Primärschlüssel sind eindeutige IDs.

Wir verwenden sie, um auf Tabellenzeilen zu verweisen. Primärschlüssel werden beim Erstellen von Beziehungen zwischen Tabellen zu Fremdschlüsseln in anderen Tabellen. Aufgrund einer langjährigen Codierungsüberwachung können Primärschlüssel in SQLite NULL sein. Dies ist bei anderen Datenbanken nicht der Fall.

Ein Primärschlüssel ist ein Feld in einer Tabelle, das alle Zeilen / Datensätze in einer Datenbanktabelle eindeutig identifiziert. Primärschlüssel müssen eindeutige Werte enthalten. Eine Primärschlüsselspalte darf keine NULL-Werte haben.

Eine Tabelle kann nur einen Primärschlüssel haben, der aus einzelnen oder mehreren Feldern bestehen kann. Wenn mehrere Felder als Primärschlüssel verwendet werden, werden sie als a bezeichnetcomposite key.

Wenn für eine Tabelle in einem oder mehreren Feldern ein Primärschlüssel definiert ist, können nicht zwei Datensätze mit demselben Wert für diese Felder vorhanden sein.

Beispiel

Sie haben oben bereits verschiedene Beispiele gesehen, in denen wir eine COMPANY-Tabelle mit der ID als Primärschlüssel erstellt haben.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

Einschränkung prüfen

Mit CHECK Constraint kann eine Bedingung den Wert überprüfen, der in einen Datensatz eingegeben wird. Wenn die Bedingung als falsch ausgewertet wird, verletzt der Datensatz die Einschränkung und wird nicht in die Tabelle eingetragen.

Beispiel

Die folgende SQLite erstellt beispielsweise eine neue Tabelle mit dem Namen COMPANY und fügt fünf Spalten hinzu. Hier fügen wir eine Spalte CHECK with SALARY hinzu, damit Sie keine SALARY Zero haben können.

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)
);

Einschränkung fallen lassen

SQLite unterstützt eine begrenzte Teilmenge von ALTER TABLE. Mit dem Befehl ALTER TABLE in SQLite kann der Benutzer eine Tabelle umbenennen oder einer vorhandenen Tabelle eine neue Spalte hinzufügen. Es ist nicht möglich, eine Spalte umzubenennen, eine Spalte zu entfernen oder Einschränkungen zu einer Tabelle hinzuzufügen oder daraus zu entfernen.