Introduction
Dans ce projet, vous apprendrez à créer un système de gestion d'informations sur les étudiants en utilisant MySQL. Ce système comprend deux tables : student_info et student_score, avec une relation de clé étrangère entre elles.
👀 Aperçu
MySQL [studentSys]> DESC student_info;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| Id | int | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.002 sec)
MySQL [studentSys]> DESC student_score;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| Id | int | NO | PRI | NULL | |
| score | varchar(4) | YES | | NULL | |
| Sid | int | YES | MUL | NULL | |
+-------+------------+------+-----+---------+-------+
3 rows in set (0.001 sec)
🎯 Tâches
Dans ce projet, vous apprendrez :
- Comment démarrer le serveur MySQL et vous connecter au terminal MySQL
- Comment créer une base de données et des tables en utilisant des instructions SQL
- Comment établir une relation de clé étrangère entre deux tables
🏆 Réalisations
Après avoir terminé ce projet, vous serez en mesure de :
- Comprendre le concept de base de données relationnelle et savoir comment créer et gérer des tables
- Mettre en œuvre une contrainte de clé étrangère pour garantir l'intégrité des données entre les tables liées
- Appliquer vos connaissances en SQL pour construire un simple système de gestion d'informations sur les étudiants
Démarrer MySQL et créer la base de données
Dans cette étape, vous apprendrez à démarrer le serveur MySQL et à créer la base de données studentSys.
Démarrez le serveur MySQL :
sudo /etc/init.d/mysql startConnectez-vous au terminal MySQL :
mysql -urootCréez un nouveau fichier nommé
studentSys.sqldans le répertoire/home/labex/project.Dans le fichier
studentSys.sql, créez la base de donnéesstudentSys:DROP DATABASE IF EXISTS studentSys; CREATE DATABASE IF NOT EXISTS studentSys CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;L'instruction
DROP DATABASE IF EXISTSvérifie si la base de donnéesstudentSysexiste déjà, et si c'est le cas, elle la supprime. L'instructionCREATE DATABASE IF NOT EXISTScrée ensuite la base de donnéesstudentSysavec le jeu de caractères et la collation spécifiés.
Créer la table student_info
Dans cette étape, vous apprendrez à créer la table student_info.
Dans le fichier
studentSys.sql, utilisez la base de donnéesstudentSys:USE studentSys;Créez la table
student_info:DROP TABLE IF EXISTS student_info; CREATE TABLE student_info ( Id INT NOT NULL AUTO_INCREMENT, name VARCHAR(10), PRIMARY KEY (Id) );L'instruction
DROP TABLE IF EXISTSvérifie si la tablestudent_infoexiste déjà, et si c'est le cas, elle la supprime. L'instructionCREATE TABLEcrée ensuite la tablestudent_infoavec deux colonnes :Idetname. La colonneIdest définie comme clé primaire et est configurée pour s'incrémenter automatiquement.
Créer la table student_score et établir la relation de clé étrangère
Dans cette étape, vous apprendrez à créer la table student_score et à établir une relation de clé étrangère entre la table student_score et la table student_info.
Dans le fichier
studentSys.sql, créez la tablestudent_score:DROP TABLE IF EXISTS student_score; CREATE TABLE student_score ( Id INT NOT NULL, score VARCHAR(4), Sid INT, PRIMARY KEY (Id), FOREIGN KEY (Sid) REFERENCES student_info(Id) );L'instruction
DROP TABLE IF EXISTSvérifie si la tablestudent_scoreexiste déjà, et si c'est le cas, elle la supprime. L'instructionCREATE TABLEcrée ensuite la tablestudent_scoreavec trois colonnes :Id,scoreetSid.L'instruction
PRIMARY KEY (Id)définit la colonneIdcomme clé primaire de la tablestudent_score.L'instruction
FOREIGN KEY (Sid) REFERENCES student_info(Id)établit une relation de clé étrangère entre la colonneSidde la tablestudent_scoreet la colonneIdde la tablestudent_info. Cela signifie que les valeurs de la colonneSidde la tablestudent_scoredoivent correspondre aux valeurs de la colonneIdde la tablestudent_info.Dans l'invite MySQL, exécutez la commande suivante pour exécuter le script
studentSys.sql:
SOURCE ~/project/studentSys.sql
Après avoir effectué ces étapes, vous avez créé la base de données studentSys, la table student_info et la table student_score, et établi une relation de clé étrangère entre les deux tables.
MySQL [studentSys]> DESC student_info;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| Id | int | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.002 sec)
MySQL [studentSys]> DESC student_score;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| Id | int | NO | PRI | NULL | |
| score | varchar(4) | YES | | NULL | |
| Sid | int | YES | MUL | NULL | |
+-------+------------+------+-----+---------+-------+
3 rows in set (0.001 sec)
Résumé
Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.
