ACCESS 07/ Chap 11 - REQUETE DE SELECTION EN MODE SQL
Qu'elle soit créée avec un Assistant ou en mode Création, toute requête est générée en code SQL. C'est un langage de création de requête qui est puissant, tout en étant simple.
Fenêtre de saisie d'une requête en SQL
Pour accéder à la fenêtre dans laquelle on tape une requête en mode SQL :
- A l'onglet Créer (situé à droite de l'onglet Accueil), dans le groupe Autre, activez le bouton « Création de requête ». Fermez la fenêtre « Afficher la table ».
- Puis : soit dans le groupe Résultats, soit dans la barre d'état, cliquez sur le bouton SQL .
INDICATIONS PRELIMINAIRES A LA CREATION D'UNE REQUETE
Taille des caractères et police du texte de la requête
Lors de la saisie d'une requête, si la taille des caractères vous semble trop petite ou si vous souhaitez changer de police, vous pouvez modifier ces paramètres :
Activez le bouton Office (en haut, à gauche de l'écran) > Options Access. Cliquez sur « Concepteurs d'objets ». Dans la zone titrée « Création de requête », vous pouvez changer la taille des caractères ainsi que la police des textes de requêtes. Validez.
Les nouveaux paramètres seront pris en compte lors des prochaines requêtes.
Casse, espaces et paragraphes
- Casse : SQL ne distingue pas les lettres minuscules des lettres majuscules.
- Espaces et paragraphes : on peut insérer à volonté des espaces et des sauts de paragraphes (en appuyant sur la touche Entrée) pour rendre plus lisible le texte de la requête.
Le point-virgule final ;
A la fin d'une requête, il est nécessaire de taper un point-virgule, pour signaler la fin de la saisie du texte de la requête.
1. CLAUSES SELECT ET FROM
Une requête comporte, au minimum, les deux clauses, select et from.
Exemple d'une requête portant sur une table nommée EXPERT :
La table EXPERT est :
Effectuons une requête permettant d'afficher les noms et numéros de téléphone des experts :
- select NomExp, TelExp
- from EXPERT ;
Remarque : nous écrivons des majuscules, pour que la requête soit plus lisible, mais SQL ne reconnaissant pas la casse (sauf celles des chaînes saisies entre guillemets dans une clause select), on peut n'utiliser que des lettres minuscules.
Saisissez, puis exécutez cette requête. Pour retourner ensuite à l'affichage en mode SQL : clic droit sur l'onglet portant le nom de la requête > Mode SQL.
Pour renommer la requête, fermez d'abord la requête (clic droit sur l'onglet > Fermer), puis faites un clic droit sur son nom dans le Volet de navigation > Renommer. Tapez le nouveau nom et validez.
Fonctionnement d'une requête avec les seules clauses select et from
Expliquons le fonctionnement de l'exécution d'une requête de la forme select
from
à partir de l'exemple ci-dessus.
Bien que la requête commence par la clause select, c'est d'abord la clause from qui est traitée :
- from EXPERT : la table EXPERT est prise en compte dans son entier, avec tous ses champs et tous ses enregistrements.
A noter qu'on peut réaliser une requête tant à partir de tables qu'à partir de résultats de requêtes.
- select NomExp, TelExp : ces deux champs sont sélectionnés. Ils seront les seuls à être affichés dans le résultat.
- Le résultat est affiché en mode Feuille de données. Il est le suivant :
Nom d'un champ comportant un espace ou un caractère spécial - Champ dont l'orthographe n'est pas reconnue
Si le nom d'une table ou d'un champ comporte un espace ou un caractère spécial, on doit l'encadrer de crochets.
Exemples : [nom de la table] ou [nom-champ].
Si le nom d'un champ n'est pas encadré de crochets, alors qu'il devrait l'être, ou bien si son orthographe est incorrecte (ou les deux
), SQL ne le reconnaît pas, et le considère comme un paramètre (cf. § 6 Requête paramétrée).
Une fenêtre s'affiche, sollicitant la saisie d'une valeur de paramètre. Annulez. Placez des crochets, ou corrigez l'orthographe du nom.
Attribution d'une légende à un champ
Le concepteur de la base donne souvent aux champs des noms abrégés, peu compréhensibles pour l'utilisateur de la base.
Sans modifier son nom, on peut donner au champ une autre appellation plus explicite, une « légende », qui le désignera dans le résultat de la requête.
On précède la légende du mot as.
Une légende ainsi définie, n'existe qu'au sein de la requête.
Exemple
Reprenons la requête précédente, en donnant des légendes aux deux champs.
- select NomExp as [Nom de l'expert], TelExp as Téléphone
- from EXPERT ;
Comportant des espaces, la légende Nom de l'expert a été placée entre crochets.
Saisissez, puis exécutez la requête. Les champs sont désignés par leur légende.
Affichez la table Expert en mode Création. Les noms des champs restent inchangés.
Ordre d'affichage des champs
Dans le résultat, les champs sont affichés dans l'ordre indiqué dans la requête.
Testez la nouvelle requête dans laquelle on a inversé l'ordre des champs :
- select TelExp, NomExp
- from EXPERT ;
Dans la table résultat, les colonnes des champs TelExp et NomExp sont inversées, par rapport au résultat de la requête précédente.
Sélection de tous les champs d'une table
Il existe deux méthodes pour afficher tous les champs d'une table :
- Soit en énumérant tous les champs de la table. On peut alors choisir l'ordre des champs qui seront affichés dans le résultat.
- Soit en utilisant l'astérisque *. Exemple : select * from EXPERT ;
Dans ce cas, les champs sont affichés dans l'ordre où ils sont dans la table en mode Création.
Opérateur « distinct »
(
)