Table of contents
XML
TOC
Réduire la table des matières
Développer la table des matières

Extraire des enregistrements à l'aide d'instructions SQL dans Access

office 365 dev account|Dernière mise à jour: 04/10/2017
|
1 Contributeur

L'instruction SQL la plus simple et la plus souvent utilisée est l'instruction SELECT. L'instruction SELECT est la plus puissante de toutes les instructions SQL. Elle est couramment appelée requête de sélection. L'instruction SELECT permet d'extraire les données des tables d'une base de données. Les résultats sont généralement renvoyés dans un jeu d'enregistrements (ou lignes) composés d'un nombre variable de champs (ou colonnes). Vous devez utiliser la clause FROM pour désigner la ou les tables de la sélection. La structure de base d'une instruction SELECT est la suivante :

SELECT field list
    FROM table list

Pour sélectionner tous les champs d'une table, utilisez un astérisque (*). Par exemple, l'instruction suivante sélectionne tous les champs et tous les enregistrements de la table Clients.

SELECT *
    FROM tblCustomers

Pour limiter les champs extraits par la requête, utilisez plutôt les noms de champs. Par exemple :

SELECT [Last Name], Phone
    FROM tblCustomers

Pour désigner un nom différent pour un champ dans le jeu de résultats, utilisez le mot clé AS afin de définir un alias pour le champ.

SELECT CustomerID AS [Customer Number]
    FROM tblCustomers

Restreindre le jeu de résultats

Bien souvent, vous n'avez pas besoin d'extraire tous les enregistrements de la table, seulement une partie d'entre eux à l'aide de critères. Pour qualifier une instruction SELECT, vous devez employer une clause WHERE, qui permet d'indiquer exactement les enregistrements à extraire.

SELECT *
    FROM tblInvoices
    WHERE CustomerID = 1

Partie CustomerID = 1 de la clause WHERE. Une clause WHERE peut contenir jusqu'à 40 expressions de ce type, qu'il est possible de joindre à l'aide d'opérateurs logiques And ou Or. L'utilisation de plusieurs expressions permet de filtrer davantage les enregistrements se trouvant parmi les résultats.

SELECT *
    FROM tblInvoices
    WHERE CustomerID = 1 AND InvoiceDate > #01/01/98#

La chaîne de date est placée entre des signes dièse (#). Si vous utilisez une chaîne normale dans une expression, vous devez entourer la chaîne de guillemets simples ('). Par exemple :

SELECT *
    FROM tblCustomers
    WHERE [Last Name] = 'White'

Si vous ne connaissez pas la valeur de chaîne entière, vous pouvez utiliser des caractères génériques avec l'opérateur Like.

SELECT *
    FROM tblCustomers
    WHERE [Last Name] LIKE 'W*'

Vous pouvez choisir parmi de nombreux de caractères génériques. Le tableau suivant répertorie leurs caractéristiques et leur utilisation.

Caractère génériqueDescription
*Zéro, un ou plusieurs caractères
?Tout caractère isolé
#Tout chiffre isolé (0 à 9)
[ listecar ]Tout caractère isolé trouvé dans listecar
[! listecar ]Tout caractère isolé non trouvé dans listecar

Trier le jeu de résultats

Pour définir un ordre de tri particulier sur un ou plusieurs champs du jeu de résultats, utilisez la clause facultative ORDER BY. Les enregistrements peuvent être triés dans l'ordre croissant ( ASC ) ou l'ordre décroissant ( DESC ) ; le premier constitue la valeur par défaut.

Les champs référencés dans la clause ORDER BY ne doivent pas forcément faire partie de la liste des champs de l'instruction SELECT. Le tri peut être appliqué, aux valeurs littérales, numériques et de type date/heure. Placez toujours la clause ORDER BY à la fin de l'instruction SELECT.

SELECT *
    FROM tblCustomers
    ORDER BY [Last Name], [First Name] DESC

Vous pouvez également utiliser les numéros de champ (ou les positions) à la place de noms de champ dans la clause ORDER BY.

SELECT *
    FROM tblCustomers
    ORDER BY 2, 3 DESC
© 2018 Microsoft