SQL Constraints
Check Constraint bruges til at angive et prædikat, som alle tupler skal opfylde i en given relation. Den begrænser de værdier, som en kolonne kan indeholde i en relation.

  • Prædikatet i check constraint kan indeholde en underforespørgsel.
  • Check constraint defineret på en attribut begrænser intervallet af værdier for den pågældende attribut.
  • Hvis den værdi, der tilføjes til en attribut i en tupel, overtræder check constraint, evalueres check constraint til falsk, og den tilsvarende opdatering afbrydes.
  • Check constraint angives generelt med kommandoen CREATE TABLE i SQL.

Syntaks:

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

Bemærk: Check constraint i ovenstående SQL-kommando begrænser GENDER til kun at tilhøre de angivne kategorier. Hvis der tilføjes en ny tupel eller en eksisterende tupel i relationen opdateres med en GENDER, der ikke tilhører nogen af de tre nævnte kategorier, afbrydes den tilsvarende databaseopdatering.

Query

Constraint: Kun studerende med en alder >= 17 år kan indskrive sig på et universitet.
Schema for studenterdatabase på universitet:

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

Studentrelation:

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

Studentrelation:

StudentID Navn Alder Genre
1001 Ron 18 Mand
1002 Sam 17 Mand
1003 Georgia 17 Female
1004 Erik 19 Ukendt
1005 Christine 17 Female

Forklaring: I ovenstående relation er alderen for alle studerende større end 17 år, i henhold til den begrænsning, der er nævnt i check-erklæringen i skemaet for relationen. Hvis følgende SQL-anvisning imidlertid udføres:

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

Der vil ikke ske nogen databaseopdatering, og da alderen < 17 år.

Differente muligheder for at bruge Check constraint:

  • Med alter: Check constraint kan også tilføjes til en allerede oprettet relation ved hjælp af syntaksen:
    alter table TABLE_NAME modify COLUMN_NAME check(Predicate);
  • Giver variabelnavn til check constraint:Check constraints kan gives et variabelnavn ved hjælp af syntaksen:
    alter table TABLE_NAME add constraint CHECK_CONST check (Predicate);
  • Fjern check constraint: Check constraint kan fjernes fra relationen i databasen fra SQL Server ved hjælp af syntaksen:
    alter table TABLE_NAME drop constraint CHECK_CONSTRAINT_NAME;
  • Drop check constraint: Check constraint kan fjernes fra relationen i databasen i MySQL ved hjælp af syntaksen:
    alter table TABLE_NAME drop check CHECK_CONSTRAINT_NAME;

Denne artikel er bidraget af Mayank Kumar. Hvis du kan lide GeeksforGeeks og gerne vil bidrage, kan du også skrive en artikel via contribute.geeksforgeeks.org eller sende din artikel på mail til [email protected]. Se din artikel blive vist på GeeksforGeeks’ hovedside, og hjælp andre nørder.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.