Aller au contenu

Un mot pour Fahmio

Tu écris. Tu continues.

Un problème, une idée — assez pour qu’on comprenne, puis tu retournes à ta copie.

On lit. Tu n’as rien d’autre à faire.

Où veux-tu aller ?

↑ ↓ pour parcourir · Entrée pour ouvrir · Échap pour fermer

Fahmio
Fahmio
Bac Tunisie
BD-DBases de données et SQL

Requêtes SELECT — projection, sélection, jointure simple

Idée directrice

Partie LMD : écrire des requêtes SQL SELECT sur le schéma bibliothèque attesté (i-s1-04). Pas d’interface graphique : la réponse est le texte SQL.

Ce qui aide à reconnaître la démarche

« Écrire les commandes SQL »

« requête »

schéma LIVRES / PRET / LECTEURS

Besoin d’un point de départ ? Voir la méthode
  • SELECT colonnes FROM table WHERE condition.
  • Jointure : égalités de FK = PK des tables mères.
  • Comparer d’abord les noms de colonnes du schéma avant d’écrire.
Les pièges à vérifier dans ta démarche
  • Oublier le lien PRET–LIVRES ou PRET–LECTEURS (produit cartésien).
  • Filtrer sur une colonne absente de la table du FROM.
  • Utiliser = pour une chaîne sans quotes.
Sujet principal

Exercice — dans l'esprit des sujets du bac

6 questionsCorrigé masqué

Schéma :

  • LIVRES (NumLV, Titre, NomAuteur, ValeurLV, NumED#)
  • LECTEURS (NumLE, NomLE, AdrLE, VilleLE)
  • PRET (NumLV#, NumLE#, DateP, DateRet)
  1. Écrire la requête SQL listant le titre et l’auteur de tous les livres dont la valeur ValeurLV est strictement supérieure à 50.
  2. Écrire la requête donnant le nom des lecteurs habitant la ville 'Sfax'.
  3. Écrire une jointure listant Titre du livre et NomLE du lecteur pour tous les prêts effectués le '2024-01-15' (jointure PRET–LIVRES–LECTEURS).
Voir la correction commentéeAprès avoir posé votre démarche
1.
SELECT Titre, NomAuteur
FROM LIVRES
WHERE ValeurLV > 50;
2.
SELECT NomLE
FROM LECTEURS
WHERE VilleLE = 'Sfax';
3.
SELECT L.Titre, R.NomLE
FROM PRET P, LIVRES L, LECTEURS R
WHERE P.NumLV = L.NumLV
  AND P.NumLE = R.NumLE
  AND P.DateP = '2024-01-15';

(Équivalent avec JOIN … ON.) SELECT + WHERE + jointure sur FK\boxed{\text{SELECT + WHERE + jointure sur FK}}

Changer d’énoncé, garder le raisonnement

Choisis un seul transfert après le sujet principal. Qu’est-ce qui change ? Quel résultat ou quelle méthode peux-tu réutiliser ? Les autres exercices restent disponibles pour une prochaine séance.

Exercices d'entraînement — une nuance à la fois

1 Drill BD-D.1 — SELECT simple sur Fichiers
Entraînement 01 / 02

Drill BD-D.1 — SELECT simple sur Fichiers

1 questionCorrigé masqué

Table Fichiers (CodeF, NomF, Extension, TypeF, Taille, Datcreat). Écrire la requête SQL listant le nom et la taille des fichiers de type 'W' dont la taille dépasse 20 Ko.

Voir la correction commentéeAprès avoir posé votre démarche
SELECT NomF, Taille
FROM Fichiers
WHERE TypeF = 'W' AND Taille > 20;

On projette deux colonnes et on combine deux conditions de sélection. SELECT NomF, Taille … TypeF=’W’ AND Taille>20\boxed{\text{SELECT NomF, Taille … TypeF='W' AND Taille>20}}

2 Drill BD-D.2 — jointure emprunt / élève / livre
Entraînement 02 / 02

Drill BD-D.2 — jointure emprunt / élève / livre

2 questionsCorrigé masqué

Tables : Eleve(num_ele, nom_pre, …), Livre(code_liv, titre, …), Emprunt(num_emp, num_ele#, code_liv#, date_emp, …).

  1. Écrire la requête listant nom_pre et titre pour tous les emprunts du '2023-05-10'.
  2. Pourquoi une jointure est-elle nécessaire ici ?
Voir la correction commentéeAprès avoir posé votre démarche
1.
SELECT E.nom_pre, L.titre
FROM Emprunt M, Eleve E, Livre L
WHERE M.num_ele = E.num_ele
  AND M.code_liv = L.code_liv
  AND M.date_emp = '2023-05-10';

2. Les noms et titres ne sont pas dans Emprunt : seules les FK y figurent ; la jointure relie aux tables mères pour afficher les libellés. jointure Emprunt–Eleve–Livre\boxed{\text{jointure Emprunt–Eleve–Livre}}

Relier ce raisonnement au bac

Choisis une filière pour voir les sujets qui étayent ce scénario.