Présentation
PostgreSQL est un système de gestion de base de données relationnelle (RDBMS) open source. Le système de base de données gère facilement diverses charges de travail et prend en charge la plupart des systèmes d'exploitation. Son extensibilité et sa conformité SQL font de PostgreSQL un SGBDR très populaire.
Le SELECT
est la commande de langage de manipulation de données (DML) la plus couramment utilisée dans PostgreSQL.
Dans ce didacticiel, vous apprendrez à utiliser l'instruction PostgreSQL SELECT avec sa syntaxe complète et des exemples.

Prérequis
- PostgreSQL installé et configuré.
- Une base de données sur laquelle travailler (voir comment créer une base de données.)
Instruction PostgreSQL SELECT
Le PostgreSQL SELECT
L'instruction extrait les données d'une ou de plusieurs tables d'une base de données et renvoie les données dans une table de résultats, appelée ensemble de résultats. Utilisez le SELECT
pour renvoyer une ou plusieurs lignes correspondant aux critères spécifiés à partir des tables de la base de données.
Le SELECT
instruction est l'instruction la plus complexe de SQL, avec de nombreux mots-clés et clauses facultatifs. Les sections ci-dessous expliquent le SELECT
syntaxe en détail.
Syntaxe PostgreSQL SELECT
La forme la plus simple de SELECT
la syntaxe de l'instruction est :
SELECT expressions
FROM tables
WHERE conditions;
- Les
expressions
sont toutes les colonnes et les champs que vous voulez dans le résultat. - Les
tables
syntax est la table ou les tables dont vous voulez extraire les résultats. - Les
conditions
représentent les exigences qui doivent être remplies pour sélectionner les enregistrements.
Un exemple du SELECT
complet la syntaxe de l'instruction est :
SELECT [ ALL | DISTINCT | DISTINCT ON (distinct_expressions) ]
expressions
FROM tables
[WHERE conditions]
[GROUP BY expressions]
[HAVING condition]
[ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS FIRST | NULLS LAST ]]
[LIMIT [ number_rows | ALL]
[OFFSET offset_value [ ROW | ROWS ]]
[FETCH { FIRST | NEXT } [ fetch_rows ] { ROW | ROWS } ONLY]
[FOR { UPDATE | SHARE } OF table [ NOWAIT ]];
Nous expliquerons tous les paramètres dans la section ci-dessous.
Paramètres PostgreSQL SELECT
Les paramètres possibles dans un SELECT
déclaration sont :
ALL
- Un paramètre facultatif qui renvoie toutes les lignes correspondantes.DISTINCT
- Un paramètre qui supprime les doublons du jeu de résultats.DISTINCT ON
- Un paramètre facultatif qui élimine les données en double en fonction desdistinct_expressions
mot-clé.expressions
- Toutes les colonnes et tous les champs que vous souhaitez inclure dans le résultat. Spécifier un astérisque (*
) sélectionne toutes les colonnes.tables
- Spécifiez les tables dont vous souhaitez récupérer les enregistrements. LeFROM
la clause doit contenir au moins une table.WHERE conditions
- La clause est facultative et contient les conditions qui doivent être remplies pour filtrer les enregistrements dans le jeu de résultats.GROUP BY expressions
- Une clause facultative qui collecte les données de plusieurs enregistrements, regroupant les résultats par une ou plusieurs colonnes.HAVING condition
- Une clause facultative utilisée en combinaison avecGROUP BY
. Il limite les groupes de lignes renvoyées à celles qui remplissent la conditionTRUE
, les filtrant ainsi.ORDER BY expression
- Une clause facultative qui identifie la ou les colonnes à utiliser pour trier les données dans le jeu de résultats.LIMIT
- Une clause facultative qui définit le nombre maximum d'enregistrements à récupérer dans la table, spécifié par lenumber_rows
syntaxe. La première ligne du jeu de résultats est déterminée paroffset_value
.FETCH
- Une clause facultative qui définit le nombre maximum d'enregistrements dans le jeu de résultats. Spécifiez le nombre d'enregistrements à la place defetch_rows
syntaxe. Laoffset_value
détermine la première ligne du jeu de résultats.FOR UPDATE
- Une clause facultative qui verrouille en écriture les enregistrements nécessaires à l'exécution de la requête jusqu'à la fin de la transaction.FOR SHARE
- Une clause facultative qui permet aux enregistrements d'être utilisés par d'autres transactions mais empêche leur mise à jour ou leur suppression.
Exemples d'instruction PostgreSQL SELECT
Les sections ci-dessous montrent plusieurs cas d'utilisation pour le SELECT
déclaration.
Exemple 1 : Sélectionner tous les champs
Le moyen le plus simple de renvoyer tous les champs et de voir tout le contenu d'une table est d'utiliser un PostgreSQL SELECT
déclaration.
Par exemple :
SELECT * FROM actor;

Dans l'exemple ci-dessus, la sortie affiche tous les champs contenus dans la table des acteurs.
Exemple 2 :Filtrer les résultats pour qu'ils correspondent à une condition
Le SELECT
vous permet de filtrer les résultats en définissant une condition. Dans l'exemple suivant, nous voulons afficher uniquement les titres de films dont la langue du film est l'anglais (language_id=1
):
SELECT title
FROM film
WHERE language_id=1;

Exemple 3 : Sélectionner des champs dans plusieurs tables
PostgreSQL vous permet de traiter les données de plusieurs tables dans une base de données. Pour obtenir les résultats de plusieurs tables dans une seule requête, utilisez JOINS .
Par exemple :
SELECT customer.first_name, customer.last_name, payment.amount
FROM customer
INNER JOIN payment
ON customer.customer_id=payment.customer_id
ORDER BY amount DESC;

Dans l'exemple ci-dessus, nous combinons deux tables en utilisant INNER JOIN
pour obtenir un ensemble de résultats qui affiche les colonnes prénom et nom d'une table et le montant du paiement d'une autre table. Les deux tables sont reliées par le customer_id
colonne, qui est la même dans les deux tables.
Les résultats sont dans l'ordre décroissant, spécifié par le ORDER BY amount DESC
clause.
Exemple 4 : Sélectionner des champs individuels dans une table
Le PostgreSQL SELECT
vous permet de renvoyer des champs individuels à partir d'une table.
Par exemple :
SELECT first_name, last_name
FROM actor
ORDER BY last_name ASC;

L'exemple ci-dessus ne fournit que le prénom et le nom des acteurs et omet les autres colonnes. La sortie classe les résultats par nom de famille dans l'ordre croissant.
Exemple 5 :concaténer des colonnes
Si vous souhaitez que votre jeu de résultats combine plusieurs colonnes en une seule, vous pouvez utiliser l'opérateur de concaténation ||
avec le SELECT
déclaration. Par exemple :
SELECT
first_name || ' ' || last_name
FROM
customer;

Dans cet exemple, nous avons concaténé les colonnes prénom et nom pour obtenir le nom complet de chaque client.
Exemple 6 :Calculs
Vous pouvez également utiliser le SELECT
déclaration pour effectuer certains calculs, mais ensuite vous omettez le FROM
clause. Par exemple :
SELECT 15*3/5;
La sortie est le résultat de l'expression mathématique spécifiée dans le SELECT
déclaration.