Introduction
Lorsque vous récupérez des données dans PostgreSQL, vous voudrez probablement que vos résultats soient triés d’une certaine manière. Dans PostgreSQL, vous pouvez spécifier l’ordre de tri de vos résultats avec la clause ORDER BY
. Cette clause vous permet de spécifier la colonne par laquelle vous souhaitez trier vos résultats, et vous permet également de choisir entre l’ordre croissant et l’ordre décroissant. Dans cet article, nous examinerons de plus près les options PostgreSQL par ordre croissant et par ordre décroissant.
Prérequis
Afin de suivre les exemples que nous examinerons dans ce tutoriel, vous devrez vous assurer que le serveur PostgreSQL est correctement installé et configuré. Le service doit être exécuté en arrière-plan.
Si vous travaillez dans un environnement Linux ou Windows, vous pouvez télécharger PostgreSQL ici.
Qu’est-ce que la clause ORDER BY de PostgreSQL ?
Chaque fois que nous voulons récupérer des données d’une table PostgreSQL, nous créons une instruction SELECT
. Par défaut, PostgreSQL renvoie les lignes dans le même ordre qu’elles ont été insérées. Cependant, nous pouvons modifier nos résultats pour les rendre plus lisibles en les triant. Les résultats peuvent être triés de deux manières : par ordre croissant et par ordre décroissant. Nous utilisons la clause PostgreSQL ORDER BY
dans notre instruction SELECT
pour spécifier nos préférences de tri.
Voici la syntaxe de la clause PostgreSQL ORDER BY
:
1
2 3 4 5 6 |
SELECT
nom_of_the_column DE target_table ORDRE PAR nom_of_the_column ASC |
Discutons un peu plus en détail de cette syntaxe:
- D’abord , nous spécifions le nom de colonne que nous utiliserons pour le tri dans la clause
ORDER BY
. Si nous voulons trier par un certain nombre de colonnes, nous les séparons à l’aide d’une virgule. - Après avoir spécifié le nom de notre colonne, nous utilisons
ASC
pour spécifier l’ordre croissant ouDESC
pour l’ordre décroissant. La valeur par défaut de la clauseORDER BY
estASC
ou par ordre croissant si aucune valeur n’est fournie.
Création d’un exemple d’ensemble de données
Nous devrons créer un exemple d’ensemble de données à utiliser dans nos exemples. Commençons par créer une table nommée client_info
:
1
2 3 4 5 6 7 |
CREATE TABLE client_info(
client_id INT PRIMARY KEY NOT NULL, client_firstname TEXT NOT NULL, client_lastname TEXT NOT NULL, client_age INT NOT NULL, client_email TEXT NOT NULL ); |
Now, let’s put some records in the table:
1
2 3 4 5 6 7 |
INSERT INTO client_info(client_id,client_firstname, client_lastname, client_age, client_email)
VALUES (1,’John’,’Turf’,17,’[email protected]’), (2,’Raizel’,’Mendez’,16,’[email protected]’), (3,’Gwyneth’,’Damon’,16,’[email protected]’), (4,’Yeshua’,’Galisanao’,8,’[email protected]’), (5,’Dereck’,’Scott’,10,’[email protected]’); |
We can verify that our INSERT
was successful with a SELECT
query statement:
1
2 3 4 5 6 7 8 9 |
testdatabase=# SELECT * FROM client_info;
client_id | client_firstname | client_lastname | client_age | client_email ———–+——————+—————–+————+———————— 1 | John | Turf | 17 | [email protected] 2 | Raizel | Mendez | 16 | [email protected] 3 | Gwyneth | Damon | 16 | [email protected] 4 | Yeshua | Galisanao | 8 | [email protected] 5 | Dereck | Scott | 10 | [email protected] (5 LIGNES) |
Un exemple Utilisant l’ORDRE PostgreSQL PAR ASC
Maintenant que nous avons appris comment le PostgreSQL ORDER BY
l’instruction fonctionne, nous allons essayer de l’utiliser pour trier les enregistrements que nous avons créés dans la section précédente.
Utilisons l’instruction suivante :
1
|
SELECT* FROM client_info ORDER BY nom du client ASC;
|
Cette instruction demandera à PostgreSQL de sélectionner toutes les lignes de la table client_info
et de les trier en fonction de la client_firstname
colonne par ordre croissant.
Les résultats de cette requête ressembleront à ce qui suit:
1
2 3 4 5 6 7 8 |
client_id | client_firstname | client_lastname | client_age | client_email
———–+——————+—————–+————+———————— 5 | Dereck | Scott | 10 | [email protected] 3 | Gwyneth | Damon | 16 | [email protected] 1 | John | Turf | 17 | [email protected] 2 | Raizel | Mendez | 16 | [email protected] 4 | Yeshua | Galisanao | 8 | [email protected] (5 LIGNES) |
Nous pouvons voir que les valeurs du champ client_firstname
sont triées par ordre alphabétique croissant – notre requête a réussi.
Un exemple Utilisant PostgreSQL ORDER BY DESC
Dans l’exemple précédent, nous avons utilisé la clause ORDER BY
avec l’option ASC
pour l’ordre croissant. Maintenant, nous allons faire le contraire et utiliser ORDER BY
avec DESC
pour trier par ordre décroissant.
Pour ce faire, nous utiliserons l’instruction suivante :
1
|
SELECT* FROM client_info ORDER PAR client_age DESC;
|
Le code ci-dessus triera les lignes récupérées par ordre décroissant en fonction de client_age
.
Les résultats ressembleront à ceci:
1
2 3 4 5 6 7 8 |
client_id | client_firstname | client_lastname | client_age | client_email
———–+——————+—————–+————+———————— 1 | John | Turf | 17 | [email protected] 2 | Raizel | Mendez | 16 | [email protected] 3 | Gwyneth | Damon | 16 | [email protected] 5 | Dereck | Scott | 10 | [email protected] 4 | Yeshua | Galisanao | 8 | [email protected] (5 LIGNES) |
Comme nous nous y attendions, les valeurs de la colonne client_age
sont triées et renvoyées par ordre décroissant.
Conclusion
Le tri de vos résultats peut apporter de l’ordre et de la lisibilité aux données désorganisées, et il est important de savoir comment spécifier vos préférences de tri dans vos requêtes de base de données. Dans ce tutoriel, nous avons parlé de la clause PostgreSQL ORDER BY
, qui vous permet de choisir entre l’ordre croissant et l’ordre décroissant comme options de tri. Avec les exemples que nous avons discutés précédemment à titre de guide, vous pourrez spécifier l’ordre de tri dans vos propres requêtes de base de données.
Juste le Code
Ci-dessous sont tous les extraits de code que nous avons examinés tout au long de notre tutoriel. N’hésitez pas à les copier et à les modifier pour les adapter à vos propres cas d’utilisation.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
SÉLECTIONNEZ * À PARTIR DE l’information client ORDRE PAR client_age DESC;
CRÉER UNE TABLE client_info( CLÉ PRIMAIRE INT client_id NON NULLE, TEXTE NOM_FIRST client NON NUL, TEXTE nom_first client NON NUL, client_age INT NON NUL, TEXTE COURRIEL client NON NUL ); INSÉRER DANS client_info(client_id, nom_first client, nom_first client, nom_first client, client_email) VALUES (1,’John’,’Turf’,17,’[email protected]’), (2,’Raizel’,’Mendez’,16,’[email protected]’), (3,’Gwyneth’,’Damon’,16,’[email protected]’), (4,’Yeshua’,’Galisanao’,8,’[email protected]’), (5,’Dereck’,’Scott’,10,’[email protected]’); SELECT*FROM client_info ORDER BY client_firstname ASC; SELECT* FROM client_info ORDER BY client_age DESC; |