SQL Constraints
Check Constraint este folosit pentru a specifica un predicat pe care fiecare tupla trebuie să-l satisfacă într-o anumită relație. Ea limitează valorile pe care o coloană le poate deține într-o relație.

  • Predicatul din constrângerea de verificare poate conține o subinterogare.
  • Constrângerea de verificare definită pe un atribut restricționează intervalul de valori pentru acel atribut.
  • Dacă valoarea care se adaugă la un atribut al unui tuple încalcă constrângerea de verificare, constrângerea de verificare se evaluează la fals și actualizarea corespunzătoare este anulată.
  • Constrângerea de verificare este, în general, specificată cu comanda CREATE TABLE în SQL.

Sintaxa:

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

Nota: Constrângerea de verificare din comanda SQL de mai sus restricționează GENDER să aparțină doar categoriilor specificate. Dacă se adaugă un nou tuplu sau dacă un tuplu existent în relație este actualizat cu un GENDER care nu aparține nici uneia dintre cele trei categorii menționate, atunci actualizarea corespunzătoare a bazei de date este întreruptă.

Query

Constraint: Numai studenții cu vârsta >= 17 ani se pot înscrie la o universitate.
Schema pentru baza de date a studenților din universitate:

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

Relația student:

.

.

.

StudentID Nume Vârsta Vârsta Gender
1001 Ron 18 Bărbat
1002 Sam 17 Bărbat 18 Bărbat
1003 Georgia 17 Femeie
1004 1003 1004 Erik 19 Inconștient
1005 Christine 17 Femeie

Explicație: În relația de mai sus, vârsta tuturor studenților este mai mare decât egală cu 17 ani, în conformitate cu constrângerea menționată în declarația de verificare din schema relației. Cu toate acestea, dacă se execută următoarea instrucțiune SQL:

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

Nu va exista nicio actualizare a bazei de date și deoarece vârsta < 17 ani.

Diferite opțiuni de utilizare a constrângerii Check:

  • Cu alter: De asemenea, constrângerea de verificare poate fi adăugată la o relație deja creată folosind sintaxa:
    alter table TABLE_NAME modify COLUMN_NAME check(Predicate);
  • Acordarea unui nume de variabilă pentru constrângerea de verificare:Constrângerile de verificare pot primi un nume de variabilă folosind sintaxa:
    alter table TABLE_NAME add constraint CHECK_CONST check (Predicate);
  • Eliminarea constrângerii de verificare: Constrângerea de verificare poate fi eliminată din relația din baza de date de pe SQL server folosind sintaxa:
    alter table TABLE_NAME drop constraint CHECK_CONSTRAINT_NAME;
  • Drop check constraint: Restricția de verificare poate fi eliminată din relația din baza de date din MySQL folosind sintaxa:
    alter table TABLE_NAME drop check CHECK_CONSTRAINT_NAME;

Acest articol a fost scris de Mayank Kumar. Dacă vă place GeeksforGeeks și doriți să contribuiți, puteți, de asemenea, să scrieți un articol folosind contribute.geeksforgeeks.org sau să trimiteți articolul prin e-mail la [email protected]. Vedeți articolul dumneavoastră apărând pe pagina principală GeeksforGeeks și ajutați alți Geeks.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.