SQL : Chapitre 6
Corrections
Learning by Doing.
Le monde du SQL.
Chapitre 7.
Pour sélectionner toutes les données de la table "student", utilisez :
​
SELECT * FROM student;
​
Vous pouvez aussi utiliser cette requête qui inclue le nom de la base de donnée et la table.
​
SELECT * FROM education.student;
​
Pour sélectionner toutes les données de la table "university", utilisez :
​
SELECT * FROM university;
​
La requête suivante permet de sélectionner toutes les lignes et toutes les colonnes de la table "student".
​
SELECT *
FROM student;
​
La requête suivante est une projection qui permet de sélectionner toutes les lignes, mais seulement une partie de colonnes de la table "student" (identifiant de l'étudiant, son nom et sa nationalité).
​
SELECT std_id, std_name, std_nationality
FROM student;
La requête suivante combine une projection et une restriction qui permet de sélectionner uniquement des lignes qui correspond aux étudiants français et seulement une parie de colonnes de la table "student".
​
SELECT std_id, std_name, std_nationality
FROM student
WHERE std_nationality="French";
​
Pour sélectionnez les noms et les prénoms des étudiants de la table « student », utilisez la requête suivante :
​
SELECT std_name, std_surname
FROM student;
​
SELECT std_name AS NAME, std_surname AS SURNAME
FROM student
​
-> Sélectionnez les étudiants qui ont 20 ans.
​
SELECT *
FROM student
WHERE std_age=20;
​
-> Sélectionnez les étudiants qui ont moins de 30 ans et qui sont américains.
​
SELECT *
FROM student
WHERE std_age < 30 AND std_nationality="American";
​
-> Sélectionnez les étudiants âgés entre 18 et 22 ans et qui ne sont pas français.
​
SELECT *
FROM student
WHERE std_age BETWEEN 18 AND 22
AND std_nationality<>"French";
​
-> Sélectionnez les étudiants qui ont plus de 18 ans ou qui sont américains.
​
SELECT *
FROM student
WHERE std_age>18 OR std_nationality="American";
​
-> Sélectionnez des établissements français qui ont moins de 100 ans.
​
SELECT *
FROM university
WHERE unv_country="France" AND
unv_year>1922;
​
SELECT *
FROM university
WHERE unv_country="France" AND
unv_year>2022-100;
​
SELECT *
FROM university
WHERE unv_country="France" AND
unv_year>YEAR(CURRENT_DATE())-100;
​
-> Sélectionnez les étudiants qui n’ont pas de numéro de téléphone renseigné.
​
SELECT *
FROM student
WHERE std_phone IS NULL ;
​
SELECT *
FROM student
WHERE std_phone LIKE "%XX%"
OR std_phone IS NULL;
​
Exercices pratiques : Les visites guidées
​
-> Affichez la liste des utilisateurs de la plateforme.
SELECT * FROM utilisateur;
​
-> Affichez la liste des utilisateurs-guides de la plateforme.
​
SELECT DISTINCT tour_guide FROM tour;
​
-> Affichez le tour le plus court.
​
SELECT * FROM tour
ORDER BY tour_duration ASC
LIMIT 1;
​
-> Affichez le tour le plus long.
​
SELECT * FROM tour
ORDER BY tour_duration DESC
LIMIT 1;
​
-> Affichez les commentaires qui ont une note inférieure à 5.
​
SELECT * FROM commentaire
WHERE cmt_note < 5;
​
-> Affichez les réservations faites par l’utilisateur ‘lachard’.
​
SELECT * FROM booking
WHERE usr_customer LIKE "%lachard%";
​
-> Affichez la liste des utilisateurs PREMIUM dans l’ordre alphabétique.
​
SELECT * FROM utilisateur
WHERE usr_is_premium=1
ORDER BY usr_surname ASC;
​
SELECT usr_surname AS SURNAME, usr_name AS NAME FROM utilisateur
WHERE usr_is_premium=1
ORDER BY usr_surname ASC;
​
-> Affichez les utilisateurs qui n’utilisent pas Gmail pour se connecter.
​
SELECT * FROM utilisateur
WHERE usr_email NOT LIKE "%gmail%";
​
-> Affichez la liste des utilisateurs triée par âge qui utilisent Gmail pour se connecter.
​
SELECT * FROM utilisateur
WHERE usr_email LIKE "%gmail%"
ORDER BY usr_age ASC;
​
-> Affichez les utilisateurs qui n’ont pas renseigné leur âge.
​
SELECT * FROM utilisateur
WHERE usr_age IS NULL;
​
-> Affichez les utilisateurs qui ont entre 19 et 21 ans et qui utilisent Gmail.
​
SELECT * FROM utilisateur
WHERE usr_age BETWEEN 19 AND 21
AND usr_email LIKE "%gmail%";
​
-> Affichez les tours proposés à Paris et qui coutent moins de 20 euros.
​
SELECT * FROM tour
WHERE tour_city="PARIS" AND tour_price<20;
​
-> Affichez les noms et les descriptions des visites qui coutent moins de 30 euros ou qui durent plus de 2 heures.
​
SELECT tour_name, tour_description FROM tour
WHERE tour_price<30 AND tour_duration<2;
​
-> Affichez les courriels des utilisateurs qui ont noté les tours sans laisser de commentaire et en laissant une note inférieure à 5. Triez les résultats par note en commençant par la note la plus faible.
​
SELECT * FROM commentaire
WHERE cmt_body IS NULL AND cmt_note<5
ORDER BY cmt_note ASC;
​
-> Sélectionnez les tours proposés en avril.
​
SELECT * FROM tour
WHERE tour_date LIKE "2022-04%"
​
SELECT * FROM tour
WHERE tour_date BETWEEN '2022-04-1 00:00:00' AND '2022-04-30 23:59:59'
​
SELECT * FROM tour
WHERE MONTH(tour_date)=4;
​