BD SQL
BD SQL
BD SQL
Le langage SQL
Feuille d'exercices n°4
Exercice (1) :
L’objectif de cette partie est d’évaluer votre niveau théorique en matière de SQL.
Ci-dessous, le contenu ainsi que le descriptif des tables concernées par l’évaluation :
COURSES : contient la liste des différents cours (matières) donnés.
SESSIONS : contient tous les cours donnés à une certaine date et place.
PERSONS : toutes les personnes, qu’elles soient formateurs, participants ou autres.
ENROLMENTS: contient l’information sur les inscriptions aux sessions.
Contenu des tables :
Table Courses :
Page 1 sur 4
ENSAH / UAE
BDD / ID1 – A.U. : 2022/2023
Table PERSONS :
Table ENROLMENTS :
Page 2 sur 4
ENSAH / UAE
BDD / ID1 – A.U. : 2022/2023
Questions :
Choisir la bonne réponse pour chacune des questions suivantes :
1. Lesquelles des requêtes suivantes produisent exactement 1 ligne de résultat ?
a) SELECT COUNT(*)
FROM PERSONS
WHERE PNO > 100
c) SELECT COUNT(*)
FROM PERSONS
GROUP BY PNO
a) Donnez par entreprise, le nombre de personnes qui ont déjà suivi au moins un cours.
b) Donnez le nombre de sessions par cours, ainsi que l’entreprise où le formateur travaille.
c) Donnez le nombre de formateurs par entreprise.
4. Quelle requête fournit les informations demandées par la question suivante ?
Donnez une liste de tous les cours qui ont eu lieu (ou auront lieu) au moins deux fois
a) SELECT S_CID, COUNT(*)
FROM SESSIONS
WHERE SCANCEL IS NULL AND COUNT(*) >= 2
Page 3 sur 4
ENSAH / UAE
BDD / ID1 – A.U. : 2022/2023
Donnez, par numéro de cours, la liste de sessions, et indiquez celles qui sont annulées ou pas. Triez le résultat par cours
et par la colonne SCANCEL.
a) SELECT S_CID, SNO, SCANCEL
FROM SESSIONS
ORDER BY S_CID, SCANCEL
b) SELECT S_CID, SNO, SCANCEL
FROM SESSIONS
GROUP BY S_CID
ORDER BY SCANCEL
c) SELECT S_CID, SNO, SCANCEL
FROM COURSES, SESSIONS
ORDER BY CID, SCANCEL, SNO
6. Quelle table est le résultat de la requête suivante?
SELECT S_CID, MAX(SNO)
FROM SESSIONS
GROUP BY S_CID
ORDER BY 2
a)
S_CID MAX(SNO)
7890 13
7910 15
b)
S_CID MAX(SNO)
9000 17
c)
SCID MAX(SNO)
7890 13
8000 14
7910 15
8500 16
9000 17
a) 9
b) 14
c) 19
Exercice (2) :
1.Créer les tables suivantes :
Client (client _id, prenom, nom, email, ville, password)
Commande (commande_id, #client_id, date_achat, reference, cache_prix_total)
Commande_ligne (id, #commande_id, nom, quantite, prix_unitaire, prix_total)
▪ Tous les champs sont obligatoires.
2.Insérer les enregistrements des tables Client, commande, commande_ligne.
3. Ecrire les scripts SQL qui permettent d’obtenir les informations suivantes :
▪ Les noms, les prénoms des clients de ville ‘Toulouse’.
▪ La liste des produits (Nom, prix) classés de plus cher au moins cher.
▪ Noms et emails des clients dont le nom commence par la lettre ‘D’.
▪ La liste de tous les produits qui sont présent sur plusieurs commandes.
▪ Le montant total des commandes pour chaque date.
▪ La liste des commandes effectuées par le client " Collin" entre le 1er et 30 janvier 2019.
▪ La liste des 10 clients qui ont effectué le plus grand montant de commandes, et obtenir ce montant total pour
chaque client.
Page 4 sur 4