FirebirdSQL logo
 COMMENTSInstructions de procédure SQL (PSQL) 

(DML) - langage de manipulation de données - est le sous-ensemble de SQL utilisé par les applications et les modules procéduraux pour extraire et modifier des données. L’extraction, qui permet de lire des données brutes ou manipulées, est réalisée à l’aide de l’instruction SELECT. INSERT permet d’ajouter de nouvelles données et DELETE d’effacer les données qui ne sont plus nécessaires. UPDATE, MERGE et UPDATE OR INSERT modifient les données de différentes manières.

SELECT

affectation

Echantillonnage des données

Disponible en

DSQL, ESQL, PSQL

Syntaxe
[WITH [RECURSIVE] <cte> [, <cte> ...]]
SELECT
  [FIRST <limit-expression>] [SKIP <limit-expression>]
  [DISTINCT | ALL] <select-list>
FROM <table-reference> [, <table-reference> ...]
[WHERE <search-condition>]
[GROUP BY <value-expression> [, <value-expression> ...]]
[HAVING <aggregate-condition>]
[WINDOW <window-definition> [, <window-definition> ...]]
[PLAN <plan-expression>]
[UNION [DISTINCT | ALL] <query-term>]
[ORDER BY <sort-specification> [, <sort-specification> ...]]
[   { ROWS <value-expression> [TO <value-expression>] }
  | { [OFFSET <offset-fetch-expression> {ROW | ROWS}]
      [FETCH {FIRST | NEXT} [<offset-fetch-expression>] {ROW | ROWS} ONLY] }

]
[FOR UPDATE [OF <column-name-list>]]
[WITH LOCK [SKIP LOCKED]]
[OPTIMIZE FOR {FIRST | ALL} ROWS]
[INTO <variable-list>]

<variables-list> ::= varname varname ...]
Description

L’instruction SELECT extrait des données de la base de données et les transmet à l’application ou à la commande SQL appelante. Les données sont renvoyées sous la forme d’un ensemble de lignes (qui peuvent être 0 ou plus), chaque ligne contenant une ou plusieurs colonnes ou champs. L’ensemble des lignes renvoyées est le jeu de données de la commande résultante.

Les parties suivantes de la commande SELECT sont obligatoires :

  • Le mot-clé SELECT suivi d’une liste de champs. Cette partie précise ce qui est demandé à la base de données ;

  • Le mot-clé FROM suivi de l’objet échantillonné (par exemple une table). Cette partie indique au serveur où chercher les données demandées.

Dans sa forme la plus simple, SELECT récupère un certain nombre de champs d’une seule table, par ex :

SELECT id, name, address
FROM contacts

Ou, afin d’extraire tous les champs d’une table :

SELECT * FROM contacts

En pratique, la commande SELECT est généralement exécutée avec l’expression WHERE, qui contraint le jeu de données retourné. De même, le jeu de données résultant est généralement trié avec l’expression ORDER BY, puis contraint (afin d’organiser la navigation des données paginées) par les expressions FIRST …​ SKIP', `OFFSET …​ FETCH ou ROWS.

Une liste de champs peut contenir différents types d’expressions au lieu de noms de champs et la source n’est pas nécessairement une table ou une vue, elle peut aussi être une table dérivée, une expression de table générique (CTE) ou une procédure stockée sélective.

Plusieurs sources de données peuvent être jointes à l’aide de la clause JOIN, et plusieurs ensembles de données résultants peuvent être combinés à l’aide de la clause UNION.

Dans les sections suivantes, nous allons examiner en détail toutes les expressions de la commande SELECT et leur utilisation.