Sei sulla pagina 1di 6

Module

Requêtes et
04 langage SQL

1) Les commandes SQL...............................................................................................58

2) Commande SELECT.................................................................................................59

3) Les Clauses .............................................................................................................60


3.1) Clause FROM.......................................................................................................60
3.2) Clause WHERE ....................................................................................................61
3.3) Clause ORDER BY................................................................................................61

4) Fin d’une déclaration..............................................................................................61

5) Autres commandes SQL..........................................................................................61


Requêtes et langage SQL 58

1) Les commandes SQL


Lors de l’utilisation de la grille de création d’une requête, Access convertit ce que vous faites
graphiquement en déclarations d’un langage de requêtes structurées, nommé SQL (Structured
Query Language). Dans la pratique, Access exécute cette déclaration SQL à l’exécution de la
requête. De nombreux SGBD relationnels et objets utilisent SQL comme langage de base dans les
requêtes et pour la mise à jour des tables. Il s’agit d’un langage simple à apprendre et à utiliser.

Dans un premier temps, pour approcher SQL, il est intéressant de prendre des requêtes construites
avec la grille de création et d’en examiner le langage SQL. Pour ce faire, sélectionnez une requête
et choisissez d’en modifier la structure. Vous passez en mode création. Changez de mode pour le
mode SQL. Examinez les commandes qui ont donné lieu à la requête. SQL est un langage de
programmation avec quelques règles et commandes de base.

Figure 4-1
Afficher une requête
en mode SQL

Tableau 4-1 : Les commandes SQL

Clause / Commande Interprétation

Une instruction SQL est considérée comme complète lorsqu’elle se


; termine par un point-virgule (;). Dans l’écran SQL, une instruction peut
s’écrire sur plusieurs lignes.

Mot clé initialisant une déclaration SQL (obligatoire). La commande


SELECT permet de choisir le champ pour extraire des données des
tables, alors que la clause FROM permet d’indiquer la ou les tables qui
sont interrogées.
SELECT […] FROM […]
SELECT [Champ] FROM [Table];
SELECT Ville FROM [T Clients];
Cette requête retournerait, pour chaque enregistrement de la table
Clients, le nom de la ville correspondante.

Lorsque vous désirez utiliser plusieurs champs, il doivent être listés à la


SELECT […] ,[…]
suite les uns des autres, séparés par une virgule. Le champ inscrit entre
FROM […]
crochets signifie qu’il comporte plusieurs mots séparés par un espace.

La clause WHERE permet de préciser des conditions de recherche ou


des critères. Lorsque celles-ci sont satisfaites, des enregistrements
WHERE
spécifiques seront affichés aux résultats. Cette clause est facultative.
C’est l’équivalent de la ligne Critères de la grille de requête Access.
59 Module 04

Tableau 4-1 : Les commandes SQL

Clause / Commande Interprétation

La clause ORDER BY permet de trier les résultats d’une requête sur les
ORDER BY champs spécifiés. Cette clause est facultative. C’est l’équivalent de la
ligne Tri de la grille de requête Access.

2) Commande SELECT
La commande SELECT est la première commande trouvée pour deux types de requêtes : les
requêtes sélection et les requêtes création. Elle définit ou sélectionne les champs qui devront
apparaître dans la feuille de réponses. À la suite de cette commande doivent se trouver les champs
que vous souhaitez afficher, leurs noms étant séparés par une virgule. La syntaxe est donc :

SELECT Champ1, Champ2, Champ3, …

Si un champ contient deux mots séparés par un espace, il faut absolument inscrire le nom du
champ entre crochets. Si les champs appartiennent à plusieurs tables, il est préférable de donner le
nom de la table avant le champ, séparé par un point. La syntaxe sera alors :

SELECT Table1.Champ1, Table2.Champ1, Table1.Champ2, … ou


SELECT [Table1].[Champ1], [Champ2], [Table2].[Champ1], …

Bien que les noms des tables ne soient pas obligatoires si les champs ne sont pas dupliqués, les
mentionner reste une excellente habitude. Vous pouvez utiliser le caractère générique * pour
indiquer que tous les champs doivent être sélectionnés. Si plusieurs tables sont impliquées, faites
précéder l’astérisque du nom de la table suivi d’un point.

SELECT Table1.*

Figure 4-2
Utilisation de la
commande SELECT

Tableau 4-2 : Attributs de la commande SELECT

Attribut Interprétation

Est l’attribut par défaut. Sont sélectionnés tous les enregistrements remplissant
ALL
les conditions de l’instruction SQL.
Requêtes et langage SQL 60

Tableau 4-2 : Attributs de la commande SELECT

Attribut Interprétation

Omet tous les enregistrements pour lesquels les champs sélectionnés


contiennent des données en double. Ainsi, pour être incluses dans les résultats
de la requête, les valeurs de chaque champ répertorié dans l’instruction
DISTINCT SELECT doivent être uniques. La clause SELECT DISTINCT élimine tout
doublon sur la base des champs sélectionnés.

SELECT DISTINCT table.champ

Est un attribut propre à Access. Il ressemble à DISTINCT, avec toutefois une


DISTINCTROW différence de taille : la recherche des doublons se fait sur l’ensemble des
champs de la ou des tables, sans se limiter aux champs sélectionnés.

3) Les Clauses
Les clauses sont les attributs d’une commande. Elles permettent de spécifier les critère d’utilisation
de la commande. Dans le cadre de notre étude, seules les clauses relatives à la commande SELECT
seront couvertes.

3.1) Clause FROM


La clause FROM (signifiant depuis) précise la (les) table(s) ou requête(s) contenant les champs
définis dans la commande SELECT. Cette clause suit obligatoirement une commande SELECT,
puisqu’elle indique à SQL où trouver les enregistrements. Si vous travaillez avec une seule table,
cette clause se borne à mentionner son nom :

SELECT NoClient, NomClient, Localité


FROM [T Client]

Si vous travaillez avec plusieurs tables, la clause est suivie d’une expression composée résultant
d’une opération : c’est en effet ici que vous définirez les relations entre tables. Ces jointures seront
utilisées pour afficher les résultats dans la feuille de réponse dynamique.

INNER JOIN … ON
LEFT JOIN … ON
RIGHT JOIN … ON

INNER JOIN désigne une équijointure. La partie ON indique le champ servant de jointure. Dans la
clause FROM, on précisera le nom de la table principale, la partie INNER JOIN désigne la seconde
table.

INNER JOIN Table1 ON Table2.Champ1 = Table1.Champ1

Les termes LEFT JOIN et RIGHT JOIN fonctionnent exactement de la même façon, à ceci près qu’ils
désignent des jointures externes au lieu d’une jointure interne.
61 Module 04

3.2) Clause WHERE


Cette clause n’est utilisée que lorsqu’il est nécessaire de poser une condition : elle indique où
chercher les informations parmi l’ensemble de la table sélectionnée. Contrairement à SELECT et
FROM, cette clause n’est donc pas obligatoire.

La clause WHERE peut être n’importe quelle expression valide, depuis une simple expression
jusqu’à de complexes expressions fondées sur de nombreux critères. Une telle clause, si elle est
présente, doit immédiatement suivre la clause FROM.

SELECT NoClient, NomClient, Localité


FROM [T Client]
WHERE Localité="Montréal"

3.3) Clause ORDER BY


La clause ORDER BY (trier par) sert comme son nom l’indique à spécifier une clé et un ordre de tri.
Elle est généralement suivie par le nom de la table et le nom du champ, séparé par un point.

SELECT NoClient, NomClient, Localité


FROM [T Client]
ORDER BY [T Client].NoClient

4) Fin d’une déclaration


Une déclaration SQL peut comporter jusqu’à 64 000 caractères : il faut donc qu’il existe un moyen
d’indiquer au programme que la déclaration est terminée. Cela s’effectue en plaçant un point-
virgule (;) à la fin de votre déclaration.

Avec Access, si vous oubliez de terminer votre déclaration par un point-virgule, le logiciel va
l’insérer à la fin de l’instruction. De plus, si vous placez par erreur un point-virgule au milieu d’une
déclaration SQL, Access s’en apercevra et essaiera de vous informer de ce qui se passe.

5) Autres commandes SQL

Tableau 4-3 : Autres commandes SQL

Clause / Commande Interprétation

La clause GROUP BY permet de regrouper tous les enregistrements qui


possèdent les mêmes valeurs de champs figurant dans la liste. Cette clause est
GROUP BY
facultative. C’est l’équivalent de la fonction Regroupement dans la grille de
requête Access.
Requêtes et langage SQL 62

Tableau 4-3 : Autres commandes SQL

Clause / Commande Interprétation

La commande INNER JOIN indique que deux tables sont liées par une
INNER JOIN … ON… équijointure. Il faut indiquer sur quel champ il faut faire la liaison entre les
deux tables, c’est le rôle de la clause ON qui spécifiera le nom du champ.

La clause IN permet d’interroger les tables appartenant à une autre base de


données sans avoir à les importer ou à les attacher préalablement, quoique
l’utilisation des tables attachées soit préférable au point de vue efficacité. Cette
clause est facultative.

SELECT [Nom Fournisseur], Ville, Téléphone


IN FROM [T Nouveaux fournisseurs]
IN « c:\dossier\nomdefichier.mdb »;

Cette requête retournerait les enregistrements de la table T Nouveaux


fournisseurs, appartenant à la base de données NomDeFichier.mdb.
Comme celle-ci ne se trouve pas dans le même dossier de travail que l’actuelle
base de données, il faut indiquer le chemin d’accès exact pour la retrouver.

La commande COUNT permet de grouper et compter les enregistrements de


même nature. C’est l’équivalent de la fonction Compte de la grille de requête
de Access.

SELECT [QuantitéStock],
COUNT COUNT ([QuantitéStock]) FROM [T Stock]

Cette requête permet de calculer le nombre d’articles pour une quantité en


stock donnée. Par exemple, 10 articles ont 4 unités en stock, 6 articles ont 8
unités en stock, etc.

La clause AS permet d’identifier une légende à un champ calculé.

SELECT [QuantitéStock] AS Quantité


AS
Cette requête affichera la QuantitéStock, avec Quantité comme en-tête de
ligne.

Cette commande permet de concaténer deux ou plusieurs tables en une seule.


Elle unit des champs distincts pour n’en former qu’un seul.

SELECT NoClient, NomClient FROM [T Client] UNION


UNION SELECT NoFournisseur, NomFournisseur FROM [T Fournisseur];

Cette requête affichera deux champ, l’un contenant les numéros de clients et
de fournisseurs, l’autre les noms de clients et de fournisseurs.

La clause HAVING permet de spécifier quels enregistrements regroupés à l’aide


HAVING de GROUP BY seront affichés. Cette clause est facultative. Il s’agit de
l’équivalent de la clause WHERE, utilisée conjointement avec GROUP BY.

Potrebbero piacerti anche