Jointure externe droite pour le niveau d'utilisateur

MySQLBeginner
Pratiquer maintenant

Introduction

Dans ce projet, vous allez apprendre à créer une base de données, des tables et à effectuer une requête de jointure externe droite pour récupérer le niveau de tous les utilisateurs en fonction de leurs scores.

👀 Aperçu

Image d aperçu du projet de base de données

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment accéder à MySQL en utilisant la commande sudo sans mot de passe
  • Comment créer une base de données et des tables
  • Comment insérer des données dans les tables
  • Comment effectuer une requête de jointure externe droite pour récupérer le niveau de tous les utilisateurs

🏆 Réalisations

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

  • Comprendre les bases de la gestion de la base de données MySQL
  • Créer et manipuler des tables dans une base de données
  • Effectuer des requêtes SQL complexes, telles que les jointures externes droites, pour récupérer des données
  • Appliquer vos connaissances SQL à des scénarios du monde réel, tels que la gestion des utilisateurs dans une application vidéo ou audio

Accéder à MySQL et créer la base de données

Dans cette étape, vous allez apprendre à accéder à MySQL en utilisant la commande sudo sans mot de passe, et à créer la base de données vip.

  1. Démarrer le service MySQL :
sudo service mysql start
  1. Accéder à MySQL :
sudo mysql
  1. Créer la base de données vip :
CREATE SCHEMA vip CHARSET UTF8;
USE vip;

Maintenant, vous avez créé avec succès la base de données vip.

✨ Vérifier la solution et pratiquer

Créer les tables et insérer des données

Dans cette étape, vous allez créer les tables level et user, et y insérer des données.

  1. Créer la table level :
CREATE TABLE level (
name VARCHAR(64) NOT NULL,
low INT NOT NULL,
high INT NOT NULL
);
  1. Insérer des données dans la table level :
INSERT INTO level VALUES
('L1', 0, 9),
('L2', 10, 99),
('L3', 100, 499),
('L4', 500, 999);
  1. Créer la table user :
CREATE TABLE user (
name VARCHAR(32) NOT NULL,
score INT NOT NULL
);
  1. Insérer des données dans la table user :
INSERT INTO user VALUES
('Jane', 5),
('John', 15),
('Mary', 155),
('David', 9999);

Maintenant, vous avez créé avec succès les tables et inséré des données dans celles-ci.

✨ Vérifier la solution et pratiquer

Effectuer la requête de jointure externe droite

Dans cette étape, vous allez effectuer une requête de jointure externe droite pour récupérer le niveau de tous les utilisateurs.

  1. Ouvrez le fichier getLevel.sql et ajoutez la requête suivante :
SELECT u.name AS `User`, l.name AS `Level`
FROM `level` l
RIGHT JOIN `user` u ON u.score BETWEEN l.low AND l.high;

Cette requête effectue une jointure externe droite entre les tables level et user, et récupère le nom de l'utilisateur et le nom du niveau correspondant.

  1. Enregistrez le fichier getLevel.sql.
✨ Vérifier la solution et pratiquer

Exécuter la requête

Dans cette étape, vous allez exécuter le script getLevel.sql dans MySQL.

  1. Exécutez le script :
SOURCE /home/labex/project/getLevel.sql;

Vous devriez voir la sortie suivante :

MariaDB [vip]> SOURCE /home/labex/project/getLevel.sql;
+-------+-------+
| User  | Level |
+-------+-------+
| Jane  | L1    |
| John  | L2    |
| Mary  | L3    |
| David | NULL  |
+-------+-------+
4 rows in set (0.000 sec)

La sortie montre le nom de l'utilisateur et le nom du niveau correspondant pour chaque utilisateur. Si le score d'un utilisateur ne tombe dans aucune des plages de niveau, le niveau est affiché comme NULL.

Félicitations! Vous avez réussi à terminer le projet en créant la base de données, les tables, en insérant des données et en effectuant une requête de jointure externe droite pour récupérer le niveau de tous les utilisateurs.

✨ Vérifier la solution et pratiquer

Résumé

Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires dans LabEx pour améliorer vos compétences.