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 preguntesQuè 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
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
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
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ó
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
Qualsevol valor inferior a 18 infringeix la regla CHECK i provoca un error d'inserció.
infern de trucada en javascript
Test completat amb èxit La teva puntuació: 2/5Precisió: 0%Inicieu sessió per veure l'explicació 1/5 1/5 < Previous Següent >