Skip to main content

🎓 Exercices Pratiques SQL : De la Théorie à la Pratique

📚 Exercice 1 : Le Système de Bibliothèque Universitaire

Contexte

Vous êtes chargé(e) de créer une base de données pour gérer la bibliothèque de l'université. Cette base doit gérer les livres, les étudiants, les emprunts et les catégories de livres.

Tâches

  1. Création de la Base de Données
  • Créer une base de données nommée library_db
  1. Création des Tables
-- À vous de créer les tables suivantes :
-- students (id, student_number, first_name, last_name, email, registration_date)
-- books (id, title, author, isbn, publication_year, category_id, copies_available)
-- categories (id, name, description)
-- loans (id, student_id, book_id, loan_date, return_date, actual_return_date)
  1. Insertion des Données
  • Insérer au moins 5 catégories différentes
  • Ajouter 10 livres répartis dans ces catégories
  • Créer 5 étudiants
  • Enregistrer 8 emprunts différents
  1. Requêtes à Réaliser
  • Lister tous les livres empruntés actuellement
  • Trouver les étudiants qui se sont inscrit le plus récemment
  • Trouver les livres qui se sont inscrit les plus récents

Critères d'Évaluation

  • Structure correcte des tables avec clés primaires et étrangères
  • Utilisation appropriée des types de données
  • Contraintes d'intégrité (NOT NULL, UNIQUE, etc.)
  • Qualité des requêtes SQL

🎮 Exercice 2 : Plateforme de Jeux Vidéo

Contexte

Vous développez une base de données pour une plateforme de jeux vidéo en ligne qui doit gérer les joueurs, les jeux, les scores et les achats.

Tâches

  1. Configuration Initiale
  • Créer une base gaming_platform
  1. Structure des Données
-- Créer les tables :
-- players (id, username, email, password_hash, creation_date, premium_member)
-- games (id, title, genre, release_date, price, age_rating)
-- scores (id, player_id, game_id, score_value, play_date)
-- purchases (id, player_id, game_id, purchase_date, price_paid)
-- achievements (id, game_id, name, description, points)
-- player_achievements (id, player_id, achievement_id, unlock_date)
  1. Données de Test
  • Créer 10 joueurs (dont 3 premium)
  • Ajouter 8 jeux de genres différents
  • Enregistrer 20 scores différents
  • Créer 15 achats
  • Ajouter des achievements et leurs déblocages
  1. Requêtes Avancées
  • Récuperer les joueurs premium
  • Classement des jeux les plus cher
  • Classement des scores les plus élevés

🏪 Exercice 3 : Système de Gestion de Restaurant

Contexte

Un restaurant souhaite digitaliser sa gestion avec une base de données complète gérant le menu, les commandes, le personnel et les réservations.

Tâches

  1. Installation
-- Créer la base restaurant_management
-- Configurer les utilisateurs :
  1. Structure Complète
-- Créer les tables :
-- staff (id, first_name, last_name, role, hire_date, salary)
-- menu_categories (id, name, description)
-- menu_items (id, category_id, name, description, price, allergens)
-- tables (id, number, capacity, location)
-- reservations (id, table_id, customer_name, customer_email, date_time, guests)
-- orders (id, table_id, staff_id, order_time, status)
-- order_items (id, order_id, menu_item_id, quantity, notes)
-- inventory (id, ingredient_name, quantity, unit, last_restock)
  1. Procédures à Créer
  • Procédure de prise de réservation
  • Procédure de prise de commande
  • Gestion du stock
  • Calcul des revenus
  1. Requêtes Complexes
  • Analyse des plats les plus chers
  • Récupérer les menus

Livrables Attendus pour Chaque Exercice

  1. Script de création
  • Toutes les commandes SQL de création
  1. Script de requêtes
  • Toutes les requêtes demandées
  1. Documentation
  • Schéma de la base de données
  • Explication des choix techniques

Conseils pour les Étudiants

  1. Méthodologie
  • Commencer par dessiner le schéma
  • Tester chaque commande individuellement
  • Vérifier les contraintes d'intégrité
  • Documenter au fur et à mesure
  1. Points d'Attention
  • Nommage cohérent
  • Types de données appropriés
  • Indexation pertinente