Nous allons voir dans ce chapitre comment obtenir les données d’une manière triée. De même, nous verrons comment restreindre le résultat d’une requête à un nombre determiné d’enregistrements.
1. Tri simple
Supposons que nous aimerions obtenir les données à propos des employés comme nous l’avons déjà fait. Nous aimerions toutefois cette fois obtenir les données dans l’ordre alphabétique par nom de famille.
SELECT *
FROM Employee AS emp
ORDER BY emp.Last_name ASC
On obtient le tableau suivant.
{{h}} |
---|
{{r}} |
2. Tri multiple
Supposons que nous aimerions obtenir les données à propos des projets de l’entreprise et les nom et prénom des employés participant à chacun de ceux-ci comme nous l’avons déjà fait. Nous aimerions toutefois cette fois obtenir les données dans l’ordre alphabétique par projet, et pour chaque projet, dans l’ordre alphabétique par nom de famille des employés.
SELECT proj.name AS Projet, emp.Last_name AS Nom, emp.First_name AS Prenom
FROM Employee AS emp, Involvement AS inv, Project AS proj
WHERE inv.Project_id = proj.ID AND inv.Employee_id = emp.ID
ORDER BY proj.Name, emp.Last_name ASC
On obtient le tableau suivant.
{{h}} |
---|
{{r}} |
3. Limite
Supposons que nous aimerions obtenir les données des employés ayant respectivement le deuxième, troisième et quatrième salaire le plus elevés parmi les employés.
SELECT emp.Last_name AS Nom, emp.First_name AS Prenom, emp.Salary AS Salaire
FROM Employee AS emp
ORDER BY emp.Salary DESC
LIMIT 1,3
On obtient le tableau suivant.
{{h}} |
---|
{{r}} |
Récap
Nous sommes maintenant capable d’obtenir les données d’une manière triée dans l’ordre croissant avec ASC
ou décroissant avec DESC
.
Nous avons vu également comment limiter le résultat d’une requête SQL avec LIMIT
. Ce dernier délimite l’intervalle des enregistrements à extraire avec la syntaxe suivante LIMIT position, nombre d'enregistrements
. Dans notre exemple, l’employé avec le salaire le plus élevé est indexé à la position 0, celui avec le deuxième salaire le plus élevé à la position 1, celui avec le troisième salaire le plus élevé à la position 2, etc. La position de départ est donc 1 et le nombre d’enregistrements est 3, donc LIMIT 1,3
.
La clause LIMIT
tel qu’exposé plus haut est la manière de faire avec MySQL et MariaDB uniquement. Les autres SGDBR‘s ont une manière de faire qui diffère légèrement.