madamasterclass.com

📔 Exercices - SQL [série n°1️⃣]

Exercices corrigés sur le langage SQL

Exercice 1 : ★ ★ ☆ ☆ ☆

Soit la base de données relationnelle des vols quotidiens d’une compagnie aérienne qui contient les tables Avion, Pilote et Vol.


      Table Avion (NA : numéro avion de type entier (clé primaire), Nom : nom avion de type texte (12),
         Capacite : capacité avion de type entier, Localite : ville de localité de l’avion de type texte (10)
      )

      Table Pilote (NP : numéro pilote de type entier, Nom : nom du pilote de type texte (25),
         Adresse : adresse du pilote de type texte (40)
      )

      Table Vol (NV : numéro de vol de type texte (6), NP : numéro de pilote de type entier,
         NA : numéro avion de type entier, VD : ville de départ de type texte (10),
         VA : ville d’arrivée de type texte (10),
         HD : heure de départ de type entier, HA : heure d’arrivée de type entier
      )

1. Insérer les avions suivants dans la table Avion : (100, 'AIRBUS', 300, 'RABAT'), (101, 'B737', 250, 'CASA'), (102, 'B737', 220, 'RABAT')
2. Afficher tous les avions
3. Afficher tous les avions par ordre croissant sur le nom
4. Afficher les noms et les capacités des avions
5. Afficher les localités des avions sans redondance
6. Afficher les avions dans la localité de Rabat ou Casa
7. Modifier la capacité de l’avion numéro 101, la nouvelle capacité est 220
8. Supprimer les avions avec une capacité inférieure à 200
9. Afficher la capacité maximale, minimale, moyenne des avions
10. Afficher les données des avions dont la capacité est la plus basse
11. Afficher les données des avions dont la capacité est supérieure à la capacité moyenne
12. Afficher le nom et l’adresse des pilotes assurant les vols IT100 et IT104
13. Afficher les numéros des pilotes qui sont en service
14. Afficher les numéros des pilotes qui ne sont pas en service
15. Afficher les noms des pilotes qui conduisent un AIRBUS



Exercice 2 : ★ ★ ☆ ☆ ☆

Vous êtes responsable de la gestion des commandes pour un site e-commerce. Vous devez créer une base de données pour stocker les informations sur les commandes, les clients et les produits. Écrivez les requêtes SQL suivantes :

   • Créer une table pour stocker les informations sur les clients (\(nom\), \(email\), \(adresse\), etc.)
   • Créer une table pour stocker les informations sur les produits (\(nom\), \(description\), \(prix\), etc.)
   • Créer une table pour stocker les informations sur les commandes (\(numéro\: de\: commande\), \(date\), \(client\), \(produits\: achetés\), \(quantité\), \(montant\: total\), etc.)
   • Sélectionner toutes les commandes d'un client spécifique
   • Afficher le montant total des ventes pour une période donnée
   • Trouver les 5 produits les plus vendus.



Exercice 3 : ★ ★ ☆ ☆ ☆

Vous êtes responsable de la gestion des ressources humaines d'une entreprise. Vous devez créer une base de données pour stocker les informations sur les employés, les départements et les postes. Écrivez les requêtes SQL suivantes :

   • Créer une table pour stocker les informations sur les employés (\(nom\), \(prénom\), \(date\: de\: naissance\), \(date\: d'embauche\), \(poste\), \(département\), \(salaire\), etc.)
   • Créer une table pour stocker les informations sur les départements (\(nom\), \(responsable\), etc.)
   • Créer une table pour stocker les informations sur les postes (\(nom\), \(description\), \(salaire\: minimum\) et \(maximum\), etc.)
   • Sélectionner tous les employés d'un département spécifique
   • Afficher le nombre d'employés par département
   • Trouver les 3 employés les mieux payés.



Exercice 4 : ★ ★ ☆ ☆ ☆

Vous êtes responsable de la gestion d'une bibliothèque. Vous devez créer une base de données pour stocker les informations sur les livres, les auteurs et les emprunts. Écrivez les requêtes SQL suivantes :

   • Créer une table pour stocker les informations sur les livres (titre, auteur, éditeur, année de publication, genre, disponibilité, etc.)
   • Créer une table pour stocker les informations sur les auteurs (nom, prénom, date de naissance, nationalité, etc.)
   • Créer une table pour stocker les informations sur les emprunts (numéro d'emprunt, date d'emprunt, date de retour, livre emprunté, emprunteur, etc.)
   • Sélectionner tous les livres d'un auteur spécifique
   • Afficher le nombre de livres empruntés par un lecteur spécifique
   • Trouver les 10 livres les plus empruntés.



Exercice 5 : ★ ★ ☆ ☆ ☆

Vous travaillez pour une entreprise de vente en gros qui souhaite améliorer la gestion de ses ventes. Créez une base de données qui comprend les tables suivantes :

   • Clients (id_client, nom, adresse, ville, pays, téléphone)
   • Produits (id_produit, nom, description, prix_unitaire, quantité_en_stock)
   • Commandes (id_commande, id_client, date_commande, date_livraison, statut)
   • Lignes_de_commande (id_commande, id_produit, quantité, prix_unitaire)

Écrivez les requêtes SQL suivantes :

   • Afficher la liste des 10 meilleurs clients en fonction du montant total de leurs achats
   • Trouver les 5 produits les plus vendus au cours des 6 derniers mois
   • Calculer le chiffre d'affaires mensuel de l'entreprise pour l'année en cours
   • Générer un rapport des commandes en retard (date_livraison < date_actuelle) avec le nom du client et le montant total de la commande.

Exercice 6 : ★ ★ ☆ ☆ ☆

Vous travaillez pour une entreprise qui gère un système de réservation de salles de conférence. Créez une base de données qui comprend les tables suivantes :

   • Salles (id_salle, nom, capacité, équipement)
   • Réservations (id_réservation, id_salle, date_début, date_fin, id_client, statut)
   • Clients (id_client, nom, entreprise, téléphone, email)

Écrivez les requêtes SQL suivantes :

   • Afficher la liste des salles disponibles à une date et heure données
   • Trouver les 3 clients ayant effectué le plus de réservations au cours des 12 derniers mois
   • Générer un rapport des réservations à venir pour la semaine prochaine, avec le nom de la salle, les dates de réservation et le nom du client
   • Mettre à jour le statut d'une réservation (annulée, confirmée, etc.) en fonction de l'id de la réservation.

1. Créer les tables :
   
      CREATE TABLE Salles (
          id_salle INT PRIMARY KEY,
          nom VARCHAR(100),
          capacite INT,
          equipement TEXT
      );

      CREATE TABLE Clients (
          id_client INT PRIMARY KEY,
          nom VARCHAR(100),
          entreprise VARCHAR(100),
          telephone VARCHAR(20),
          email VARCHAR(100)
      );

      CREATE TABLE Reservations (
          id_reservation INT PRIMARY KEY,
          id_salle INT,
          date_debut DATETIME,
          date_fin DATETIME,
          id_client INT,
          statut VARCHAR(50),
          FOREIGN KEY (id_salle) REFERENCES Salles(id_salle),
          FOREIGN KEY (id_client) REFERENCES Clients(id_client)
      );
        
        
2. Afficher la liste des salles disponibles à une date et heure données :
   
      SELECT s.nom, s.capacite, s.equipement
      FROM Salles s
      WHERE s.id_salle NOT IN (
          SELECT r.id_salle
          FROM Reservations r
          WHERE r.date_debut <= '2024-08-06 18:00:00' AND r.date_fin >= '2024-08-06 20:00:00'
      );
        
        
3. Trouver les 3 clients ayant effectué le plus de réservations au cours des 12 derniers mois :
   
      SELECT c.nom, c.entreprise, COUNT(*) AS nb_reservations
      FROM Clients c
      JOIN Reservations r ON c.id_client = r.id_client
      WHERE r.date_debut >= DATE_SUB(CURDATE(), INTERVAL 12 MONTH)
      GROUP BY c.nom, c.entreprise
      ORDER BY nb_reservations DESC
      LIMIT 3;
        
        
4. Générer un rapport des réservations à venir pour la semaine prochaine, avec le nom de la salle, les dates de réservation et le nom du client :
   
      SELECT 
          s.nom AS nom_salle,
          r.date_debut,
          r.date_fin,
          c.nom AS nom_client
      FROM Reservations r
      JOIN Salles s ON r.id_salle = s.id_salle
      JOIN Clients c ON r.id_client = c.id_client
      WHERE r.date_debut BETWEEN DATE_ADD(CURDATE(), INTERVAL 7 DAY) AND DATE_ADD(CURDATE(), INTERVAL 14 DAY)
      ORDER BY r.date_debut;
        
        
5. Mettre à jour le statut d'une réservation (annulée, confirmée, etc.) en fonction de l'id de la réservation :
   
      UPDATE Reservations
      SET statut = 'Confirmée'
      WHERE id_reservation = 123;
        
        


Exercice 7 : ★ ★ ☆ ☆ ☆

Vous travaillez pour un service informatique qui souhaite mettre en place un système de suivi des incidents. Créez une base de données qui comprend les tables suivantes :

   • Incidents (id_incident, titre, description, date_ouverture, date_fermeture, id_utilisateur, id_technicien, statut)
   • Utilisateurs (id_utilisateur, nom, prénom, service, email)
   • Techniciens (id_technicien, nom, prénom, specialite)

Écrivez les requêtes SQL suivantes :

   • Afficher la liste des incidents ouverts par un utilisateur spécifique
   • Trouver les 5 incidents les plus longs à résoudre (date_fermeture - date_ouverture)
   • Générer un rapport hebdomadaire des incidents par statut (ouvert, en cours, résolu, etc.)
   • Mettre à jour le statut d'un incident et affecter un technicien en fonction de l'id de l'incident.

1. Créer les tables :
   
      CREATE TABLE Utilisateurs (
          id_utilisateur INT PRIMARY KEY,
          nom VARCHAR(100),
          prenom VARCHAR(100),
          service VARCHAR(100),
          email VARCHAR(100)
      );

      CREATE TABLE Techniciens (
          id_technicien INT PRIMARY KEY,
          nom VARCHAR(100),
          prenom VARCHAR(100),
          specialite VARCHAR(100)
      );

      CREATE TABLE Incidents (
          id_incident INT PRIMARY KEY,
          titre VARCHAR(100),
          description TEXT,
          date_ouverture DATETIME,
          date_fermeture DATETIME,
          id_utilisateur INT,
          id_technicien INT,
          statut VARCHAR(50),
          FOREIGN KEY (id_utilisateur) REFERENCES Utilisateurs(id_utilisateur),
          FOREIGN KEY (id_technicien) REFERENCES Techniciens(id_technicien)
      );
        
        
2. Afficher la liste des incidents ouverts par un utilisateur spécifique :
   
      SELECT i.id_incident, i.titre, i.date_ouverture, i.date_fermeture, i.statut
      FROM Incidents i
      JOIN Utilisateurs u ON i.id_utilisateur = u.id_utilisateur
      WHERE u.id_utilisateur = 123 AND i.statut = 'Ouvert';
        
        
3. Trouver les 5 incidents les plus longs à résoudre (date_fermeture - date_ouverture) :
   
      SELECT i.id_incident, i.titre, TIMESTAMPDIFF(DAY, i.date_ouverture, i.date_fermeture) AS duree_resolution
      FROM Incidents i
      ORDER BY duree_resolution DESC
      LIMIT 5;
        
        
4. Générer un rapport hebdomadaire des incidents par statut (ouvert, en cours, résolu, etc.) :
   
      SELECT 
          DATE(i.date_ouverture) AS date_rapport,
          i.statut,
          COUNT(*) AS nb_incidents
      FROM Incidents i
      WHERE i.date_ouverture BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE()
      GROUP BY DATE(i.date_ouverture), i.statut
      ORDER BY date_rapport, i.statut;
        
        
5. Mettre à jour le statut d'un incident et affecter un technicien en fonction de l'id de l'incident :
   
      UPDATE Incidents
      SET statut = 'En cours',
          id_technicien = 456
      WHERE id_incident = 789;
        
        


Exercice 8 : ★ ★ ☆ ☆ ☆

Vous travaillez pour une entreprise qui souhaite mettre en place un système de gestion des ressources humaines. Créez une base de données qui comprend les tables suivantes :

   • Employés (id_employe, nom, prenom, date_naissance, date_embauche, poste, salaire, id_departement)
   • Départements (id_departement, nom, responsable)
   • Formations (id_formation, nom, description, date_debut, date_fin)
   • Participation (id_employe, id_formation, note)

Écrivez les requêtes SQL suivantes :

   • Afficher la liste des employés d'un département spécifique, triés par salaire décroissant
   • Trouver les 3 employés ayant suivi le plus de formations au cours des 2 dernières années
   • Générer un rapport des formations à venir, avec le nom de la formation, les dates et la liste des employés inscrits
   • Calculer la masse salariale totale de l'entreprise, par département.

1. Création des tables :
   
      CREATE TABLE Departements (
          id_departement INT PRIMARY KEY,
          nom VARCHAR(100),
          responsable VARCHAR(100)
      );

      CREATE TABLE Employes (
          id_employe INT PRIMARY KEY,
          nom VARCHAR(100),
          prenom VARCHAR(100),
          date_naissance DATE,
          date_embauche DATE,
          poste VARCHAR(100),
          salaire DECIMAL(10,2),
          id_departement INT,
          FOREIGN KEY (id_departement) REFERENCES Departements(id_departement)
      );

      CREATE TABLE Formations (
          id_formation INT PRIMARY KEY,
          nom VARCHAR(100),
          description TEXT,
          date_debut DATE,
          date_fin DATE
      );

      CREATE TABLE Participation (
          id_employe INT,
          id_formation INT,
          note DECIMAL(5,2),
          PRIMARY KEY (id_employe, id_formation),
          FOREIGN KEY (id_employe) REFERENCES Employes(id_employe),
          FOREIGN KEY (id_formation) REFERENCES Formations(id_formation)
      );
        
        
2. Afficher la liste des employés d'un département spécifique, triés par salaire décroissant :
   
      SELECT e.id_employe, e.nom, e.prenom, e.salaire
      FROM Employes e
      WHERE e.id_departement = 123
      ORDER BY e.salaire DESC;
        
        
3. Trouver les 3 employés ayant suivi le plus de formations au cours des 2 dernières années :
   
      SELECT e.id_employe, e.nom, e.prenom, COUNT(p.id_formation) AS nb_formations
      FROM Employes e
      JOIN Participation p ON e.id_employe = p.id_employe
      WHERE p.date_debut >= DATE_SUB(CURDATE(), INTERVAL 2 YEAR)
      GROUP BY e.id_employe
      ORDER BY nb_formations DESC
      LIMIT 3;
        
        
4. Générer un rapport des formations à venir, avec le nom de la formation, les dates et la liste des employés inscrits :
   
      SELECT 
          f.nom AS formation,
          f.date_debut,
          f.date_fin,
          GROUP_CONCAT(e.nom, ' ', e.prenom) AS employes_inscrits
      FROM Formations f
      JOIN Participation p ON f.id_formation = p.id_formation
      JOIN Employes e ON p.id_employe = e.id_employe
      WHERE f.date_debut > CURDATE()
      GROUP BY f.id_formation;
        
        
5. Calculer la masse salariale totale de l'entreprise, par département :
   
      SELECT 
          d.nom AS departement,
          SUM(e.salaire) AS masse_salariale
      FROM Employes e
      JOIN Departements d ON e.id_departement = d.id_departement
      GROUP BY d.id_departement;
        
        


Exercice 9 : ★ ★ ☆ ☆ ☆

Vous travaillez pour une entreprise de conseil qui souhaite mettre en place un système de gestion de projet. Créez une base de données qui comprend les tables suivantes :

   • Projets (id_projet, nom, description, date_debut, date_fin, budget, id_client)
   • Tâches (id_tache, id_projet, nom, description, date_debut, date_fin, assignee)
   • Clients (id_client, nom, secteur, contact)
   • Employés (id_employe, nom, prenom, poste)

Écrivez les requêtes SQL suivantes :

   • Afficher la liste des projets d'un client spécifique, avec le budget total et le pourcentage d'avancement
   • Trouver les 5 employés les plus sollicités (nombre de tâches assignées)
   • Générer un rapport des tâches en retard (date_fin < date_actuelle), avec le nom du projet, le nom de la tâche et l'assignee
   • Mettre à jour le budget d'un projet spécifique en fonction de son id.

1. Afficher la liste des projets d'un client spécifique, avec le budget total et le pourcentage d'avancement :
   
      SELECT 
          p.id_projet,
          p.nom AS projet,
          p.budget,
          ROUND(100 * SUM(CASE WHEN t.date_fin < CURDATE() THEN 1 ELSE 0 END) / COUNT(t.id_tache), 2) AS pourcentage_avancement
      FROM Projets p
      JOIN Tâches t ON p.id_projet = t.id_projet
      WHERE p.id_client = 123
      GROUP BY p.id_projet;
        
        
2. Trouver les 5 employés les plus sollicités (nombre de tâches assignées) :
   
      SELECT 
          e.id_employe,
          e.nom,
          e.prenom,
          COUNT(t.id_tache) AS nb_taches_assignees
      FROM Employés e
      JOIN Tâches t ON e.id_employe = t.assignee
      GROUP BY e.id_employe
      ORDER BY nb_taches_assignees DESC
      LIMIT 5;
        
        
3. Générer un rapport des tâches en retard (date_fin < date_actuelle), avec le nom du projet, le nom de la tâche et l'assignee :
   
      SELECT 
          p.nom AS projet,
          t.nom AS tâche,
          e.nom AS assignee
      FROM Tâches t
      JOIN Projets p ON t.id_projet = p.id_projet
      JOIN Employés e ON t.assignee = e.id_employe
      WHERE t.date_fin < CURDATE();
        
        
4. Mettre à jour le budget d'un projet spécifique en fonction de son id :
   
      UPDATE Projets
      SET budget = 500000
      WHERE id_projet = 456;
        
        


Exercice 10 : ★ ★ ☆ ☆ ☆

Vous travaillez pour une entreprise de distribution qui souhaite mettre en place un système de gestion de stock. Créez une base de données qui comprend les tables suivantes :

   • Produits (id_produit, nom, description, prix_achat, prix_vente, quantite_stock)
   • Fournisseurs (id_fournisseur, nom, adresse, contact)
   • Commandes (id_commande, id_produit, id_fournisseur, date_commande, quantite, prix_total)
   • Ventes (id_vente, id_produit, date_vente, quantite, prix_vente)

Écrivez les requêtes SQL suivantes :

   • Afficher la liste des produits en rupture de stock (quantite_stock < seuil_alerte)
   • Trouver les 10 produits les plus vendus au cours des 6 derniers mois
   • Générer un rapport des commandes passées auprès d'un fournisseur spécifique, avec le nom du produit, la quantité et le prix total
   • Mettre à jour la quantité en stock d'un produit spécifique en fonction de son id, après une vente ou une commande.

1. Afficher la liste des produits en rupture de stock (quantite_stock < seuil_alerte) :
   
      SELECT 
          p.id_produit,
          p.nom, 
          p.quantite_stock
      FROM Produits p
      WHERE p.quantite_stock < 10; -- seuil d'alerte de 10 unités
        
        
2. Trouver les 10 produits les plus vendus au cours des 6 derniers mois :
   
      SELECT 
          p.id_produit,
          p.nom,
          SUM(v.quantite) AS quantite_vendue
      FROM Produits p
      JOIN Ventes v ON p.id_produit = v.id_produit
      WHERE v.date_vente >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH)
      GROUP BY p.id_produit
      ORDER BY quantite_vendue DESC
      LIMIT 10;
        
        
3. Générer un rapport des commandes passées auprès d'un fournisseur spécifique, avec le nom du produit, la quantité et le prix total :
   
      SELECT 
          p.nom AS produit,
          c.quantite,
          c.prix_total
      FROM Commandes c
      JOIN Produits p ON c.id_produit = p.id_produit
      WHERE c.id_fournisseur = 123
      ORDER BY c.date_commande DESC;
        
        
4. Mettre à jour la quantité en stock d'un produit spécifique en fonction de son id, après une vente ou une commande :
   
      -- Après une vente
      UPDATE Produits
      SET quantite_stock = quantite_stock - 5 -- quantité vendue
      WHERE id_produit = 456;

      -- Après une commande
      UPDATE Produits 
      SET quantite_stock = quantite_stock + 10 -- quantité commandée
      WHERE id_produit = 456;
        
        

Exercice 11 : ★ ★ ☆ ☆ ☆

Vous gérez une base de données pour une plateforme de streaming. La base de données contient les tables Utilisateurs, Films et Visionnages.

   • Créer une table pour stocker les informations sur les utilisateurs (id_utilisateur, nom, email, date_inscription)
   • Créer une table pour stocker les informations sur les films (id_film, titre, genre, année_sortie)
   • Créer une table pour stocker les informations sur les visionnages (id_utilisateur, id_film, date_visionnage)
   • Afficher la liste des films visionnés par un utilisateur spécifique
   • Trouver les 5 films les plus visionnés.



Exercice 12 : ★ ★ ☆ ☆ ☆

Vous gérez une base de données pour une école. Cette base contient des tables Etudiants, Cours et Inscription.

   • Créer une table pour stocker les informations sur les étudiants (id_etudiant, nom, prenom, date_naissance)
   • Créer une table pour stocker les informations sur les cours (id_cours, titre, description, credits)
   • Créer une table pour stocker les inscriptions (id_etudiant, id_cours, date_inscription)
   • Afficher tous les cours suivis par un étudiant spécifique
   • Compter le nombre d'étudiants inscrits à chaque cours.



Exercice 13 : ★ ★ ☆ ☆ ☆

Vous êtes responsable de la gestion d'un service de location de voitures. Vous devez créer une base de données incluant les tables Clients, Voitures et Locations.

   • Créer une table pour stocker les informations sur les clients (id_client, nom, prenom, email)
   • Créer une table pour stocker les informations sur les voitures (id_voiture, marque, modèle, année)
   • Créer une table pour stocker les informations sur les locations (id_location, id_client, id_voiture, date_location, date_retour)
   • Afficher toutes les locations effectuées par un client spécifique
   • Trouver la voiture la plus souvent louée.



Exercice 14 : ★ ★ ☆ ☆ ☆

Vous êtes en charge de la gestion d'un magasin de vêtements. Vous devez créer une base de données contenant les tables Produits, Vendeurs et Ventes.

   • Créer une table pour stocker les informations sur les produits (id_produit, nom, prix, stock)
   • Créer une table pour stocker les informations sur les vendeurs (id_vendeur, nom, prenom, email)
   • Créer une table pour stocker les ventes (id_vente, id_produit, id_vendeur, date_vente, quantite)
   • Afficher le total des ventes pour un vendeur spécifique
   • Trouver le produit le plus vendu.



Exercice 15 : ★ ★ ☆ ☆ ☆

Vous travaillez pour une entreprise de transport. Vous devez créer une base de données incluant les tables Chauffeurs, Véhicules et Trajets.

   • Créer une table pour stocker les informations sur les chauffeurs (id_chauffeur, nom, prenom, permis)
   • Créer une table pour stocker les informations sur les véhicules (id_vehicule, marque, modele, annee)
   • Créer une table pour stocker les trajets (id_trajet, id_chauffeur, id_vehicule, date_trajet, distance)
   • Afficher tous les trajets effectués par un chauffeur spécifique
   • Calculer la distance totale parcourue par un véhicule spécifique.

Exercice 16 : ★ ★ ★ ☆ ☆

Vous gérez une base de données pour un service de livraison. Cette base contient les tables Utilisateurs, Livraisons et Produits.

   • Créer une table pour stocker les utilisateurs (id_utilisateur, nom, adresse, téléphone)
   • Créer une table pour stocker les informations sur les livraisons (id_livraison, id_utilisateur, date_livraison)
   • Créer une table pour stocker les produits (id_produit, nom, prix)
   • Afficher toutes les livraisons effectuées pour un utilisateur spécifique
   • Calculer le montant total des livraisons effectuées par un utilisateur.



Exercice 17 : ★ ★ ★ ★ ☆

Vous travaillez pour une compagnie d'assurance. La base de données contient les tables Clients, Polices et Sinistres.

   • Créer une table pour stocker les clients (id_client, nom, prenom, date_naissance)
   • Créer une table pour stocker les polices d'assurance (id_police, id_client, type_assurance, date_debut)
   • Créer une table pour stocker les sinistres (id_sinistre, id_police, date_sinistre, montant)
   • Afficher tous les sinistres d'une police spécifique
   • Compter le nombre de sinistres pour chaque type d'assurance.



Exercice 18 : ★ ★ ★ ★ ★

Vous êtes responsable de la gestion d'un site de réseaux sociaux. Cette base contient les tables Utilisateurs, Amis et Messages.

   • Créer une table pour stocker les utilisateurs (id_utilisateur, nom, prenom, date_inscription)
   • Créer une table pour stocker les relations d'amitié (id_utilisateur1, id_utilisateur2, date_ami)
   • Créer une table pour stocker les messages (id_message, id_envoyeur, id_destinataire, contenu, date_envoi)
   • Afficher tous les amis d'un utilisateur spécifique
   • Trouver le nombre total de messages échangés entre deux utilisateurs.



Exercice 19 : ★ ★ ★ ★ ★

Vous gérez une base de données pour une application de réservation de voyages. Elle contient les tables Voyageurs, Destinations et Réservations.

   • Créer une table pour stocker les voyageurs (id_voyageur, nom, prenom, email)
   • Créer une table pour stocker les destinations (id_destination, nom, pays, prix)
   • Créer une table pour stocker les réservations (id_reservation, id_voyageur, id_destination, date_reservation)
   • Afficher toutes les réservations d'un voyageur spécifique
   • Calculer le montant total des réservations effectuées par un voyageur.



Exercice 20 : ★ ★ ★ ★ ★

Vous êtes en charge de la gestion d'une application de livraison de repas. La base contient les tables Restaurants, Clients et Commandes.

   • Créer une table pour stocker les restaurants (id_restaurant, nom, adresse, type_cuisine)
   • Créer une table pour stocker les clients (id_client, nom, prenom, email)
   • Créer une table pour stocker les commandes (id_commande, id_client, id_restaurant, date_commande, montant_total)
   • Afficher toutes les commandes d'un client spécifique
   • Trouver le restaurant avec le montant total des ventes le plus élevé.

Forum(s) associé(s)

Mathématiques Magiques : Dévoilez les Mystères des Nombres

08 Apr, 2016

Les mathématiques ont souvent la réputation d'être une discipline austère et difficile, mais ...

Read more.

Voyage à Travers les Suites Numériques : Découvertes et Applications

27 Jan, 2014

Plongez dans l'univers fascinant des suites numériques, où chaque terme révèle des patterns surprenants et des applications pratiques dans les mathématiques et au-delà.

Read more.

Fonctions en Action : Comprendre et Explorer les Relations Mathématiques

30 Feb, 2015

Découvrez comment les fonctions tissent des liens entre les nombres et les concepts, transformant des idées abstraites en outils puissants pour résoudre des problèmes du quotidien.

Read more.
Page: