LeCHECKLa contrainte dans SQL applique des règles sur les valeurs des colonnes en limitant les données qui peuvent être insérées ou mises à jour. Il garantit que les valeurs répondent aux conditions spécifiées. Si une valeur ne respecte pas la condition, l'opération est rejetée.CHECKpeut être ajouté lors de la création ou de la modification de la table.
Syntaxe de la contrainte CHECK
Le Contrainte CHECK peut être défini lors de la création d'une table ou ajouté ultérieurement à l'aide de l'instruction ALTER.
1. Utilisation de CHECK avec CREATE TABLE :
CREATE TABLE table_name (
column1 datatype
column2 datatype CHECK (condition)
...
);
2. Utilisation de CHECK avec ALTER TABLE
ALTER TABLE table_name
ADD CONSTRAINT constraint_name CHECK (condition);
Points clés concernant la contrainte CHECK :
- Intégrité du domaine : Il garantit que les valeurs d'une colonne répondent aux conditions spécifiées, aidant ainsi à maintenir des données valides dans la base de données.
- Utilisé avec CREATE ou ALTER : La contrainte CHECK peut être définie lors de la création d'une table ou ajoutée à une table existante.
- Peut être combiné avec d’autres contraintes : Vous pouvez utiliser CHECK avec d'autres contraintes comme CLÉ PRIMAIRE FOREIGN KEY et NOT NULL pour définir des règles plus complètes pour les données de la table.
- Contraintes au niveau des lignes : Contrairement aux contraintes au niveau des colonnes qui affectent des colonnes individuelles, une contrainte CHECK peut s'appliquer à plusieurs colonnes à la fois si nécessaire.
Exemples d'utilisation de la contrainte CHECK
Examinons quelques exemples pratiques pour mieux comprendre le fonctionnement de la contrainte CHECK dans SQL .
Exemple 1 : application de CHECK sur une seule colonne
Dans cet exemple, nous créons une table Customers avec une colonne Age qui doit contenir des valeurs comprises entre 18 et 120. La contrainte CHECK garantit qu'aucun âge invalide n'est inséré dans la table.
Requête:
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 colonne Age a une contrainte CHECK qui garantit que la valeur doit être comprise entre 18 et 120. Si vous essayez d'insérer un âge en dehors de cette plage, la base de données générera une erreur.
Exemple 2 : contrainte CHECK avec plusieurs colonnes
Nous pouvons également utiliser la contrainte CHECK sur plusieurs colonnes. Par exemple, disons que nous avons un Table des employés et nous voulons nous assurer que le salaire est positif et que l'âge est supérieur ou égal à 18 ans.
Requête:
définir vs carte
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 contrainte CHECK garantit que les deux conditions sont satisfaites. l'employé doit avoir au moins 18 ans et le salaire doit être supérieur à 0. Ce type de contrainte est utile lorsque plusieurs colonnes sont impliquées dans la règle.
Exemple 3 : Ajout d'une contrainte CHECK avec ALTER TABLE
Nous pouvons ajouter une contrainte CHECK à une table existante à l'aide de l'instruction ALTER TABLE.
Requête:
ALTER TABLE Employee
ADD CONSTRAINT chk_salary CHECK (Salary >= 30000);
Cela ajoute une contrainte CHECK nommée chk_salary à la table Employee garantissant que la colonne Salaire a une valeur minimale de 30 000. Si vous tentez d'insérer ou de mettre à jour un enregistrement avec un salaire inférieur à 30 000, l'opération échouera.
Quiz suggéré Edit Quiz 5 questionsQue garantit une contrainte CHECK en SQL ?
- UN
La colonne accepte les valeurs sans aucune règle
- B
La colonne accepte les valeurs uniquement lorsqu'elles sont uniques
- C
La colonne accepte les valeurs uniquement lorsqu'elles ne sont pas nulles
- D
La colonne accepte les valeurs correspondant à la règle donnée
CHECK applique une condition sur les valeurs de colonne en rejetant toute donnée qui viole la règle définie.
Quand SQL empêche-t-il un INSERT à l’aide de CHECK ?
- UN
Lorsque la valeur est en double dans la colonne
- B
Lorsque la valeur viole la condition définie
- C
Lorsque la table n'a pas de contrainte principale
- D
Lorsque la valeur est NULL et que la colonne autorise null
Si les données insérées ou mises à jour rompent la condition CHECK, SQL annule l'opération.
Où peut-on définir une contrainte CHECK ?
- UN
Uniquement dans la syntaxe de requête SELECT
- B
Seulement après que la clé primaire soit déclarée
Qu'est-ce que l'internet
- C
Lors de la création ou de la modification d'une table
- D
Uniquement pour les colonnes numériques avec des plages
CHECK peut être ajouté lors de la création de la table ou ultérieurement à l'aide d'une instruction ALTER TABLE.
Que se passe-t-il dans une contrainte CHECK multi-colonnes ?
- UN
La condition ne peut référencer qu'une seule colonne
aléatoire pas en java
- B
La condition peut référencer plusieurs colonnes
- C
La condition ne fonctionne que sur les colonnes numériques
- D
La condition ignore les valeurs lors de l'insertion
CHECK peut appliquer des règles en utilisant deux colonnes ou plus appliquant une validation combinée.
Quelle insertion échoue à la contrainte CHECK (Age ≥ 18) ?
- UN
Valeur d'âge inférieure à quinze ans
- B
Valeur d'âge exactement égale à dix-huit ans
- C
Valeur d'âge supérieure à vingt-cinq ans
- D
Valeur d'âge stockée comme valeur NULL autorisée
Toute valeur inférieure à 18 viole la règle CHECK et entraîne un échec d'insertion.
Quiz terminé avec succès Votre score : 2/5Précision : 0%Connectez-vous pour voir l'explication 1/5 1/5 < Previous Suivant >