Exercice SQL 2
Partie 1
Sur la table lpecom_livres
Quelle requête utiliser pour afficher l'ensemble des enregistrements de la table lpecom_livres ?
SELECT *
FROM lpecom_livres;
Quelle requête utiliser pour sélectionner uniquement les livres qui ont un prix strictement supérieur à 20 de la table lpecom_livres ?
SELECT *
FROM lpecom_livres
WHERE prix > 20;
Quelle requête utiliser pour trier les enregistrements de la table lpecom_livres du prix le plus élevé aux prix le plus bas ?
SELECT *
FROM lpecom_livres
ORDER BY prix DESC;
Quelle requête utiliser pour récupérer le prix du livre le plus élevé de la table lpecom_livres ?
SELECT MAX(prix)
FROM lpecom_livres;
Quelle requête utiliser pour récupérer les livres de la table lpecom_livres qui ont un prix compris entre 20 et 22 ?
SELECT *
FROM lpecom_livres
WHERE prix BETWEEN 20 AND 22;
Quelle requête utiliser pour récupérer tous les livres de la table lpecom_livres à l'exception de celui portant la valeur pour la colonne isbn_10 : 2092589547 ?
SELECT *
FROM lpecom_livres
WHERE isbn_10 != 2092589547;
Quelle requête utiliser pour récupérer le prix du livre le moins élevé de la table lpecom_livres en renommant la colonne dans les résultats par minus ?
SELECT MIN(prix) as minus
FROM lpecom_livres;
Quelle requête utiliser pour sélectionner uniquement les 3 premiers résultats sans le tout premier de la table lpecom_livres ?
SELECT *
FROM lpecom_livres
LIMIT 3 OFFSET 1;
Partie 2
Les tables sont lpecom_etudiants et lpecom_examens
Quelle requête utiliser pour afficher l'id des étudiants qui ont participés à au moins un examen ?
SELECT DISTINCT id_etudiant
FROM lpecom_examens;
Quelle requête utiliser pour compter le nombre d'étudiants qui ont participés à au moins un examen ?
SELECT COUNT(DISTINCT id_etudiant)
FROM lpecom_examens;
Quelle requête utiliser pour calculer la moyenne de l'examen portant l'id : 45 ?
SELECT AVG(note)
FROM lpecom_examens
WHERE id_examen = 45;
Quelle requête utiliser pour récupérer la meilleure note de l'examen portant l'id : 87 ?
SELECT MAX(note)
FROM lpecom_examens
WHERE id_examen = 87;
Quelle requête utiliser pour afficher l'id des étudiants qui ont eu plus de 11 à l'examen 45 ou plus de 12 à l'examen 87 ?
SELECT DISTINCT id_etudiant
FROM lpecom_examens
WHERE (id_examen = 45 AND note > 11)
OR (id_examen = 87 AND note > 12);
Quelle requête utiliser pour afficher tous les enregistrement de la table lpecom_examens avec en plus, si c'est possible, le prenom et le nom de l'étudiant ?
SELECT ex.*, et.prenom, et.nom
FROM lpecom_examens ex
LEFT JOIN lpecom_etudiants et ON ex.id_etudiant = et.id_etudiant;
Quelle requête utiliser pour afficher les enregistrement de la table lpecom_examens avec le prenom et le nom de l'étudiant, uniquement quand les étudiants sont présents dans la table lpecom_etudiants ?
SELECT ex.*, et.prenom, et.nom
FROM lpecom_examens ex
INNER JOIN lpecom_etudiants et ON ex.id_etudiant = et.id_etudiant;
Quelle requête utiliser pour afficher uniquement le nom et le prenom de l'étudiant avec l'id : 30 avec la moyenne de ses deux examens dans une colonne moyenne ?
SELECT et.prenom, et.nom, AVG(ex.note) as moyenne
FROM lpecom_examens ex
INNER JOIN lpecom_etudiants et ON ex.id_etudiant = et.id_etudiant
WHERE et.id_etudiant = 30;
Quelle requête utiliser pour afficher les 3 meilleures examens, du meilleur au moins bon, avec le prenom et le nom de l'étudiant associé ?
SELECT *
FROM lpecom_examens ex
INNER JOIN lpecom_etudiants et ON ex.id_etudiant = et.id_etudiant
ORDER BY ex.note DESC
LIMIT 3;