Modifier des instructions SQL pour affiner les résultats d’une requête

Modifier des instructions SQL pour affiner les résultats d’une requête

Si vos requêtes ne fonctionnent pas assez, l’ajout d’instructions SQL de base peut vous aider à concentrer vos résultats. Examinons quelques types d’instructions de SQL ainsi que les clauses ou parties que vous pourriez modifier pour obtenir les résultats voulus.

Remarque :  Cet article ne s’applique pas aux applications Access Web App (type de base de données que vous créez dans Access et publiez en ligne).

Contenu de cet article

Créer une instruction Sélection

Une SQL instruction sélection a deux à trois clauses. La clause SELECT indique à la base de données où rechercher les données et lui demande de renvoyer un résultat spécifique.

Remarque :  Les instructions SELECT se terminent toujours par un point-virgule (;) Soit à la fin de la dernière clause, soit sur une ligne toute seule à la fin de l SQL instruction.

L’instruction de sélection suivante demande à Access d’obtenir des informations à partir des colonnes Adresse de messagerie et Société, de la table Contacts, spécifiquement où il trouve « Seattle » dans la colonne Ville.

Onglet d’objet SQL montrant une instruction SELECT

La requête ci-dessus possède trois clauses SELECT, FROM et WHERE.

1. La clause SELECT répertorie les colonnes qui contiennent les données que vous voulez utiliser et possède un opérateur (SELECT) suivi de deux identificateurs (Adresse de messagerie et Société). Si un identificateur possède des espaces ou des caractères spéciaux (par exemple, « Adresse de messagerie »), insérablez l’identificateur entre crochets.

2. La clause FROM identifie la table source. Dans cet exemple, il a un opérateur (FROM) suivi d’un identificateur (Contacts).

3. La clause WHERE est une clause facultative. L’exemple possède un opérateur (WHERE) suivi d’une expression (City="Seattle »).

Pour plus d’informations sur les requêtes Sélection, voir Créer une requête Sélection simple.

Voici une liste des clauses d’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

Chaque SQL clause est faite de termes. Voici une liste de certains termes SQL courants.

SQL terme

Définition

Exemple

identificateur

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

[Adresse de messagerie] et société

opérateur

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

AS

constante

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

42

expression

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

>= Produits. [Prix unitaire]

Haut de page

Personnalisation de la clause SELECT

Personnaliser

Exemple

Pour voir uniquement les valeurs distinctes.

Utilisez le mot clé DISTINCT dans votre clause SELECT.

Par exemple, si vos clients viennent de plusieurs succursales différentes et que certains ont le même numéro de téléphone et que vous ne souhaitez voir qu’un numéro de téléphone répertorié une seule fois, votre clause SELECT se pourrait comme ceci :

SELECT DISTINCT [txtCustomerPhone] 

Pour modifier l’affichage d’un identificateur dans le mode Feuille de données afin d’améliorer la lisibilité.

Utilisez l’opérateur AS (mot clé qui représente une action ou modifie une action) avec un alias de champ dans votre clause SELECT. Un alias de champ est un nom que vous attribuez à un champ pour faciliter la lecture des résultats.

SELECT [txtCustPhone] AS [Customer Phone]

Personnalisation de la clause FROM

Personnaliser

Exemple

Vous pouvez utiliser un alias de table ou un autre nom que vous attribuez à une table dans une instruction sélectionnée. Un alias de table est utile si le nom de la table est long, en particulier si plusieurs champs ont le même nom dans différentes tables.

Pour sélectionner les données de deux champs, tous deux nommés ID, l’un issu de la table tblCustomer et l’autre de la table tblOrder :

SELECT [tblCustomer].[ID], 
[tblOrder].[ID]

Utilisez l’opérateur AS pour définir les alias de table dans la clause FROM :

FROM [tblCustomer] AS [C], 
[tblOrder] AS [O]

Vous pouvez ensuite utiliser ces alias de table dans votre clause SELECT, comme suit :

SELECT [C].[ID], 
[O].[ID]

Utilisez des jointeurs pour combiner des paires d’enregistrements provenant de deux sources de données en un seul résultat ou pour spécifier s’il faut inclure des enregistrements d’une table s’il n’y a pas d’enregistrement correspondant dans la table liée.

Joignez les tables de sorte que la requête combine les éléments des tables et exclue les éléments lorsqu’il n’existe aucun enregistrement correspondant dans l’autre table.

Voici à quoi ressemble la clause FROM :

FROM [tblCustomer] 
INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

À propos de l’utilisation de jointeurs

Il existe deux types de jointeurs : interne et externe. Les jointries internes sont plus courantes dans les requêtes. Lorsque vous exécutez une requête avec une jointie interne, le résultat affiche uniquement les éléments pour lequel il existe une valeur commune dans les deux tables jointes.

Les jointeurs externes indiquent s’il faut inclure des données là où il n’existe aucune valeur commune. Les jointeurs externes sont directionnels, ce qui signifie que vous pouvez spécifier d’inclure tous les enregistrements de la première table spécifiée dans la jointe (appelée jointe gauche), ou d’inclure tous les enregistrements de la deuxième table dans la jointisation (appelée jointe droite). Une jointe externe a la syntaxe de SQL suivante :

FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2

Consultez plus d’informations sur l’utilisation des jointilles dans une requête dans les tables et requêtes jointes.

Haut de page

Personnalisation de la clause WHERE

La clause WHERE inclut des critères permettant de limiter le nombre d’éléments retournés dans une requête. Consultez des exemples de critères de requête et leur fonctionnement.

Par exemple, vous pouvez personnaliser la clause WHERE de base en limitant les résultats d’une requête. Supposons que vous vouliez localiser le numéro de téléphone d’un client et ne vous souvenez que de son nom sous le nom de Bagel. Dans cet exemple, les noms sont stockés dans un champ LastName, la syntaxe SQL la syntaxe serait la suivante :

WHERE [LastName]='Bagel'

Utilisez également la clause WHERE pour combiner des sources de données pour des colonnes qui ont des données correspondantes, mais dont les types de données sont différents. Cela s’avérera utile dans la mesure où vous ne pouvez pas créer de jointur entre des champs dont les types de données sont différents. Utilisez un champ en tant que critère pour l’autre champ, avec le mot clé LIKE. Par exemple, si vous voulez utiliser des données d’une table Biens et d’une table Employés, uniquement lorsque le type de bien dans le champ Type de bien de la table Biens a le chiffre 3 dans le champ Quantité de la table Employés, voici à quoi ressemble votre clause WHERE :

WHERE field1 LIKE field2

Important :  Vous ne pouvez pas spécifier de critères pour un champ utilisé avec une fonction d’agrégation dans une clause WHERE. Vous devez utiliser une clause HAVING pour spécifier les critères à appliquer aux champs agrégés.

Haut de page

Personnalisation avec l’opérateur UNION

Utilisez l’opérateur UNION pour afficher une vue combinée des résultats de plusieurs requêtes Sélection similaires. Par exemple, si votre base de données possède une table Produits et une table Services et qu’elle présente trois champs : offre exclusive ou produit ou service, prix, garantie ou garantie. 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 les mêmes. Vous pouvez utiliser une requête Union pour combiner les trois champs des deux tables comme ceci :

SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer
FROM Services;

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. Pour inclure des lignes en double dans les résultats, utilisez l’opérateur ALL.

Remarque :  L’instruction Select doit avoir le même nombre de champs de sortie, dans le même ordre et avec des types de données identiques ou compatibles. Aux fins d’une requête Union, les types de données Nombre et Texte sont compatibles.

Pour plus d’informations sur les requêtes Union, voir Utiliser une requête Union pour afficher un résultat unifié de plusieurs requêtes.

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 ?

×