Modifier la clé primaire de la table Countrylanguage

MySQLMySQLBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous allez apprendre à modifier la clé primaire de la table countrylanguage dans une base de données MySQL. La clé primaire initiale était basée uniquement sur la colonne CountryCode, mais pour une meilleure organisation, vous allez créer une clé primaire composée en utilisant les colonnes CountryCode et Language.

👀 Aperçu

MariaDB [world]> DESC countrylanguage;
+-------------+---------------+------+-----+---------+-------+
| Champ       | Type          | Null | Clé | Par défaut | Extra |
+-------------+---------------+------+-----+---------+-------+
| CountryCode | char(3)       | NON  | PRI |         |       |
| Langue      | char(30)      | NON  | PRI |         |       |
| Est officiel | enum('T','F') | NON  |     | F       |       |
| Pourcentage | decimal(4,1)  | NON  |     | 0,0     |       |
+-------------+---------------+------+-----+---------+-------+
4 lignes sélectionnées (0,001 sec)

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment accéder à MySQL en utilisant la commande sudo sans mot de passe
  • Comment importer des données à partir d'un fichier SQL dans une base de données MySQL
  • Comment modifier la clé primaire d'une table en une clé composée

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Comprendre l'importance d'utiliser une clé primaire composée pour une meilleure organisation des données
  • Apporter avec confiance des modifications à la structure de la clé primaire d'une table MySQL
  • Appliquer vos connaissances des instructions SQL pour réaliser les modifications de base de données souhaitées

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) sql(("SQL")) -.-> sql/BasicSQLCommandsGroup(["Basic SQL Commands"]) sql(("SQL")) -.-> sql/DataDefinitionandIntegrityGroup(["Data Definition and Integrity"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/use_database("Database Selection") sql/BasicSQLCommandsGroup -.-> sql/select("SELECT statements") mysql/BasicKeywordsandStatementsGroup -.-> mysql/alter_table("Table Modification") sql/BasicSQLCommandsGroup -.-> sql/insert("INSERT INTO statements") mysql/BasicKeywordsandStatementsGroup -.-> mysql/source("External Code Execution") sql/BasicSQLCommandsGroup -.-> sql/create_table("CREATE TABLE statements") sql/BasicSQLCommandsGroup -.-> sql/alter_table("ALTER TABLE statements") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/database("DB Function - Info Retrieval") sql/DataDefinitionandIntegrityGroup -.-> sql/constraints("Constraints") subgraph Lab Skills mysql/use_database -.-> lab-301358{{"Modifier la clé primaire de la table Countrylanguage"}} sql/select -.-> lab-301358{{"Modifier la clé primaire de la table Countrylanguage"}} mysql/alter_table -.-> lab-301358{{"Modifier la clé primaire de la table Countrylanguage"}} sql/insert -.-> lab-301358{{"Modifier la clé primaire de la table Countrylanguage"}} mysql/source -.-> lab-301358{{"Modifier la clé primaire de la table Countrylanguage"}} sql/create_table -.-> lab-301358{{"Modifier la clé primaire de la table Countrylanguage"}} sql/alter_table -.-> lab-301358{{"Modifier la clé primaire de la table Countrylanguage"}} mysql/database -.-> lab-301358{{"Modifier la clé primaire de la table Countrylanguage"}} sql/constraints -.-> lab-301358{{"Modifier la clé primaire de la table Countrylanguage"}} end

Accéder à MySQL et importer les données

Dans cette étape, vous allez apprendre à accéder à MySQL en utilisant la commande sudo sans mot de passe, et à importer les données de /home/labex/project/world.sql dans MySQL.

  1. Ouvrez un terminal et exécutez la commande suivante pour démarrer le service MySQL :
sudo service mysql start
  1. Accédez à MySQL en utilisant la commande sudo sans mot de passe :
sudo mysql
  1. Importez les données de /home/labex/project/world.sql dans MySQL et basculez sur la base de données world :
MariaDB [(none)]> SOURCE /home/labex/project/world.sql;

Modifier la clé primaire

Dans cette étape, vous allez apprendre à modifier la clé primaire de la table countrylanguage en une clé composée composée de CountryCode et Language.

  1. Ouvrez le fichier changePri.sql.
  2. Ajoutez les instructions SQL suivantes au fichier changePri.sql :
-- Supprime la contrainte de clé primaire d'origine
ALTER TABLE countrylanguage DROP PRIMARY KEY;

-- Ajoute les contraintes de clé primaire composée
ALTER TABLE countrylanguage ADD PRIMARY KEY (CountryCode, Language);
  1. Enregistrez le fichier changePri.sql.
  2. Exécutez le script changePri.sql dans MySQL :
MariaDB [world]> SOURCE /home/labex/project/changePri.sql;
  1. Vérifiez les modifications apportées à la table countrylanguage :
MariaDB [world]> DESC countrylanguage;

La sortie devrait maintenant montrer la clé primaire composée de CountryCode et Language.

+-------------+---------------+------+-----+---------+-------+
| Champ       | Type          | Null | Clé | Par défaut | Extra |
+-------------+---------------+------+-----+---------+-------+
| CountryCode | char(3)       | NON  | PRI |         |       |
| Langue      | char(30)      | NON  | PRI |         |       |
| Est officiel | enum('T','F') | NON  |     | F       |       |
| Pourcentage | decimal(4,1)  | NON  |     | 0,0     |       |
+-------------+---------------+------+-----+---------+-------+
4 lignes sélectionnées (0,001 sec)
✨ Vérifier la solution et pratiquer

Sommaire

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.