SQL Constraints
Check Constraint wird verwendet, um ein Prädikat zu spezifizieren, das jedes Tupel in einer gegebenen Beziehung erfüllen muss. Es schränkt die Werte ein, die eine Spalte in einer Relation enthalten kann.

  • Das Prädikat in der Prüfbeschränkung kann eine Unterabfrage enthalten.
  • Die Prüfbeschränkung, die für ein Attribut definiert ist, schränkt den Wertebereich für dieses Attribut ein.
  • Wenn der Wert, der einem Attribut eines Tupels hinzugefügt wird, die Prüfbeschränkung verletzt, wird die Prüfbeschränkung als falsch ausgewertet und die entsprechende Aktualisierung wird abgebrochen.
  • Die Prüfbeschränkung wird im Allgemeinen mit dem CREATE TABLE-Befehl in SQL angegeben.

Syntax:

CREATE TABLE pets( ID INT NOT NULL, Name VARCHAR(30) NOT NULL, Breed VARCHAR(20) NOT NULL, Age INT, GENDER VARCHAR(9), PRIMARY KEY(ID), check(GENDER in ('Male', 'Female', 'Unknown')) );

Hinweis: Die Prüfbeschränkung in dem obigen SQL-Befehl schränkt GENDER so ein, dass es nur zu den angegebenen Kategorien gehört. Wenn ein neues Tupel hinzugefügt oder ein bestehendes Tupel in der Relation mit einem GENDER aktualisiert wird, der nicht zu einer der drei genannten Kategorien gehört, wird die entsprechende Datenbankaktualisierung abgebrochen.

Query

Constraint: Nur Studenten, die >= 17 Jahre alt sind, können sich an einer Universität immatrikulieren.
Schema für Studentendatenbank in Universität:

CREATE TABLE student( StudentID INT NOT NULL, Name VARCHAR(30) NOT NULL, Age INT NOT NULL, GENDER VARCHAR(9), PRIMARY KEY(ID), check(Age >= 17) );

Studentenbeziehung:

StudentenID Name Alter Geschlecht
1001 Ron 18 Männlich
1002 Sam 17 Männlich
1003 Georgia 17 Frau
1004 Erik 19 Unbekannt
1005 Christine 17 Frau

Erklärung: In der obigen Relation ist das Alter aller Studenten größer als gleich 17 Jahre, gemäß der Einschränkung, die in der Prüfanweisung im Schema der Relation erwähnt wird. Wenn jedoch folgende SQL-Anweisung ausgeführt wird:

INSERT INTO student(STUDENTID, NAME, AGE, GENDER) VALUES (1006, 'Emma', 16, 'Female');

Es findet keine Datenbankaktualisierung statt, da das Alter < 17 Jahre beträgt.

Unterschiedliche Optionen zur Verwendung der Prüfbeschränkung:

  • Mit alter: Eine Prüfbeschränkung kann auch zu einer bereits erstellten Beziehung hinzugefügt werden, indem die Syntax verwendet wird:
    alter table TABLE_NAME modify COLUMN_NAME check(Predicate);
  • Der Prüfbeschränkung einen Variablennamen geben:Prüfbeschränkungen können einen Variablennamen erhalten, indem die Syntax verwendet wird:
    alter table TABLE_NAME add constraint CHECK_CONST check (Predicate);
  • Prüfbeschränkung entfernen: Eine Prüfbeschränkung kann aus der Beziehung in der Datenbank von SQL Server entfernt werden, indem die folgende Syntax verwendet wird:
    alter table TABLE_NAME drop constraint CHECK_CONSTRAINT_NAME;
  • Prüfbeschränkung löschen: Die Prüfbeschränkung kann aus der Beziehung in der MySQL-Datenbank mit der folgenden Syntax entfernt werden:
    alter table TABLE_NAME drop check CHECK_CONSTRAINT_NAME;

Dieser Artikel wurde von Mayank Kumar verfasst. Wenn Ihnen GeeksforGeeks gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel unter contribute.geeksforgeeks.org schreiben oder eine E-Mail an [email protected] senden. Sehen Sie Ihren Artikel auf der GeeksforGeeks-Hauptseite erscheinen und helfen Sie anderen Geeks.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.