Notes et traduction du tutoriel PostgreSQL Tutorial
L'instruction SELECT retourne tous les enregistrements d'une ou plusieurs colonnes d'une table. Pour ne récupérer que les enregistrements vérifiant une condition, on utilise la clause WHERE.
SELECT select_list FROM TABLE_NAME WHERE condition ORDER BY sort_expression;
PostgreSQL évalue la clause WHERE après la clause FROM mais avant les clauses SELECT et ORDER BY.
Pour cette raison, si des alias de colonnes sont définis dans SELECT, il ne sont pas utilisables dans la clause WHERE.
En plus de l'instruction SELECT, la clause WHERE peut être utilisée dans les instructions UPDATE et DELETE pour spécifier les enregistrement à mettre à jour ou supprimer.
Pour établir la condition de la clause WHERE, les opérateurs logiques et de comparaison sont disponibles :
Operator | Description |
---|---|
= | égalité |
> | supérieur à |
< | inférieur à |
>= | supérieur ou égal à |
⇐ | inférieur ou égal à |
<> ou != | différent de |
AND | ET logique |
OR | OU logique |
IN | retourne vrai si la valeur est contenue dans la liste |
BETWEEN | retourne vrai si la valeur est dans l'intervalle |
LIKE | retourne vrai si la valeur correspond au motif |
IS NULL | retourne vrai si la valeur est NULL |
NOT | NON logique |
SELECT last_name, first_name FROM customer WHERE first_name = 'Jamie'; -- Récupérer des enregistrement parmi un ensemble de valeurs possibles SELECT first_name, last_name FROM customer WHERE first_name IN ('Ann', 'Anne', 'Annie'); -- Récupérer les enregistrement correspondant à un motif SELECT first_name, last_name FROM customer WHERE first_name LIKE 'Ann%'; -- Récupérer les enregistrements dont une valeur est dans un intervalle SELECT first_name, LENGTH(first_name) AS name_length FROM customer WHERE first_name LIKE 'A%' AND LENGTH(first_name) BETWEEN 3 AND 5 ORDER BY name_length;