PaliSkill
SQL Intermédiaire

Leçon 1 / 8 — Chapitre 10: Mise en pratique : restaurant

Les tables plats, tickets et expeditions

Dernier scénario du module : un restaurant avec livraison, sur trois tables indépendantes.

plats
id | nom               | prix
1  | Salade Cesar       | 12
2  | Pizza Margherita   | 15
3  | Burger Maison      | 14
4  | Soupe du Jour      | 8
5  | Tarte Tatin        | 9

tickets
id | plat_id | quantite | semaine
1  | 1       | 2        | cette_semaine
2  | 2       | 3        | cette_semaine
3  | 3       | 1        | cette_semaine
4  | 2       | 2        | semaine_derniere
5  | 4       | 4        | semaine_derniere
6  | 1       | 1        | semaine_derniere
7  | 5       | 2        | cette_semaine

expeditions
id | transporteur | statut
1  | Rapido        | livree
2  | Rapido        | en_cours
7  | Expressa      | livree

Comme au chapitre 2, expeditions.id désigne directement le ticket livré (relation 1-1) : un ticket absent de expeditions (ici, 3, 4, 5 et 6) correspond simplement à une commande servie sur place, sans livraison. La colonne semaine remplace une vraie date : elle distingue les tickets de la semaine en cours de ceux de la semaine précédente, de façon fixe et déterministe.

Les prix de plats sont exprimés en dollars ($).

À retenir :

  • Une table sans ligne correspondante dans une autre n'est pas une anomalie : ici, l'absence de livraison signifie simplement « pas de livraison, service sur place ».
  • Remplacer une vraie date par une catégorie fixe (cette_semaine/semaine_derniere) garde un scénario réaliste tout en restant parfaitement prévisible.

À vous de jouer : combien de tickets, sur les 7 existants, n'ont aucune ligne correspondante dans expeditions ?

À vous de jouer

À faire

Voici les tables tickets et expeditions :

tickets (id) : 1, 2, 3, 4, 5, 6, 7
expeditions (id) : 1, 2, 7

Combien de tickets, sur les 7 existants, n'ont aucune ligne correspondante dans expeditions ?

Testez cette requête dans un bac à sable SQL en ligne (SQLite Fiddle, W3Schools "Try SQL", ou tout autre) pour vérifier le résultat avant de répondre.

💡 Un nombre.

À vous de jouer

À faire

Voici la table plats :

plats
id | nom               | prix
1  | Salade Cesar       | 12
2  | Pizza Margherita   | 15
3  | Burger Maison      | 14
4  | Soupe du Jour      | 8
5  | Tarte Tatin        | 9

Combien de plats cette table contient-elle ?

Testez cette requête dans un bac à sable SQL en ligne (SQLite Fiddle, W3Schools "Try SQL", ou tout autre) pour vérifier le résultat avant de répondre.

💡 Un nombre.

Quitter le module