12 EXERCICES SQL - SANS SOLUTIONS
12 EXERCICES SQL
EXERCICE 1 : Gestion d’une Bibliotheque
Donnees
Creer deux tables :
Table Livre
• id livre (INT, cle primaire)
• titre (VARCHAR)
• auteur (VARCHAR)
• annee publication (INT)
• prix (DECIMAL)
Table Emprunt
• id emprunt (INT, cle primaire)
• id livre (INT, cle etrangere)
• nom client (VARCHAR)
• date emprunt (DATE)
• date retour (DATE)
Questions
1. Afficher tous les livres publies apres 2010
2. Afficher le nombre de livres par auteur
3. Afficher les livres qui ont ete empruntes plus de 3 fois
4. Afficher les clients qui n’ont jamais rendu un livre (date retour est NULL)
5. Afficher le prix moyen des livres par auteur
6. Calculer le nombre d’emprunts en cours (non retournes)
1
12 EXERCICES SQL - SANS SOLUTIONS
EXERCICE 2 : Gestion d’une Ecole
Donnees
Creer trois tables :
Table Etudiant
• id etudiant (INT, cle primaire)
• nom (VARCHAR)
• prenom (VARCHAR)
• date naissance (DATE)
• classe (VARCHAR)
Table Cours
• id cours (INT, cle primaire)
• nom cours (VARCHAR)
• credits (INT)
Table Notation
• id notation (INT, cle primaire)
• id etudiant (INT, cle etrangere)
• id cours (INT, cle etrangere)
• note (DECIMAL)
Questions
1. Afficher tous les etudiants de la classe ’2IDL’
2. Afficher la note moyenne par etudiant
3. Afficher les etudiants ayant une moyenne superieure a 15
4. Afficher les cours avec le plus d’etudiants inscrits
5. Afficher les etudiants les plus ages
6. Afficher les etudiants qui ont note moins de 10 dans au moins un cours
2
12 EXERCICES SQL - SANS SOLUTIONS
EXERCICE 3 : Gestion d’un Restaurant
Donnees
Creer deux tables :
Table Plat
• id plat (INT, cle primaire)
• nom plat (VARCHAR)
• prix (DECIMAL)
• categorie (VARCHAR)
• disponibilite (INT)
Table Commande
• id commande (INT, cle primaire)
• id plat (INT, cle etrangere)
• quantite (INT)
• date commande (DATETIME)
• montant total (DECIMAL)
Questions
1. Afficher tous les plats de la categorie ’Dessert’
2. Afficher les plats non disponibles (disponibilite = 0)
3. Calculer le revenu total par categorie
4. Afficher les plats les plus commandes
5. Afficher le nombre de commandes par jour
6. Afficher les plats ayant un prix superieur a 100 DH
EXERCICE 4 : Gestion d’une Pharmacie
Donnees
Creer deux tables :
Table Medicament
• id med (INT, cle primaire)
• nom med (VARCHAR)
3
12 EXERCICES SQL - SANS SOLUTIONS
• prix (DECIMAL)
• stock (INT)
• date expiration (DATE)
Table Vente
• id vente (INT, cle primaire)
• id med (INT, cle etrangere)
• quantite (INT)
• date vente (DATE)
Questions
1. Afficher les medicaments dont le stock est inferieur a 10
2. Afficher les medicaments expires
3. Calculer le revenu total par medicament
4. Afficher les medicaments ayant une bonne vente (plus de 50 unites vendues)
5. Afficher le medicament le plus cher
6. Calculer la valeur totale du stock
EXERCICE 5 : Gestion d’un Hotel
Donnees
Creer trois tables :
Table Chambre
• id chambre (INT, cle primaire)
• numero (VARCHAR)
• type (VARCHAR)
• prix nuit (DECIMAL)
• etage (INT)
Table Client
• id client (INT, cle primaire)
• nom (VARCHAR)
• email (VARCHAR)
4
12 EXERCICES SQL - SANS SOLUTIONS
• telephone (VARCHAR)
Table Reservation
• id reservation (INT, cle primaire)
• id chambre (INT, cle etrangere)
• id client (INT, cle etrangere)
• date arrivee (DATE)
• date depart (DATE)
Questions
1. Afficher les chambres disponibles pour une date donnee
2. Afficher le nombre de nuitees par chambre
3. Calculer le revenu total par type de chambre
4. Afficher les clients qui ont reserve plus de 3 fois
5. Afficher les chambres qui ne sont jamais reservees
6. Afficher le client le plus fidele (le plus de reservations)
EXERCICE 6 : Gestion d’une Boutique E-commerce
Donnees
Creer trois tables :
Table Produit
• id produit (INT, cle primaire)
• nom (VARCHAR)
• prix (DECIMAL)
• categorie (VARCHAR)
• stock (INT)
Table Client
• id client (INT, cle primaire)
• nom (VARCHAR)
• email (VARCHAR)
• ville (VARCHAR)
5
12 EXERCICES SQL - SANS SOLUTIONS
Table Commande
• id commande (INT, cle primaire)
• id client (INT, cle etrangere)
• id produit (INT, cle etrangere)
• quantite (INT)
• date commande (DATE)
Questions
1. Afficher tous les produits de la categorie ’Electronique’
2. Afficher les clients de la ville ’Tetouan’
3. Calculer le montant total des commandes par client
4. Afficher les produits les plus vendus
5. Afficher les clients qui n’ont jamais commande
6. Afficher la moyenne des commandes par ville
EXERCICE 7 : Gestion d’un Hôpital
Donnees
Creer trois tables :
Table Patient
• id patient (INT, cle primaire)
• nom (VARCHAR)
• age (INT)
• telephone (VARCHAR)
Table Docteur
• id docteur (INT, cle primaire)
• nom (VARCHAR)
• specialite (VARCHAR)
• experience (INT)
Table Consultation
• id consultation (INT, cle primaire)
6
12 EXERCICES SQL - SANS SOLUTIONS
• id patient (INT, cle etrangere)
• id docteur (INT, cle etrangere)
• date consultation (DATE)
• diagnostic (VARCHAR)
Questions
1. Afficher les patients ages de plus de 50 ans
2. Afficher les docteurs avec le plus d’experience
3. Afficher le nombre de consultations par specialite
4. Afficher les patients qui ont consulte plus de 3 fois
5. Afficher les docteurs qui n’ont aucune consultation
6. Afficher les patients par docteur
EXERCICE 8 : Gestion d’une Banque
Donnees
Creer deux tables :
Table Compte
• id compte (INT, cle primaire)
• titulaire (VARCHAR)
• solde (DECIMAL)
• type compte (VARCHAR)
• date ouverture (DATE)
Table Transaction
• id transaction (INT, cle primaire)
• id compte (INT, cle etrangere)
• montant (DECIMAL)
• type (VARCHAR) – Depot ou Retrait
• date transaction (DATE)
7
12 EXERCICES SQL - SANS SOLUTIONS
Questions
1. Afficher les comptes avec un solde negatif
2. Afficher le solde moyen par type de compte
3. Afficher les clients qui ont depense plus de 50000 DH
4. Afficher le nombre de transactions par compte
5. Afficher les comptes ouverts cette annee
6. Afficher les 10 plus grandes transactions
EXERCICE 9 : Gestion d’une Agence de Voyage
Donnees
Creer trois tables :
Table Destination
• id destination (INT, cle primaire)
• ville (VARCHAR)
• pays (VARCHAR)
• prix semaine (DECIMAL)
Table Client
• id client (INT, cle primaire)
• nom (VARCHAR)
• email (VARCHAR)
Table Voyage
• id voyage (INT, cle primaire)
• id client (INT, cle etrangere)
• id destination (INT, cle etrangere)
• date depart (DATE)
• nombre jours (INT)
8
12 EXERCICES SQL - SANS SOLUTIONS
Questions
1. Afficher les destinations les plus cheres
2. Afficher le nombre de voyages par destination
3. Afficher les clients qui ont voyage au Maroc
4. Calculer le revenu total par destination
5. Afficher les clients qui ont voyage plus de 2 fois
6. Afficher les destinations sans aucun voyage
EXERCICE 10 : Gestion d’une Universite
Donnees
Creer trois tables :
Table Professeur
• id prof (INT, cle primaire)
• nom (VARCHAR)
• department (VARCHAR)
• salaire (DECIMAL)
Table Matiere
• id matiere (INT, cle primaire)
• nom matiere (VARCHAR)
• id prof (INT, cle etrangere)
• credits (INT)
Table Inscription
• id inscription (INT, cle primaire)
• id etudiant (INT)
• id matiere (INT, cle etrangere)
• note (DECIMAL)
9
12 EXERCICES SQL - SANS SOLUTIONS
Questions
1. Afficher les professeurs du department ’Informatique’
2. Afficher le nombre de matieres par professeur
3. Afficher les matieres avec plus de 100 etudiants inscrits
4. Calculer le salaire moyen par department
5. Afficher les professeurs sans aucune matiere
6. Afficher les matieres avec une moyenne de notes inferieure a 12
EXERCICE 11 : Gestion d’une Compagnie Aerienne
Donnees
Creer trois tables :
Table Vol
• id vol (INT, cle primaire)
• numero vol (VARCHAR)
• destination (VARCHAR)
• date vol (DATE)
• capacite (INT)
Table Passager
• id passager (INT, cle primaire)
• nom (VARCHAR)
• nationalite (VARCHAR)
• passport (VARCHAR)
Table Reservation
• id reservation (INT, cle primaire)
• id vol (INT, cle etrangere)
• id passager (INT, cle etrangere)
• prix billet (DECIMAL)
• date reservation (DATE)
10
12 EXERCICES SQL - SANS SOLUTIONS
Questions
1. Afficher les vols vers ’Paris’
2. Afficher le nombre de passagers par vol
3. Afficher les vols avec moins de 10 places restantes
4. Calculer le revenu total par destination
5. Afficher les passagers qui ont reserve plus de 5 vols
6. Afficher les vols complets (places = 0)
EXERCICE 12 : Gestion d’une Entreprise Logistique
Donnees
Creer trois tables :
Table Entrepot
• id entrepot (INT, cle primaire)
• nom (VARCHAR)
• ville (VARCHAR)
• capacite (INT)
Table Colis
• id colis (INT, cle primaire)
• id entrepot (INT, cle etrangere)
• poids (DECIMAL)
• destination (VARCHAR)
• statut (VARCHAR) – En attente, En transit, Livre
Table Livraison
• id livraison (INT, cle primaire)
• id colis (INT, cle etrangere)
• date livraison (DATE)
• cout livraison (DECIMAL)
• livreur (VARCHAR)
11
12 EXERCICES SQL - SANS SOLUTIONS
Questions
1. Afficher les entrepots par ordre de capacite
2. Afficher le nombre de colis par entrepot
3. Afficher les colis en attente de livraison
4. Calculer le cout moyen de livraison par destination
5. Afficher les livreurs qui ont effectue plus de 20 livraisons
6. Afficher le poids total des colis par destination
Fin des 12 Exercices
A vous de jouer ! Creer les tables, inserer les donnees et resoudre les questions.
12