Introduction
Dans ce projet, vous allez apprendre à ajouter diverses contraintes à un schéma de base de données, y compris les clés primaires, les clés étrangères, les contraintes d'unicité, les valeurs par défaut et les contraintes de vérification. À la fin de ce projet, vous aurez une meilleure compréhension de la manière de concevoir et d'appliquer des règles d'intégrité des données dans une base de données relationnelle.
👀 Aperçu

🎯 Tâches
Dans ce projet, vous allez apprendre :
- Comment créer une clé primaire composite sur la table
salgrade - Comment spécifier une clé étrangère sur le champ
deptnodans la tableemp - Comment utiliser une contrainte d'unicité pour empêcher les doublons dans le champ
enamede la tableemp - Comment définir une valeur par défaut pour le champ
commdans la tableemp - Comment utiliser une contrainte de vérification pour empêcher l'entrée de dates d'embauche postérieures au 28 février 2022 dans le champ
hiredatede la tableemp
🏆 Réalisations
Après avoir terminé ce projet, vous serez capable de :
- Comprendre l'importance des contraintes d'intégrité des données dans la conception de bases de données
- Implémenter divers types de contraintes dans une base de données MySQL
- Appliquer les meilleures pratiques pour maintenir la qualité et la cohérence des données
- Dépanner et déboguer les problèmes liés aux contraintes de base de données
Démarrer le serveur MySQL et importer la base de données
Dans cette étape, vous allez apprendre à démarrer le service MySQL et à importer la base de données personnel.sql. Suivez les étapes ci-dessous pour compléter cette étape :
Démarrer MySQL :
sudo /etc/init.d/mysql startImporter la base de données
personnel.sqldans MySQL. Vous pouvez le faire en exécutant la commande suivante dans votre terminal :mysql -u root < /home/labex/project/personnel.sql
Cette commande importera la base de données personnel.sql dans MySQL en utilisant l'utilisateur root.
Ajouter une clé primaire composée à la table ‘salgrade’
Dans cette étape, vous allez apprendre à ajouter une clé primaire composite à la table salgrade. Suivez les étapes ci-dessous pour compléter cette étape :
Connectez-vous au terminal MySQL :
mysql -urootUtilisez la base de données
personnel:USE `personnel`;Ajoutez une clé primaire composite à la table
salgrade, en utilisant les champsgrade,losalethisalcomme clé primaire composite :ALTER TABLE salgrade ADD PRIMARY KEY (grade, losal, hisal);
Cela créera une clé primaire composite sur la table salgrade, en utilisant les champs grade, losal et hisal.
Ajouter des contraintes à la table ‘emp’
Dans cette étape, vous allez apprendre :
- Comment spécifier une clé étrangère sur le champ 'deptno' dans la table 'emp' qui référence le champ 'deptno' dans la table 'dept'.
- Comment utiliser des contraintes d'unicité pour empêcher la duplication du champ 'name' dans la table 'emp'.
- Comment utiliser la contrainte de valeur par défaut pour définir la valeur par défaut du champ 'comm' dans la table 'emp' à 100.
- Comment empêcher l'entrée d'une date d'embauche après le 28 février 2022 dans le champ 'hiredate' de la table 'emp' en utilisant la contrainte de vérification.
Suivez les étapes ci-dessous pour compléter cette étape.
Utilisez la base de données
personnel:USE `personnel`;Spécifiez une clé étrangère sur le champ
deptnodans la tableemp, en référenceant le champdeptnodans la tabledept:ALTER TABLE emp ADD FOREIGN KEY (deptno) REFERENCES dept(deptno);Utilisez une contrainte d'unicité pour empêcher les doublons dans le champ
enamede la tableemp:ALTER TABLE emp ADD UNIQUE (ename);Utilisez une contrainte de valeur par défaut pour définir la valeur par défaut du champ
commdans la tableempà 100 :ALTER TABLE emp ALTER COLUMN comm SET DEFAULT 100;Utilisez une contrainte de vérification pour empêcher l'entrée de dates d'embauche postérieures au 28 février 2022 dans le champ
hiredatede la tableemp:ALTER TABLE emp ADD CHECK (hiredate <= '2022-02-28');
Voir la structure de la table
Dans cette étape, vous utiliserez des commandes pour afficher la structure des tables salgrade et emp :
Affichez la structure de la table
salgrade:desc salgrade;Affichez la structure de la table
emp:desc emp;
Vous devriez voir la sortie suivante :
MariaDB [personnel]> desc salgrade;
+-------+-------------+------+-----+---------+-------+
| Champ | Type | Null | Clé | Par défaut | Extra |
+-------+-------------+------+-----+---------+-------+
| grade | int(4) | NON | PRI | NULL | |
| losal | double(7,2) | NON | PRI | NULL | |
| hisal | double(7,2) | NON | PRI | NULL | |
+-------+-------------+------+-----+---------+-------+
3 lignes sélectionnées (0,001 sec)
MariaDB [personnel]> desc emp;
+----------+-------------+------+-----+---------+-------+
| Champ | Type | Null | Clé | Par défaut | Extra |
+----------+-------------+------+-----+---------+-------+
| empno | int(4) | NON | PRI | NULL | |
| ename | varchar(20) | OUI | UNI | NULL | |
| job | varchar(20) | OUI | | NULL | |
| mgr | varchar(20) | OUI | | NULL | |
| hiredate | date | OUI | | NULL | |
| sal | double(7,2) | OUI | | NULL | |
| comm | double(7,2) | OUI | | 100,00 | |
| deptno | int(4) | OUI | MUL | NULL | |
+----------+-------------+------+-----+---------+-------+
8 lignes sélectionnées (0,001 sec)
Félicitations! Vous avez réussi à compléter le projet.
Résumé
Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.



