logo

SQL | VERIFICAR la restricció

ElCHECKLa restricció a SQL fa complir les regles sobre els valors de les columnes limitant les dades que es poden inserir o actualitzar. Assegura que els valors compleixen les condicions especificades. Si un valor infringeix la condició, l'operació es rebutja.CHECKes pot afegir durant la creació o modificació de la taula.

Sintaxi de la restricció CHECK

El VERIFICAR la restricció es pot definir en crear una taula o afegir més tard mitjançant la instrucció ALTER.

1. Utilitzant CHECK amb CREATE TABLE :

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

2. Utilitzant CHECK amb ALTER TABLE

ALTER TABLE table_name  
ADD CONSTRAINT constraint_name CHECK (condition);

Punts clau sobre la restricció CHECK:



  • Integritat del domini: Assegura que els valors d'una columna compleixen les condicions especificades, ajudant així a mantenir les dades vàlides a la base de dades.
  • S'utilitza amb CREATE o ALTER: La restricció CHECK es pot definir en crear una taula o afegir-la a una taula existent.
  • Es pot combinar amb altres restriccions: Podeu utilitzar CHECK juntament amb altres restriccions com ara CLAU PRIMÀRIA FOREIGN KEY i NOT NULL per definir regles més completes per a les dades de la taula.
  • Restriccions a nivell de fila: A diferència de les restriccions a nivell de columna que afecten columnes individuals, una restricció CHECK es pot aplicar a diverses columnes alhora si cal.

Exemples d'ús de la restricció CHECK

Vegem alguns exemples pràctics per entendre millor com funciona la restricció CHECK SQL .

Exemple 1: aplicació de CHECK en una sola columna

En aquest exemple creem una taula Clients amb una columna Edat que ha de contenir valors entre 18 i 120. La restricció CHECK garanteix que no s'insereixi cap edat no vàlida a la taula.

Consulta:

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

La columna Edat té una restricció CHECK que garanteix que el valor ha d'estar entre 18 i 120. Si intenteu inserir una edat fora d'aquest interval, la base de dades generarà un error.

Exemple 2: restricció CHECK amb diverses columnes

També podem utilitzar la restricció CHECK a diverses columnes. Per exemple, diguem que tenim un Taula d'empleats i volem assegurar-nos que el Sou sigui positiu i l'edat sigui superior o igual als 18 anys.

Consulta:

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

La restricció CHECK garanteix que es compleixin ambdues condicions. l'empleat ha de tenir almenys 18 anys i el sou ha de ser superior a 0. Aquest tipus de restricció és útil quan hi ha diverses columnes a la regla.

Exemple 3: afegir una restricció CHECK amb ALTER TABLE

Podem afegir una restricció CHECK a una taula existent mitjançant la instrucció ALTER TABLE.

Consulta:

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

Això afegeix una restricció CHECK anomenada chk_salary a la taula de l'empleat que garanteix que la columna Salari tingui un valor mínim de 30.000. Si intenteu inserir o actualitzar un registre amb un sou inferior a 30.000, l'operació fallarà.

Test suggerit Edita el qüestionari 5 preguntes

Què garanteix una restricció CHECK a SQL?

  • A

    La columna accepta valors sense cap regla

  • B

    La columna només accepta valors quan és únic

  • C

    La columna només accepta valors quan no són nuls

  • D

    La columna accepta valors que coincideixen amb la regla donada

Explicació:

CHECK imposa una condició als valors de columna que rebutja qualsevol dada que infringeixi la regla definida.

Quan impedeix SQL una INSERT amb CHECK?

  • A

    Quan el valor es duplica a la columna

  • B

    Quan el valor infringeix la condició definida

  • C

    Quan la taula no té cap restricció principal

  • D

    Quan el valor és NULL i la columna permet null

Explicació:

Si les dades inserides o actualitzades es trenquen, la condició CHECK SQL cancel·la l'operació.

On es pot definir una restricció CHECK?

  • A

    Només dins de la sintaxi de consulta SELECT

  • B

    Només després de declarar la clau primària

  • C

    Durant la creació o modificació de la taula

  • D

    Només per a columnes numèriques amb intervals

Explicació:

CHECK es pot afegir mentre es crea la taula o més tard mitjançant una instrucció ALTER TABLE.

Què passa en una restricció CHECK de diverses columnes?

  • A

    La condició només pot fer referència a una columna

  • B

    La condició pot fer referència a diverses columnes

  • C

    La condició només funciona en columnes numèriques

  • D

    La condició ignora els valors durant la inserció

Explicació:

CHECK pot aplicar regles mitjançant dues o més columnes que imposen la validació combinada.

Quina inserció falla la restricció CHECK (Edat ≥ 18)?

  • A

    Valor d'edat inferior a quinze anys

  • B

    Valor d'edat exactament igual a divuit anys

  • C

    Valor d'edat superior als vint-i-cinc anys

  • D

    El valor d'edat s'emmagatzema com a valor NULL permès

Explicació:

Qualsevol valor inferior a 18 infringeix la regla CHECK i provoca un error d'inserció.

infern de trucada en javascript
SQL | VERIFICAR la restriccióTest completat amb èxit La teva puntuació:  2/5Precisió: 0%Inicieu sessió per veure l'explicació 1/5 1/5 < Previous Següent >