SQL – Notions de base

SQL (Structured Query Language) est un langage, créé il y a une quarantaine d'années, qui permet de manipuler les données dans un système de gestion de base de données relationnelle (comme Microsoft Access).

Ceci est le premier article dans une série de 4.

  1. SQL - Notions de base
  2. SQL - Syntaxe de base - requêtes Séléction
  3. SQL - Syntaxe des requêtes action
  4. SQL - Les Jointures

On peut utiliser un outil comme Microsoft Access sans être obligé d'apprendre le langage SQL, car il y a la possibilité de créer des requêtes avec un assistant ou avec l'interface classique.

Cependant, avec quelques notions de ce langage, vous pourrez écrire des requêtes directement et manipuler des données dans des macros. De plus, certains d'entre vous doivent avoir quelques notions de ce langage pour passer des examens!

Prenons un exemple :

Nous avons créé une base de données simple dans Access qui pourrait servir à la gestion de visites client par des commerciaux.

Voici la fenêtre des relations :

La table centrale est "VISITES_CLIENT", qui a deux clés étrangères, celle de VENDEURS - qui affecte un vendeur à chaque visite, et celle de CLIENTS, qui affecte un client à la visite.

Chaque enregistrement de la table "VISITE_CLIENT" représente donc une visite unique. On stocke la date de la visite et un champ de type mémo qui permet au commercial de taper un petit compte-rendu.

Quelles données serait-il intéressant d'extraire de cette base? On a assez d'informations pour nous permettre de savoir plein de choses.

Par exemple, que faudrait-il faire pour avoir une liste de vendeurs avec le nombre de visites que chacun a effectué? Si vous créez la requête de façon "classique" dans Access, vous aurez ceci :

On ajoute la table "VISITES_CLIENT" dans la requête, on glisse les champs ID_CLIENT et ID_VISITE vers les colonnes en bas, on clique sur le SIGMA () pour permettre un regroupement. Enfin, dans la ligne "opérations", on change l'opération de la colonne "ID_VISITE" de "Regroupement" en "Compte".  Ceci donnera une liste de vendeurs (avec leur numéro seulement dans cet exemple) et le nombre de visites effectuées.

Cette requête - comme toutes les requêtes - pourrait être "traduite" en langage SQL. Dans Access, les deux systèmes existent ensemble. Chaque fois que vous créez une requête dans Access dans l'interface classique, une instruction SQL est automatiquement créée. Il suffit d'ouvrir le menu du bouton "Affichage" et cliquer sur SQL pour l'afficher!

Cet exemple précis donne l'instruction suivante en SQL :

SELECT VISITES_CLIENT.ID_VENDEUR, Count(VISITES_CLIENT.ID_VISITE) AS CompteDeID_VISITE FROM VISITES_CLIENT GROUP BY VISITES_CLIENT.ID_VENDEUR;

 

 

Aïe! Si vous ne le saviez pas déjà, SQL s'écrit plutôt en anglais donc si vous êtes doué(e) dans cette langue vous serez avantagé(e)!

Décortiquons la phrase en SQL :

SELECT

veut simplement dire "Sélectionner"!

VISITES_CLIENT.ID_VENDEUR, Count(VISITES_CLIENT.ID_VISITE) AS CompteDeID_VISITE

c'est la liste des champs à inclure dans la requête. Lorsque l'on écrit VISITES_CLIENT.ID_VENDEUR, on "accroche" le nom de la table devant le nom du champ avec un "." pour éviter des confusions entre champs qui auraient le même nom dans différentes tables. S'il n'y a pas de confusion possible entre les champs, on peut se permettre de simplifier et juste mettre le nom du champ (ex. ID_VENDEUR, au lieu de VISITE_CLIENT.ID_VENDEUR).

Dans la liste des champs, chaque champ est séparé par une virgule.

Dans cette partie, la requête n'est pas comme les autres:

Count(VISITES_CLIENT.ID_VISITE) AS CompteDeID_VISITE

Count() est une fonction (un peu comme une fonction de formule dans Excel) qui compte le nombre de regroupements effectués. C'est la traduction de l'opération "Compte" sur la ligne "Opérations" que nous avons créé dans la requête toute à l'heure!

AS CompteDeID_VISITE

AS veut dire "en tant que". On l'utilise pour donner un nom au champ. Dans ce cas, le nom est "CompteDeID_VISITE" mais on aurait pu attribuer n'importe quel nom après "AS". Cela s'appelle un "alias".

FROM VISITES_CLIENT

"FROM" signifie "en provenance de" et c'est comme cela que l'on déclare de quelle table on doit chercher les infos.

GROUP BY VISITES_CLIENT.ID_VENDEUR;

Enfin, "GROUP BY" dit à Access sur quel champ (ou champs) on doit regrouper. C'est l'équivalent de cliquer sur le SIGMA .

Si'l fallait traduire l'instruction SQL en français, on pourrait dire ceci :

"Dans la table VISITE_CLIENTS, regrouper les champs sur ID_VENDEUR pour afficher une liste de vendeurs uniques,  pour chaque vendeur unique, afficher le compte des regroupements."

Voilà!

Dans le prochain article, nous vous parlons de la syntaxe (le vocabulaire et la grammaire!) de ce langage.

  1. SQL - Notions de base
  2. SQL - Syntaxe de base - requêtes Séléction
  3. SQL - Syntaxe des requêtes action
  4. SQL - Les Jointures

 

Ce contenu a été publié dans ACCESS 2007, Cours, avec comme mot(s)-clé(s) , , , , , , , , . Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire