logo

SQL | CHECK-Einschränkung

DerCHECKDie Einschränkung in SQL erzwingt Regeln für Spaltenwerte, indem sie die Daten begrenzt, die eingefügt oder aktualisiert werden können. Es stellt sicher, dass die Werte bestimmte Bedingungen erfüllen. Verstößt ein Wert gegen die Bedingung, wird die Operation abgelehnt.CHECKkönnen während der Tabellenerstellung oder -änderung hinzugefügt werden.

Syntax der CHECK-Einschränkung

Der CHECK-Einschränkung kann beim Erstellen einer Tabelle definiert oder später mit der ALTER-Anweisung hinzugefügt werden.

1. Verwenden von CHECK mit CREATE TABLE :

CREATE TABLE table_name (  
column1 datatype
column2 datatype CHECK (condition)
...
);

2. Verwenden von CHECK mit ALTER TABLE

ALTER TABLE table_name  
ADD CONSTRAINT constraint_name CHECK (condition);

Wichtige Punkte zur CHECK-Einschränkung:



  • Domänenintegrität: Es stellt sicher, dass die Werte in einer Spalte bestimmte Bedingungen erfüllen, und trägt so dazu bei, gültige Daten in der Datenbank beizubehalten.
  • Wird mit CREATE oder ALTER verwendet: Die CHECK-Einschränkung kann beim Erstellen einer Tabelle definiert oder einer vorhandenen Tabelle hinzugefügt werden.
  • Kann mit anderen Einschränkungen kombiniert werden: Sie können CHECK zusammen mit anderen Einschränkungen verwenden, z PRIMÄRSCHLÜSSEL FOREIGN KEY und NOT NULL, um umfassendere Regeln für die Tabellendaten zu definieren.
  • Einschränkungen auf Zeilenebene: Im Gegensatz zu Einschränkungen auf Spaltenebene, die sich auf einzelne Spalten auswirken, kann eine CHECK-Einschränkung bei Bedarf auf mehrere Spalten gleichzeitig angewendet werden.

Beispiele für die Verwendung der CHECK-Einschränkung

Schauen wir uns einige praktische Beispiele an, um besser zu verstehen, wie die CHECK-Einschränkung funktioniert SQL .

Beispiel 1: Anwenden von CHECK auf eine einzelne Spalte

In diesem Beispiel erstellen wir eine Kundentabelle mit einer Altersspalte, die Werte zwischen 18 und 120 enthalten muss. Die CHECK-Einschränkung stellt sicher, dass kein ungültiges Alter in die Tabelle eingefügt wird.

Abfrage:

CREATE TABLE Customers (  
CustomerID INT PRIMARY KEY
Name VARCHAR(50)
Age INT CHECK (Age >= 18 AND Age <= 120)
);


-- Valid insert
INSERT INTO Customers (CustomerID Name Age)
VALUES (1 'John Doe' 25);

-- Invalid insert
INSERT INTO Customers (CustomerID Name Age)
VALUES (2 'Jane Smith' 15); -- This will fail due to the CHECK constraint

Die Altersspalte verfügt über eine CHECK-Einschränkung, die sicherstellt, dass der Wert zwischen 18 und 120 liegen muss. Wenn Sie versuchen, ein Alter außerhalb dieses Bereichs einzugeben, gibt die Datenbank einen Fehler aus.

Beispiel 2: CHECK-Einschränkung mit mehreren Spalten

Wir können die CHECK-Einschränkung auch über mehrere Spalten hinweg verwenden. Nehmen wir zum Beispiel an, wir haben eine Mitarbeitertabelle und wir möchten sicherstellen, dass das Gehalt positiv ist und das Alter größer oder gleich 18 ist.

Abfrage:

CREATE TABLE Employee (  
EmployeeID INT PRIMARY KEY
Name VARCHAR(50)
Age INT
Salary DECIMAL(10 2)
CHECK (Age >= 18 AND Salary > 0)
);


-- Valid insert
INSERT INTO Employee (EmployeeID Name Age Salary)
VALUES (1 'Alice Johnson' 30 50000);

-- Invalid insert (age < 18)
INSERT INTO Employee (EmployeeID Name Age Salary)
VALUES (2 'Bob Lee' 16 45000); -- This will fail due to the CHECK constraint

Die CHECK-Einschränkung stellt sicher, dass beide Bedingungen erfüllt sind. Der Mitarbeiter muss mindestens 18 Jahre alt sein und das Gehalt muss größer als 0 sein. Diese Art der Einschränkung ist nützlich, wenn mehrere Spalten an der Regel beteiligt sind.

Beispiel 3: Hinzufügen einer CHECK-Einschränkung mit ALTER TABLE

Mit der ALTER TABLE-Anweisung können wir einer vorhandenen Tabelle eine CHECK-Einschränkung hinzufügen.

Abfrage:

ALTER TABLE Employee  
ADD CONSTRAINT chk_salary CHECK (Salary >= 30000);

Dadurch wird eine CHECK-Einschränkung mit dem Namen chk_salary zur Tabelle „Employee“ hinzugefügt, um sicherzustellen, dass die Spalte „Gehalt“ einen Mindestwert von 30.000 aufweist. Wenn Sie versuchen, einen Datensatz mit einem Gehalt von weniger als 30.000 einzufügen oder zu aktualisieren, schlägt der Vorgang fehl.

Empfohlenes Quiz Quiz bearbeiten 5 Fragen

Was stellt eine CHECK-Einschränkung in SQL sicher?

  • A

    Die Spalte akzeptiert Werte ohne Regeln

  • B

    Die Spalte akzeptiert Werte nur, wenn sie eindeutig sind

  • C

    Die Spalte akzeptiert nur Werte, die ungleich Null sind

    Spieltaube Android
  • D

    Die Spalte akzeptiert Werte, die der angegebenen Regel entsprechen

Erläuterung:

CHECK erzwingt eine Bedingung für Spaltenwerte und lehnt alle Daten ab, die gegen die definierte Regel verstoßen.

Wann verhindert SQL ein INSERT mit CHECK?

  • A

    Wenn der Wert in der Spalte doppelt vorhanden ist

  • B

    Wenn der Wert eine definierte Bedingung verletzt

  • C

    Wenn die Tabelle keine primäre Einschränkung hat

  • D

    Wenn der Wert NULL ist und die Spalte Null zulässt

Erläuterung:

Wenn eingefügte oder aktualisierte Daten unterbrochen werden, bricht die CHECK-Bedingung von SQL den Vorgang ab.

öffentliches vs. privates Java

Wo kann eine CHECK-Einschränkung definiert werden?

  • A

    Nur innerhalb der SELECT-Abfragesyntax

  • B

    Erst nachdem der Primärschlüssel deklariert wurde

  • C

    Während der Tabellenerstellung oder -änderung

  • D

    Nur für numerische Spalten mit Bereichen

Erläuterung:

CHECK kann beim Erstellen der Tabelle oder später mit einer ALTER TABLE-Anweisung hinzugefügt werden.

Was passiert bei einer mehrspaltigen CHECK-Einschränkung?

  • A

    Die Bedingung kann nur auf eine Spalte verweisen

  • B

    Die Bedingung kann auf mehrere Spalten verweisen

  • C

    Die Bedingung funktioniert nur bei numerischen Spalten

  • D

    Bedingung ignoriert Werte beim Einfügen

Erläuterung:

CHECK kann Regeln anwenden, die zwei oder mehr Spalten verwenden, um eine kombinierte Validierung zu erzwingen.

Welche Einfügung erfüllt die Einschränkung CHECK (Alter ≥ 18) nicht?

  • A

    Alterswert unter fünfzehn Jahren

  • B

    Der Alterswert entspricht genau achtzehn

  • C

    Alterswert größer als fünfundzwanzig

  • D

    Alterswert als zulässiger NULL-Wert gespeichert

Erläuterung:

Jeder Wert unter 18 verstößt gegen die CHECK-Regel und führt zu einem Einfügungsfehler.

SQL | CHECK-EinschränkungQuiz erfolgreich abgeschlossen. Ihre Punktzahl:  2/5Genauigkeit : 0%Melden Sie sich an, um die Erklärung anzuzeigen 1/5 1/5 < Previous Weiter >