Access SQL : concepts de base, vocabulaire et syntaxe

Access SQL : concepts de base, vocabulaire et syntaxe

Lorsque vous souhaitez récupérer des données à partir d’une base de données, vous demandez les données à l’aide d langage SQL ou SQL. SQL est une langue d’ordinateur qui ressemble beaucoup à l’anglais, mais que les programmes de base de données comprennent. Chaque requête que vous exécutez utilise SQL en arrière-plan.

Le fait de comprendre le fonctionnement d’SQL peut vous aider à créer de meilleures requêtes, et vous permet de comprendre plus facilement comment résoudre une requête qui ne retourne pas les résultats voulus.

Cet article fait partie d’une série d’articles à propos d’Access SQL. Cet article décrit l’utilisation de base des SQL données, et s’appuie sur des exemples pour illustrer SQL syntaxe.

Contenu de cet article

Qu’est-ce SQL ?

SQL est une langue d’ordinateur pour l’utilisation des ensembles de faits et des relations entre eux. Les programmes de base de données relationnelles, tels Microsoft Office Access, utilisent SQL pour utiliser des données. Contrairement à de nombreuses langues de l’SQL, il n’est pas difficile à lire et à comprendre, même pour un novice. Comme beaucoup de langues d’ordinateur, SQL est une norme internationale reconnue par les organismes de normes tels que les normes ISO et ANSI.

Vous pouvez SQL données pour décrire des ensembles de données qui peuvent vous aider à répondre à des questions. Lorsque vous utilisez SQL, vous devez utiliser la syntaxe correcte. La syntaxe est l’ensemble des règles par lesquelles les éléments d’une langue sont correctement combinés. SQL syntaxe est basée sur la syntaxe anglaise et utilise bon nombre des mêmes éléments que la syntaxe Visual Basic pour Applications (VBA).

Par exemple, une instruction SQL simple qui extrait une liste de noms pour les contacts dont le prénom est Marie peut ressembler à ceci :

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Remarque : SQL est non seulement utilisé pour manipuler des données, mais également pour créer et modifier la conception d’objets de base de données, tels que des tables. La partie du SQL utilisée pour créer et modifier des objets de base de données est appelée DDL (Data Definition Language). Cette rubrique ne couvre pas DDL. Pour plus d’informations, voir l’article Créer ou modifier des tables ou index à l’aide d’une requête Définition des données.

Instructions SELECT

Pour décrire un ensemble de données à l’aide de SQL données, vous devez écrire une instruction SELECT. Une instruction SELECT contient une description complète d’un jeu de données que vous voulez obtenir à partir d’une base de données. Cela se produit dans les situations suivantes :

  • Les tables qui contiennent les données.

  • Relation entre les données de différentes sources.

  • Les champs ou calculs qui produisent les données.

  • Critères que les données doivent respecter pour être inclus.

  • Si et comment trier les résultats.

SQL clauses de confidentialité

Comme une phrase, une instruction SQL a des clauses. Chaque clause effectue une fonction pour l’instruction SQL’instruction. Certaines clauses sont requises dans une instruction SELECT. Le tableau suivant répertorie les clauses de SQL courantes.

SQL clause

Fonction

Obligatoire

SELECT

Répertorie les champs qui contiennent des données qui vous intéressent.

Oui

FROM

Répertorie les tables qui contiennent les champs répertoriés dans la clause SELECT.

Oui

WHERE

Spécifie les critères de champ que chaque enregistrement doit respecter pour être inclus dans les résultats.

Non

ORDER BY

Indique comment trier les résultats.

Non

GROUP BY

Dans une instruction SQL contenant des fonctions d’agrégation, répertorie les champs qui ne sont pas synthétiser dans la clause SELECT.

Uniquement en cas de tels champs

HAVING

Dans une SQL qui contient des fonctions d’agrégation, spécifie les conditions qui s’appliquent aux champs synthétiser dans l’instruction SELECT.

Non

SQL conditions générales

Chaque SQL clause est composée de termes, comparable aux différentes parties de discours. Le tableau suivant répertorie les types SQL termes.

SQL terme

Partie comparable de la parole

Définition

Exemple

identificateur

nom

Nom que vous utilisez pour identifier un objet de base de données, tel que le nom d’un champ.

Clients. [Numéro de téléphone]

opérateur

verbe ou adverbe

Mot clé représentant une action ou qui modifie une action.

AS

constante

nom

Représente une valeur qui ne change pas, telle qu’un nombre ou une valeur NULL.

42

expression

adjectif

Combinaison d’identificateurs, d’opérateurs, de constantes et de fonctions dont le valeur est unique.

>= Produits. [Prix unitaire]

Haut de page

Clauses SQL base : SELECT, FROM et WHERE

Une SQL de compte prend la forme générale suivante :

SELECT field_1
FROM table_1
WHERE criterion_1
;

Remarques : 

  • Access ignore les coupures de ligne dans SQL instruction. Toutefois, envisagez d’utiliser une ligne pour chaque clause afin d’améliorer la lisibilité de vos instructions SQL pour vous-même et pour les autres.

  • Chaque instruction SELECT se termine par un point-virgule (;). Le point-virgule peut apparaître à la fin de la dernière clause ou sur une ligne toute seule à la fin de l SQL instruction.

Exemple dans Access

L’illustration suivante illustre ce à quoi peut ressembler SQL instruction de requête Sélection simple dans Access :

Onglet d’objet SQL montrant une instruction SELECT

1. Clause SELECT

2. Clause FROM

3. Clause WHERE

Dans cet exemple, l’instruction SQL indique « Sélectionnez les données stockées dans les champs Adresse de messagerie et Société dans la table Contacts, en particulier les enregistrements dans lesquels la valeur du champ Ville est Seattle ».

Examinons l’exemple, une clause à la fois, pour voir comment fonctionne SQL syntaxe.

Clause SELECT

SELECT [E-mail Address], Company

Il s’agit de la clause SELECT. Il se compose d’un opérateur (SELECT) suivi de deux identificateurs ([Adresse de messagerie] et Société.

Si un identificateur contient des espaces ou des caractères spéciaux (par exemple, « Adresse de messagerie »), il doit être entre crochets.

Une clause SELECT n’a pas besoin d’indiquer quelles tables contiennent les champs, et elle ne peut pas spécifier les conditions qui doivent être remplies par les données à inclure.

La clause SELECT apparaît toujours en face de la clause FROM dans une instruction SELECT.

Clause FROM

FROM Contacts

Il s’agit de la clause FROM. Il se compose d’un opérateur (FROM) suivi d’un identificateur (Contacts).

Une clause FROM ne liste pas les champs à sélectionner.

Clause WHERE

WHERE City="Seattle"

Il s’agit de la clause WHERE. Il se compose d’un opérateur (WHERE) suivi d’une expression (City="Seattle »).

Remarque : Contrairement aux clauses SELECT et FROM, la clause WHERE n’est pas un élément obligatoire d’une instruction SELECT.

Vous pouvez effectuer bon nombre des actions que SQL vous permet d’effectuer à l’aide des clauses SELECT, FROM et WHERE. Des informations supplémentaires sur la manière dont vous utilisez ces clauses sont présentées dans les articles supplémentaires suivants :

Haut de page

Tri des résultats : ORDER BY

Comme Microsoft Excel, Access vous permet de trier les résultats d’une requête dans une feuille de données. Vous pouvez également spécifier dans la requête la manière dont vous voulez trier les résultats lors de l’utilisation de la requête, à l’aide d’une clause ORDER BY. Si vous utilisez une clause ORDER BY, il s’agit de la dernière clause de l SQL instruction.

Une clause ORDER BY contient la liste des champs que vous souhaitez utiliser pour le tri, dans l’ordre dans celui où vous voulez appliquer les opérations de tri.

Par exemple, supposons que vous vouliez d’abord trier vos résultats sur la valeur du champ Société dans l’ordre décroit et, s’il existe des enregistrements de la même valeur pour la société, triés en suivant les valeurs du champ Adresse de messagerie dans l’ordre croissant. Votre clause ORDER BY se rapproche de ce qui suit :

ORDER BY Company DESC, [E-mail Address]

Remarque : Par défaut, Access trie les valeurs dans l’ordre croissant (A-Z, du plus petit au plus grand). Utilisez plutôt le mot clé DESC pour trier les valeurs dans l’ordre décroit.

Pour plus d’informations sur la clause ORDER BY, voir la rubrique ORDER BY Clause.

Haut de page

Gestion des données résumées : GROUP BY et HAVING

Vous pouvez travailler avec des données synthétiser, telles que le total des ventes d’un mois ou les articles les plus chers d’un inventaire. Pour ce faire, vous devez appliquer une fonction d’agrégation champ dans votre clause SELECT. Par exemple, si vous voulez que votre requête affiche le nombre d’adresses de messagerie répertoriées pour chaque société, votre clause SELECT peut se présenter comme suit :

SELECT COUNT([E-mail Address]), Company

Les fonctions d’agrégation que vous pouvez utiliser dépendent du type de données qui se trouve dans le champ ou l’expression que vous voulez utiliser. Pour plus d’informations sur les fonctions d’agrégation disponibles, voir l’article SQL fonctions d’agrégation.

Spécification des champs non utilisés dans une fonction d’agrégation : clause GROUP BY

Lorsque vous utilisez des fonctions d’agrégation, vous devez généralement également créer une clause GROUP BY. Une clause GROUP BY répertorie tous les champs pour lesquels vous n’appliquez pas de fonction d’agrégation. Si vous appliquez des fonctions d’agrégation à tous les champs d’une requête, vous n’avez pas à créer la clause GROUP BY.

Une clause GROUP BY suit immédiatement la clause WHERE ou FROM s’il n’existe aucune clause WHERE. Une clause GROUP BY répertorie les champs tels qu’ils apparaissent dans la clause SELECT.

Par exemple, en poursuivant avec l’exemple précédent, si votre clause SELECT applique une fonction d’agrégation à [Adresse de messagerie] mais pas à la société, votre clause GROUP BY se rapproche de ce qui suit :

GROUP BY Company

Pour plus d’informations sur la clause GROUP BY, voir la rubrique GROUP BY, clause.

Limitation des valeurs agrégées à l’aide de critères de groupe : clause HAVING

Si vous souhaitez utiliser des critères pour limiter vos résultats, mais que le champ à appliquer est utilisé dans une fonction d’agrégation, vous ne pouvez pas utiliser de clause WHERE. À la place, vous devez utiliser une clause HAVING. Une clause HAVING fonctionne comme une clause WHERE, mais elle est utilisée pour les données agrégées.

Par exemple, supposons que vous utilisez la fonction MOYENNE (qui calcule une valeur moyenne) avec le premier champ de votre clause SELECT :

SELECT COUNT([E-mail Address]), Company

Si vous souhaitez que la requête limite les résultats en fonction de la valeur de cette fonction COUNT, vous ne pouvez pas utiliser de critère pour ce champ dans la clause WHERE. Au lieu de cela, vous placez les critères dans une clause HAVING. Par exemple, si vous souhaitez que la requête uniquement retourne des lignes si plusieurs adresses de courrier sont associées à la société, la clause HAVING peut se ressembler à ceci :

HAVING COUNT([E-mail Address])>1

Remarque : Une requête peut avoir une clause WHERE et une clause HAVING. Les critères pour les champs qui ne sont pas utilisés dans une fonction d’agrégation entrent dans la clause WHERE, et les critères pour les champs utilisés avec des fonctions d’agrégation entrent dans la clause HAVING.

Pour plus d’informations sur la clause HAVING, voir la rubrique Clause HAVING.

Haut de page

Combinaison des résultats d’une requête : UNION

Lorsque vous souhaitez examiner toutes les données renvoyées par plusieurs requêtes Sélection similaires ensemble, sous la mesure d’un ensemble combiné, vous utilisez l’opérateur UNION.

L’opérateur UNION vous permet de combiner deux instructions SELECT en une seule. Les instructions SELECT que vous combinez doivent avoir le même nombre de champs de sortie, dans le même ordre et avec des types de données identiques ou compatibles. Lorsque vous exécutez la requête, les données de chaque ensemble de champs correspondants sont combinées dans un seul champ de sortie, de sorte que le résultat de la requête ait le même nombre de champs que chacune des instructions sélectionnées.

Remarque : Aux fins d’une requête Union, les types de données Nombre et Texte sont compatibles.

Lorsque vous utilisez l’opérateur UNION, vous pouvez également spécifier si les résultats de la requête doivent inclure des lignes en double s’il en existe, à l’aide du mot clé ALL.

La syntaxe SQL de base d’une requête Union qui combine deux instructions SELECT est la suivante :

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Par exemple, supposons que vous avez une table nommée Produits et une autre table nommée Services. Les deux tables ont des champs qui contiennent le nom du produit ou service, le prix, la garantie ou la disponibilité, et qui contiennent le fait que vous proposez le produit ou le service exclusivement. Bien que la table Produits stocke des informations de garantie et que la table Services stocke des informations de garantie, les informations de base sont identiques (qu’un produit ou service particulier inclut une promesse de qualité). Vous pouvez utiliser une requête Union, telle que la suivante, pour combiner les quatre champs des deux tables :

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

Pour plus d’informations sur la combinaison des instructions SELECT à l’aide de l’opérateur UNION, voir Combiner les résultats de plusieurs requêtes Sélection à l’aide d’une requête Union.

Haut de page

Besoin d’aide ?

Développez vos compétences dans Office
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

×