- I. GENERALITE
- II. INSTALLATION
- III. MISE EN ROUTE
- IV. GESTION DES CLIENTS
- V. GESTION DU STOCK
- VI. GESTION DES VENTES
- VII. GESTION DES COMMANDES
- VIII. CAISSE
- IX. TIERS PAYANT
- X. CATALOGUES FOURNISSEURS
- XI. PARAMETRAGE DU LOGICIEL
- XII. OUTILS
- XIII. SERVICES
- XIV. STATISTIQUES
- XV. REQUETES ET PUBLIPOSTAGE
- XVI. ANNEXES
- Résultat
L'instruction SELECT est certainement l'instruction la plus utilisée en SQL, c’est donc celle-ci qui sera présentée en premier. Cette instruction permet de faire une sélection d'un ensemble d'enregistrements en provenance d'une ou plusieurs tables.
1. Syntaxe de base :
SELECT
<champ1>, <champ2>, etc. FROM <nom table> |
Par exemple, pour sélectionner tous les noms et prénoms du fichier Clients, la commande suivante sera utilisée :
SELECT Nom,
Prénom FROM Clients |
Le symbole * permet d'indiquer que l'on veut sélectionner tous les champs de la table :
SELECT * FROM Clients |
2. La clause FROM :
Elle permet d'indiquer que la commande porte sur la table dont le nom est indiqué juste après :
SELECT * FROM Articles |
Le FROM permet d'indiquer qu'il faut afficher les informations provenant de la table Articles. Cette clause est obligatoire dans toute interrogation d'une base de données.
3. La clause WHERE :
La clause WHERE permet d'indiquer une condition. Le résultat sera d'afficher uniquement les enregistrements répondant à la condition spécifiée.
SELECT * FROM Articles WHERE Prix |
Cette commande signifie : "afficher tous les articles dont le prix est inférieur à 2000" (quelle que soit la monnaie).
SELECT Nom FROM Fournisseurs WHERE Localité = "Bruxelles" |
Cette commande signifie : "afficher le nom de tous les fournisseurs situés à Bruxelles".
Il est important de noter que les valeurs alphanumériques, contrairement aux valeurs numériques, doivent être inscrites entre guillemets pour les différencier l'une de l'autre.
4. La clause ORDER BY :
Cette clause permet de spécifier l'ordre dans lequel les informations seront affichées. Il est possible de voir apparaître les enregistrements dans l'ordre ascendant (option ASC, par défaut : de A à Z) ou descendant (option DESC : de Z à A). Au cas où il y aurait des synonymes (ce qui arrive très souvent lorsque les informations représentent des noms), il est possible de trier les enregistrements sur plusieurs colonnes.
SELECT Nom,
Prénom FROM Clients ORDER BY Nom |
Cette commande affichera la liste des noms et prénoms de la table clients ordonnée sur le nom de manière ascendante.
SELECT Marque,
Modèle, Prix FROM Articles ORDER BY Marque, Prix DESC |
Cette commande permet d'afficher les informations Marque, Modèle et Prix de la table Articles de la forme suivante : par ordre croissant sur la marque et, s'il y a égalité, par ordre décroissant sur le prix.
5. La clause GROUP BY :
Cette clause permet, comme son nom l'indique, de grouper les enregistrements d'une table ayant même valeur. Généralement associée aux fonctions statistiques (SUM, AVG, etc.) qui serons vues plus tard, elle permet d'effectuer des totaux pour les lignes de même valeur.
SELECT Marque,
SUM(Prix) FROM Articles GROUP BY Marque |
Cette instruction permet de grouper les enregistrements de la table Articles par marque et d'effectuer la somme des prix de tous les modèles de la marque (la fonction SUM sera développée dans les paragraphes suivants).
Utilisée sans les fonctions statistiques, la clause GROUP BY permet simplement de regrouper (au moment de l'affichage) les lignes ayant les mêmes informations.
SELECT Nom,
Adresse FROM Clients GROUP BY Nom, Adresse |
Cette instruction affichera les colonnes Nom et Adresse de la table Clients en supprimant les doublons (c'est-à-dire un même nom pour une même adresse).
6. La clause HAVING :
Cette clause est généralement utilisée si la clause GROUP BY a été spécifiée. En effet, HAVING permet de définir une condition sur l'ensemble des lignes regroupées par la clause GROUP BY, au même titre que la clause WHERE permet de définir une condition sur les enregistrements de la table.
SELECT Marque,
SUM(Prix) FROM Articles GROUP BY Marque HAVING SUM(Prix) > 10000 |
La clause HAVING permet de spécifier la condition suivante : "la somme des prix des différents modèles d'une même marque doit être supérieure à 10000".
7. L’attribut AS :
L'attribut AS permet d'utiliser un autre nom de champ que celui de la table ou préciser un nom de colonne si celui-ci ne ressort pas de l’expression utilisée pour générer ce champ.
SELECT Nom AS [Nom du
fournisseur], Localité AS Ville, Tél FROM Fournisseurs |
Remplace l'intitulé des colonnes Nom et Localité par Nom du fournisseur et Ville, le nom de la colonne Tél reste inchangé.
SELECT Marque,
SUM(Prix) AS Total FROM Articles GROUP BY Marque HAVING SUM(Prix) > 10000 |
Donne le nom souhaité (Total) à la colonne contenant la somme des prix (autrement, l'ordinateur choisi un nom arbitrairement).
8. L’attribut DISTINCT :
Cet attribut permet d'afficher toutes les lignes distinctes de la table. Les informations redondantes ne seront donc pas affichées.
SELECT DISTINCT
Marque FROM Articles |
Cette instruction affichera la liste des différentes marques contenue dans le fichier Articles.
9. L’attribut TOP :
Cet attribut retourne un certain nombre d’enregistrements qui se trouvent en haut ou en bas d’une plage déterminée par une clause ORDER BY.
Par exemple pour obtenir le nom des 25 premiers élèves d’une promotion :
SELECT TOP 25
Nom FROM Etudiants WHERE [Promotion] = 1994 ORDER BY [Note moyenne] ASC |
Si la clause ORDER BY n’est pas utilisée, la requête retournera un ensemble arbitraire de 25 enregistrements à partir de la table Etudiants, qui satisfont à la clause WHERE.
L’attribut TOP n’opère pas de choix entre des valeurs égales. Dans l’exemple ci-dessus, si la vingt-cinquième note la plus élevée est égale à la vingt-sixième, la requête retournera 26 enregistrements.
Il est possible d’utiliser le mot réservé PERCENT pour retourner un certain pourcentage d’enregistrements qui figurent en haut ou en bas d’une plage définie par une clause ORDER BY. Par exemple, au lieu de rechercher les 25 premiers étudiants, il est possible d’obtenir les noms des 10% supérieurs de la promotion :
SELECT TOP 10 PERCENT
Prénom, Nom FROM Etudiants WHERE [Promotion] = 1994 ORDER BY [Note moyenne] ASC |
La valeur qui suit TOP doit être un nombre entier sans signe. TOP n’affecte pas la possibilité de mettre à jour la requête.
10. Combinaison de clauses :
Il est possible de combiner plusieurs clauses à condition de respecter un certain ordre :
- La clause GROUP BY vient immédiatement après la clause FROM s'il n'existe pas de WHERE, sinon elle vient après cette dernière,
- La clause HAVING se place toujours après la clause GROUP BY,
- La clause ORDER BY est toujours la dernière clause dans une commande SELECT,
- La clause DISTINCT doit toujours se placer avant la liste des colonnes de la table à sélectionner.