PostgreSQL SELECT
Notes et traduction du tutoriel PostgreSQL Tutorial
Usage de l'instruction SELECT pour récupérer les données d'une table.
L'instruction SELECT est une des instructions les plus complexes de PostgreSQL. Elle contient de nombreuses clauses (options) qui la rendent particulièrement flexible.
Pour la rendre plus facilement compréhensible, chaque clause fera l'objet d'un tutoriel.
L'instruction SELECT a les options suivantes :
Sélectionner des éléments distinct via l'opérateur DISTINCT ;
Trier les enregistrements via ORDER BY ;
Filtrer les enregistrements avec WHERE ;
Sélectionner un sous ensemble via LIMIT ou FETCH ;
Regrouper des enregistrement avec la clause GROUP BY ;
Filtre les groupes avec HAVING ;
Joindre d'autre tables avec les jointures comme INNER JOIN, LEFT JOIN, FULL OUTER JOIN, CROSS JOIN ;
Effectuer des opérations d'ensemble avec UNION, INTERSECT et EXCEPT ;
Ici nous nous concentrons sur SELECT et FROM.
Syntaxe instruction SELECT
SELECT
select_list
FROM
TABLE_NAME;
“select_list” peut être une colonne ou une liste de colonnes. Si c'est une liste les éléments sont séparés par une virgule ,
. Pour sélectionner toutes les colonnes on peut également utiliser le caractère *
. La liste peut également contenir des expressions ou des valeurs littérales.
“table_name” est le nom de la table de laquelle on souhaite obtenir les information;
La clause FROM est optionnelle. Si les données demandées ne font pas parti d'une table la clause FROM peut être omise.
La clause FROM est évaluée avant SELECT :
Les mots clés SQL sont insensibles à la casse de caractères : écrire SELECT, Select ou select est don équivalent mais par convention on note les mots clés SQL en majuscules.
SELECT first_name FROM customer;
-- Récupérer plusieurs colonnes
SELECT
first_name,
last_name,
email
FROM
customer;
-- Récupérer toutes les colonnes
SELECT * FROM customer;
-- Expression et valeur littérale avec opérateur de concaténation ||
-- usage d'un alias pour nommer la colonne
SELECT
first_name || ' ' || last_name AS fullname,
email
FROM
customer;
Utiliser *
est considéré comme une mauvaise pratique pour une requête en production embarquée dans du code pour les raisons suivantes:
Performance côté base de données : dans le cas ou la table contient de nombreuses colonnes et un nombre conséquent de données, récupérer plus que nécessaire consomme les ressources du SGDB sans pour autant être utile pour l'application ;
Performance côté application : demander des données non nécessaires augmente le trafic entre le SGBD et l'application, augmente le temps de réponse et minimise la possibilité de passage à l'échelle de l'application.
Utiliser SELECT sans la clause FROM
La clause FROM est optionnelle, elle peut être omise. Typiquement on utilise cette forme de SELECT avec une fonction pour récupérer son résultat :
SELECT NOW();
En résumé
Utiliser l'instruction SELECT … FROM pour récupérer les données d'une table ;
PostgreSQL évalue la clause FROM avant la clause SELECT ;
Utiliser un alias pour affecter un nom temporaire a un colonne ou une expression de la requête ;
En PostgreSQL la clause FROM est optionnelle.
⌂ Retour au sommaire |
Suivant ▷