SQL Constraints
Check Constraint används för att ange ett predikat som varje tupel måste uppfylla i en given relation. Det begränsar de värden som en kolumn kan innehålla i en relation.

  • Predikatet i check constraint kan innehålla en underfråga.
  • Check constraint som definieras på ett attribut begränsar intervallet av värden för det attributet.
  • Om det värde som läggs till ett attribut i en tupel bryter mot check constraint utvärderas check constraint till false och motsvarande uppdatering avbryts.
  • Check constraint specificeras i allmänhet med kommandot CREATE TABLE i SQL.

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

Notera: Check constraint i SQL-kommandot ovan begränsar GENDER till att endast tillhöra de angivna kategorierna. Om en ny tupel läggs till eller en befintlig tupel i relationen uppdateras med en GENDER som inte tillhör någon av de tre nämnda kategorierna avbryts motsvarande databasuppdatering.

Query

Constraint: Endast studenter som är >= 17 år kan skriva in sig på ett universitet.
Schema för studentdatabas 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:

StudentID Namn Ålder Genus
1001 Ron 18 man
1002 Sam 17 man
1003 Georgia 17 Kvinnlig
1004 Erik 19 Unknown
1005 Christine 17 Female

Förklaring: I ovanstående relation är alla studenters ålder större än 17 år, enligt den begränsning som nämns i kontrollförklaringen i relationens schema. Om följande SQL-anvisning utförs:

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

Det kommer inte att ske någon uppdatering av databasen och eftersom åldern < 17 år.

Differenta alternativ för att använda Check constraint:

  • Med alter: Check constraint kan också läggas till en redan skapad relation med hjälp av syntaxen:
    alter table TABLE_NAME modify COLUMN_NAME check(Predicate);
  • Ge variabelnamn till check constraint:Check constraints kan ges ett variabelnamn med hjälp av syntaxen:
    alter table TABLE_NAME add constraint CHECK_CONST check (Predicate);
  • Ta bort check constraint: Check constraint kan tas bort från relationen i databasen från SQL Server med hjälp av syntaxen:
    alter table TABLE_NAME drop constraint CHECK_CONSTRAINT_NAME;
  • Drop check constraint: Kontrollbegränsning kan tas bort från relationen i databasen från SQL Server med hjälp av syntaxen:
    alter table TABLE_NAME drop constraint CHECK_CONSTRAINT_NAME;
  • Drop check constraint: Check constraint kan tas bort från relationen i databasen i MySQL med hjälp av syntaxen:
    alter table TABLE_NAME drop check CHECK_CONSTRAINT_NAME;

Denna artikel har bidragits av Mayank Kumar. Om du gillar GeeksforGeeks och vill bidra kan du också skriva en artikel via contribute.geeksforgeeks.org eller maila din artikel till [email protected]. Se din artikel dyka upp på GeeksforGeeks huvudsida och hjälp andra Geeks.

Lämna ett svar

Din e-postadress kommer inte publiceras.