Catégories :

Syntaxe de requête

SELECT

SELECT est à la fois une instruction et une clause dans une instruction SELECT :

  • En tant qu’instruction, l’instruction SELECT est l’instruction SQL la plus couramment exécutée ; elle interroge la base de données et extrait un ensemble de lignes.

  • Comme clause, SELECT définit l’ensemble des colonnes retournées par une requête.

Syntaxe

[ ... ]
SELECT [ { ALL | DISTINCT } ]
    {
          [{<object_name>|<alias>}.]*
        | [{<object_name>|<alias>}.]<col_name>
        | [{<object_name>|<alias>}.]$<col_position>
        | <expr>
        [ [ AS ] <col_alias> ]
    }
    [ , ... ]
[ ... ]

Pour plus d’informations sur SELECT en tant qu’instruction, et sur les autres clauses de cette instruction, voir Syntaxe de requête.

Paramètres

ALL | DISTINCT

Indique si l’élimination des doublons doit être effectuée sur le jeu de résultats :

  • ALL inclut toutes les valeurs dans le jeu de résultats.

  • DISTINCT élimine les valeurs en double de l’ensemble de résultats.

Par défaut : ALL

*

L’astérisque est un raccourci pour indiquer que la sortie doit inclure toutes les colonnes de l’objet spécifié, ou toutes les colonnes de tous les objets si * n’est pas qualifié avec un nom ou un alias d’objet.

nom_objet ou . alias

Indique l’identificateur d’objet ou l’alias d’objet tel que défini dans la clause FROM.

nom_colonne

Spécifie l’identificateur de colonne tel que défini dans la clause FROM.

$emplacement_colonne

Spécifie la position de la colonne (basée sur 1) telle que définie dans la clause FROM. Si une colonne est référencée à partir d’une table, ce nombre ne peut pas dépasser le nombre maximum de colonnes dans la table.

expr

Spécifie une expression, telle qu’une expression mathématique, qui évalue à une valeur spécifique pour une ligne donnée.

[ AS ] alias_colonne

Spécifie l’alias de colonne attribué à l’expression de sortie. Il est utilisé comme nom d’affichage dans une liste SELECT de niveau supérieur et comme nom de colonne dans une vue en ligne.

Notes sur l’utilisation

  • Les alias et identificateurs sont insensibles à la casse par défaut. Pour préserver la casse, placez les lettres entre guillemets (").

  • Sans clause ORDER BY , les résultats renvoyés par SELECT sont un ensemble non ordonné. L’exécution répétée de la même requête dans les mêmes tables peut entraîner un ordre de sortie différent à chaque fois. Si l’ordre compte, utilisez la clause ORDER BY.

  • SELECT peut être utilisé non seulement comme une instruction indépendante, mais aussi comme faisant partie d’autres instructions, par exemple INSERT INTO ... SELECT ...;. SELECT peut également être utilisé dans une sous-requête dans une instruction.

Exemples

Voici quelques exemples simples.

De nombreux exemples supplémentaires sont inclus dans d’autres parties de la documentation, y compris la description détaillée de Syntaxe de requête.

Cet exemple montre comment rechercher le nom de famille d’un employé si vous connaissez son ID.

SELECT last_name FROM employee_table WHERE employee_ID = 101;

Cet exemple énumère chaque employé et le nom du service dans lequel il travaille. Les résultats sont classés dans l’ordre par nom de service, et au sein de chaque service, les employés sont classés dans l’ordre alphabétique. Cette requête utilise un JOIN pour relier les informations d’une table à celles d’une autre table.

SELECT department_name, last_name, first_name
  FROM employee_table INNER JOIN department_table
    ON employee_table.department_ID = department_table.department_ID
  ORDER BY department_name, last_name, first_name;

Cet exemple montre que les colonnes de sortie n’ont pas besoin d’être prises directement dans les tables de la clause FROM ; les colonnes de sortie peuvent être des expressions générales. Cet exemple montre également comment utiliser un alias de colonne pour que la sortie ait un nom de colonne significatif :

-- Assuming that the radius of the circle is 2.0.
SELECT pi() * 2.0 * 2.0 AS area_of_circle;
-- or
SELECT pi() * POW(2.0, 2) AS area_of_circle;