MySQL - Contraintes de vérification : Un guide pour les débutants

Bonjour à tous, aspirants passionnés de bases de données ! Je suis ravi de vous guider dans ce voyage à travers le monde des contraintes de vérification de MySQL. En tant que quelqu'un qui enseigne l'informatique depuis des années, je sais par expérience combien les nouveaux concepts peuvent être intimidants. Mais ne vous inquiétez pas - nous allons avancer pas à pas, et à la fin, vous serez un expert en contraintes de vérification !

MySQL - Check Constraints

Qu'est-ce que les contraintes de vérification ?

Avant de plonger dedans, penchons-nous sur les bases. Imaginez que vous tenez un registre des âges de vos amis. Vous ne voudriez pas accidentellement entrer un nombre négatif ou exagérément élevé, n'est-ce pas ? C'est là que les contraintes de vérification deviennent utiles !

Une contrainte de vérification est comme un videur dans un club - elle vérifie si les données entrant dans votre table remplissent certaines conditions. Si ce n'est pas le cas, elles ne sont pas autorisées à entrer. Simple comme bonjour !

La contrainte de vérification de MySQL

MySQL a introduit les contraintes de vérification dans la version 8.0.16. Si vous utilisez une version antérieure, ne vous inquiétez pas - nous aborderons une méthode alternative utilisant des déclencheurs plus tard.

Commençons par un exemple de base :

CREATE TABLE amis (
id INT PRIMARY KEY,
nom VARCHAR(50),
age INT CHECK (age >= 0 AND age <= 120)
);

Dans cet exemple, nous créons une table appelée 'amis'. La contrainte CHECK assure que la valeur de 'age' est comprise entre 0 et 120. C'est comme dire au videur, "Seules les âges entre 0 et 120 sont admis !"

Contrainte de vérification avec un déclencheur

Pour ceux d'entre vous qui utilisent des versions antérieures de MySQL, ne vous sentez pas exclus ! Nous pouvons atteindre une fonctionnalité similaire en utilisant des déclencheurs. Voici comment :

DELIMITER //
CREATE TRIGGER verification_age
BEFORE INSERT ON amis
FOR EACH ROW
BEGIN
IF NEW.age < 0 OR NEW.age > 120 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'L\'âge doit être entre 0 et 120';
END IF;
END;//
DELIMITER ;

Ce déclencheur agit comme notre videur, vérifiant chaque nouvelle entrée avant qu'elle ne soit insérée dans la table.

Ajout d'une contrainte de vérification sur une seule colonne

Disons que nous voulons nous assurer que les noms dans notre table 'amis' sont d'au moins 2 caractères de long :

ALTER TABLE amis
ADD CONSTRAINT verification_longueur_nom
CHECK (LENGTH(nom) >= 2);

Maintenant, essayer d'insérer un nom de moins de 2 caractères entraînera une erreur. C'est comme notre videur disant, "Désolé, ton nom est trop court. Tu ne peux pas entrer !"

Ajout d'une contrainte de vérification sur plusieurs colonnes

Parfois, nous devons vérifier plusieurs colonnes à la fois. Disons que nous voulons nous assurer qu'un ami's nombre préféré est toujours inférieur à son âge :

ALTER TABLE amis
ADD COLUMN nombre_prefere INT,
ADD CONSTRAINT verification_nombre_prefere
CHECK (nombre_prefere < age);

Cette contrainte vérifie deux colonnes simultanément. C'est comme notre videur vérifiant à la fois votre carte d'identité et votre billet avant de vous laisser entrer !

Ajout d'une contrainte de vérification sur une table existante

Que faire si nous avons déjà une table et que nous voulons ajouter une contrainte de vérification ? Pas de problème ! Nous pouvons utiliser la commande ALTER TABLE :

ALTER TABLE amis
ADD CONSTRAINT verification_age
CHECK (age >= 0 AND age <= 120);

Cela ajoute notre vérification d'âge à une table 'amis' existante. C'est comme embaucher un nouveau videur pour notre club déjà ouvert !

Suppression d'une contrainte de vérification

Parfois, nous devons peut-être supprimer une contrainte de vérification. Voici comment :

ALTER TABLE amis
DROP CONSTRAINT verification_age;

Cela supprime la contrainte 'verification_age' de notre table 'amis'. C'est comme dire à notre videur, "Tu peux rentrer à la maison maintenant. Nous n'avons plus besoin de vérifications d'âge."

Contraintes de vérification à l'aide d'un programme client

Si vous utilisez un programme client comme MySQL Workbench, vous pouvez ajouter des contraintes de vérification via l'interface graphique. Il suffit de se rendre dans l'option 'Modifier la table'. N'oubliez pas que le SQL sous-jacent est toujours exécuté - l'interface graphique rend juste cela plus convivial !

Conclusion

Et voilà, les amis ! Vous avez fait vos premiers pas dans le monde des contraintes de vérification de MySQL. Souvenez-vous, ces contraintes sont les videurs de votre base de données - elles gardent les mauvaises données à l'extérieur et assurent que seule la bonne stuff entre.

Voici un résumé rapide des méthodes que nous avons couvertes :

Méthode Description
CREATE TABLE avec CHECK Ajouter une contrainte lors de la création d'une nouvelle table
Déclencheur Utilisé pour les versions antérieures de MySQL
ALTER TABLE ADD CONSTRAINT Ajouter une contrainte à une table existante
ALTER TABLE DROP CONSTRAINT Supprimer une contrainte existante

Pratiquez ces concepts, jouez avec différentes contraintes, et avant de vous en rendre compte, vous serez un excellent videur de base de données ! Souvenez-vous, dans le monde des bases de données, de bonnes contraintes font de bons voisins. Bon codage !

Credits: Image by storyset