Exemples de Requêtes en langage SQL

Les noms de tables ou de champs utilisés dans les exemples suivants sont symboliques et ne correspondent pas forcément aux noms réels.

Vue affichant les colonnes Code, Nom et Code Postal pour tous les clients (le champ Code Postal doit être saisi entre crochets car il contient un espace) :

Exemple

SELECT Code, Nom, [Code Postal] FROM Clients

Vue affichant tous les clients qui habitent à Paris, Lyon ou Marseille (la requête examine si le code postal appartient à la liste spécifiée par la commande IN):

Exemple

SELECT Code, Nom, [Code Postal] FROM Clients WHERE [Code Postal] IN (75000,69000,13000)

Vue affichant tous les champs pour tous les clients qui habitent dans le département de la Gironde classés par ville puis par nom (l'étoile après SELECT signifie "tous les champs", la commande LIKE comparera la valeur du code postal avec le masque "33*", signifiant "tout ce qui commence par 33") :

Exemple

SELECT * FROM Clients WHERE [Code Postal] LIKE "33*" ORDER BY Ville, Nom

Vue affichant tous les clients classés par chiffre d'affaires décroissant puis par nom croissant (le mot-clé ASC signifiant "ascendant" est facultatif, car il correspond à l'ordre par défaut):

Exemple

SELECT * FROM Clients ORDER BY Ca DESC, Nom ASC

Vue affichant une seule colonne et une seule ligne contenant le chiffre d'affaire global :

Exemple

SELECT Sum(Clients.CA) FROM Clients

Vue affichant (et calculant) les chiffres d'affaires par département (on suppose ici qu'on ne dispose pas de champ Département directement accessible, le département est donc obtenu en extrayant les deux caractères à gauche du code postal):

Exemple

SELECT Left([Code Postal], 2) AS Dept, Sum(CA) AS CaTot FROM Clients GROUP BY Left([Code Postal], 2) ORDER BY Left([Code Postal], 2)

Vue affichant le nombre de clients par mode de règlement (pour obtenir le nom des modes de règlements, il faut utiliser une table supplémentaire ModeReglement, puisque la table Clients ne contient que le code du mode de règlement attaché, la table Mode de Règlement est liée à la table Clients par la commande INNER JOIN qui précise que le lien existe entre le champ ModeReg de la table Clients et le champ Code de la table ModeReglement) :

Exemple

SELECT ModeReglement.Libelle, COUNT(*) AS Total FROM Client INNER JOIN ModeReglement ON Client.ModeReg = ModeReglement.Code GROUP BY ModeReglement.Libelle

Vue avec paramètre affichant tous les clients dont le nom commence par une lettre donnée (le paramètre est dénommé Lettre et est de type alphanumérique, le signe & accole au paramètre saisi le symbole "*", ainsi si la valeur du paramètre est "C", le filtre sera "...WHERE Nom LIKE 'C*' ") :

Exemple

PARAMETERS Lettre TEXT ;

SELECT * FROM Clients WHERE Clients.Nom LIKE Lettre & "*"

Vue avec un paramètre affichant tous les clients qui habitent dans un département donné

Exemple

PARAMETERS Département LONG;

SELECT * FROM Client WHERE Left(CP, 2) = Département

Vue affichant la liste des clients et la date de leur dernière facture (la fonction MAX calcule la date la plus récente, c'est une fonction agrégative qui nécessite la présence de la clause GROUP BY, le mot-clé AS attribue le titre "Dernière facture" à la 3ème colonne de la vue):

Exemple

SELECT Clients.Code, Clients.Nom, MAX(Facture.Date) AS [Dernière facture]

FROM Clients INNER JOIN Facture on Clients.Code = Facture.CodeClient

GROUP BY Clients.Code, Clients.nom

Vue affichant tous les clients dont la dernière facture date de plus d'un mois (le mot-clé NOW représente la date et l'heure du jour, la fonction DATEADD ajoute ou retranche une durée à une date pour en obtenir une autre, ici, on part donc du jour courant et on lui retranche 1 mois - symbolisé par "m") :

Exemple

SELECT Clients.Code, Clients.Nom, MAX(Facture.Date) AS [Dernière facture]

FROM Clients INNER JOIN Facture on Clients.Code = Facture.CodeClient

WHERE Facture.Date < DATEADD ("m", -1, now)

GROUP BY Clients.Code, Clients.nom