Vous êtes sur la page 1sur 92

Université Hassan II - Casablanca

Faculté des sciences juridiques, économiques et sociales


Mohammedia

Cours Informatique Appliquée (Partie 2)

Introduction aux Base de données avec ACCESS

Semestre 6
Introduction aux Bases de données
Systèmes de Gestion de Base de Données ACCESS

 Les données ne servent pas seulement à contrôler la gestion


et le fonctionnement d'une entreprise au jour le jour. Elles
sont aussi souvent utilisées pour soutenir des décisions
tactiques et stratégiques…

 Pouvoir conserver les données sous une forme structurée,


cohérente, non redondante et facilement accessible.

2
Plan
1. Définition d’une base données
2. Principales fonctions d’une base de données
3. Bases de données relationnelles
4. Système de Gestion de Base des données
5. Création d’une base de données sur le SGBD
Microsoft Access
6. Table, Champs, Enregistrement et Clés
7. Types de relations
8. Requêtes (QBE et SQL)

3
Définition

Base de Données (BD) est un ensemble de données

structurées, sécurisées, et inter-corrélées, enregistrées

dans des fichiers avec le minimum de redondance et

traitées par une ou plusieurs applications, d’une manière

optimale.

4
Fonctions principales d’une BD

 Une base de données est un outil qui permet de :


• Collecter des informations.
• Stocker ces informations.
• Traiter ces informations.
• Fournir à la demande ces informations
Caractéristiques d’une BD

• Données structurées : Les informations contenues dans une


base de données sont réparties en enregistrements, chaque
enregistrement ayant une structure bien définie.

• Données non redondantes : Une même information ne sera pas


répétée plusieurs fois dans la base de données.

• Données cohérentes : Il ne doit pas être permis d’enregistrer


dans une base des informations incohérentes entre elles.

6
• Données accessibles directement selon de multiples critères.

• Indépendance des programmes et des données : La base de


données est indépendante des programmes qui y ont accès, on
peut utiliser plusieurs programmes pour traiter différemment
ces données.

• Sécurité des données stockées : La base de données doit


permettre un système de sécurité permettant de gérer les
droits d’accès aux informations par les utilisateurs.

7
Avantages d’utilisation d’une BD

• Accès rapide et facile à l'information


• Toute l'information se retrouve à une seule place dans la base
de données
• Regroupement de l'information qui provient de plusieurs
sources
• Recherche facile
• Meilleur suivi de l'information et gestion des données
• Meilleure analyse des données et prise de décision
• Automatisation de tâches répétitives
• Sécurité des données
8
Bases de données relationnelles

Une BD relationnelle est composée d’un ensemble de tables.


• Chaque table a un nom
• Une table est composée de Lignes qu’on appelle enregistrements
(ou N-uplet) et de colonnes représentant chacune un champ
(attribut).
• L’enregistrement (ligne) : est l’ensemble des données relatif à la
même information
• Le champ (colonne) : est l’unité d’information dans une table,
une table est constituée de différents champs. Chaque champ a
un nom et un type de données : Texte, numérique, date, …
9
Structure d’une BDR

10
Exemple: Base de données pour la gestion des commandes

11
Chaque table d’une BDR a la structure suivante :

Notation : Nom_Table(Champ 1, Champ 2,…, Champ N)

12
Ci-dessous un exemple de table d’une BD pour la gestion des
commandes d’une entreprise
Enregistrements Nom de la table: Commandes

Commandes
Nu_cmd
Code_Client Champs
Date_cmd
Cmd_réglée

Commandes(Num_Cmd, Code_Client, Date_Cmd, Cmd_réglée) 13


Remarques
 Deux tables d’une même base de données ne peuvent
pas avoir le même nom.
 Deux champs de la même table ne peuvent pas avoir le
même nom.
 Un même champ peut être présent dans plusieurs
tables.
Conception d’une Base de Données

La réalisation d’une Base de Données implique trois


grandes étapes:

1. La définition d’un cahier des charges incluant les


règles de gestion.
2. La modélisation.
3. L’implantation physique dans un système
informatique.

15
Identifiant, clé primaire et clé étrangère

Un identifiant c’est un (ou plusieurs) champ d’une table


de la BD qui permet:
• d’identifier chaque enregistrement de façon
distincte.
• de créer les relations (liaisons) entre les tables

Exemples: CNE, CIN, Code d’Appogée, N° de facture,


immatricule
16
Exemple

Identifiants

17
Clé primaire

Une table peut posséder plusieurs identifiants. On choisit l'un


d'eux, qu'on déclare clé primaire. Les autres sont dès lors des
identifiants secondaires.

Une clé primaire est donc une combinaison minimale de propriétés


qui permet d’identifier d’une manière unique un enregistrement.

Une clé peut être simple (un seul champ) ou composée (plusieurs
champs), et ne peut être jamais nulle ou répétée

Clé étrangère

Un champ (ou ensemble de champs) est clé étrangère dans une table
s’il fait référence à une clé primaire dans une autre table.
Identifiant, clé primaire et clé étrangère

Clé primaire

Clé étrangère

19
Système de Gestion de Base de Données

Un Système de Gestion de Bases de Données (S.G.B.D.) est une


collection de logiciels (un programme)
– Il permet de décrire, traiter, interroger les ensembles de données
formant la base.
– Il doit également assurer la sécurité et la confidentialité des données
dans un environnement où de nombreux utilisateurs ayant des besoins
variés peuvent interagir simultanément sur ces données.

Exemple de SGBDR :
ACCESS pour gérer des petites bases de données.
ORACLE, très performant pour les grandes BD mais coute très cher
SQLSERVER, outils de Microsoft concurrent de oracle (coute cher)
MYSQL, performant et gratuit 20
Création de tables d’une base de données

Exemple de base de données pour la gestion des produits

Règles de gestion

 Chaque produit est fourni par un seul fournisseur, et un


fournisseur peut fournir plusieurs produits.
 Un fournisseur est défini par un code, un nom, l’adresse et le
téléphone.
 Chaque produit est défini par une référence, une désignation,
le prix unitaire , la disponibilité et la quantité en stock.

21
Tables de la base de données

22
Système de Gestion de Base de Données - Access

Démarrer Microsoft Access

23
Création d’une base de données

24
Les Composantes du SGBDR ACCESS

25
Les Composantes du SGBD ACCESS

1. Les tables: pour stocker les données ;  

2. Les formulaires: pour saisir les données ou les visualiser à l'écran ;  

3. Les états: pour imprimer les données ;  

4.  Les requêtes: pour retrouver les données ;

Autres composantes:

5. Les macros, pour automatiser des opérations répétitives effectuées

sur la base ; 

6. Les pages, pour communiquer avec la BDD via un navigateur; 

7. Les modules, pour rajouter des fonctionnalités grâce à de la

programmation en VBA (Visual Basic for Applications).


26
Création d’une table

27
Commentaire sur le champ
La liste des champs (ajouter les commentaire)
(ajouter les champs) Types de chaque champ
(définir les types)

28
Définir les types des données

Ajouter le champ CNE

Choisir le type du champ CNE

29
Ajouter une clé primaire

Sélectionner le champ & Définir CNE Clé primaire

30
Type de données d’un champ

 Texte : Concerne les valeurs alphanumériques (suite de


caractères ou combinaison de caractères et de chiffres).

 Numérique : Concerne les valeurs numériques (entiers ou réels


…etc.).

 Date et heure : Concerne les valeurs de type date telles que


date d’une commande, date de livraison, date d’intervention,
date d’embauche, date d’inscription…, ou les valeurs concernant
les heures comme heure de départ, heure d’arrivée, heure
d’une transaction….

31
 Monétaire : Concerne les valeurs numériques contenant des
symboles des unités monétaires comme $, €, DH…etc. Tous les
traitements de calcul qu’on peut faire sur les données
numériques sont valables pour les données monétaires.

 Oui/Non : Concerne les données qui ne peuvent avoir que deux


valeurs possibles telles que : Oui/Non, Vrai/Faux,
Activé/Désactivé.

 Objet OLE : Concerne les données qui peuvent être des


documents Microsoft Word, des feuilles de calcul Microsoft
Excel, des images, des sons, des vidéos ou d’autres données
binaires.

 LienHypertexte : pour un champ destiné à contenir un lien


cliquable. 32
Propriétés

Taille du champ : définit le nombre de caractères ; 

Format : définit la manière dont les informations s'affichent.  

Masque de saisie : guide la saisie des données en déterminant la


manière dont les données doivent être saisies.
33
Passage de mode Création en mode Feuille de données pour saisir les
données
Mode de création

Mode d’affichage

35
Relations entre les tables d’une BD

Prenons l’exemple de la gestion d’une collection de livres dans une


bibliothèque

Livres
Nom Auteur
Prénom Auteur
Date de naissance de l’auteur
Nationalité auteur
Titre
Nbre pages
Année d’édition
Éditeur

36
Il est plus judicieux de créer ici deux tables, il faut toujours regrouper dans
une même table toutes les informations relatives au même « sujet »

Auteurs
Nom Auteur
Livres
Prénom Auteur
Nom Auteur
Prénom Auteur Date de naissance

Date de naissance Nationalité


Nationalité
Livres
Titre
Titre
Nbre pages
Éditeur Nbre pages

Année d’édition Éditeur


Année d’édition

37
Trouver un moyen pour savoir exactement à Auteurs
N° Auteur
quel auteur correspond chaque livre.
Nom Auteur
 ajouter dans la table Auteurs un champ qui Prénom Auteur
va identifier de façon unique chaque Date de naissance
enregistrement  Clé Primaire Nationalité

Associer un livre à un auteur- Livres


 ajouter un champ dans la table Livres, ce N° Auteur
Titre
champ contient le n° de l’auteur de livre
Nbre pages
Éditeur
Année d’édition
N° Auteur clé primaire dans la table Auteurs
Et clé étrangère dans la table Livres

38
Définitions

 Une relation est un lien entre deux tables, associant des


données de la première (table source) avec celles de la
deuxième (table destination).
 Relation : la relation entre deux tables est basée sur un
champ commun aux deux tables. Elle est matérialisée par une
ligne appelée « ligne de jointure ».
 Une relation a pour principe la correspondance des données
des champs clés de deux tables :
– Ces champs sont la clé primaire et la clé étrangère.

39
Relation un-à-un

Dans une relation de type un-à-un:


– Chaque enregistrement de la table 1 ne peut
correspondre qu'à un (seul) enregistrement de la table 2,
– Et inversement, chaque enregistrement de la table 2 ne
peut correspondre qu'à un (seul) enregistrement de la
table 1.

Cette relation est représentée par un trait reliant la clé


primaire de la table 1 avec la clé primaire de la table 2

40
Table 1 Table 2
Enregistrement 1 Enregistrement 1
Enregistrement 2 Enregistrement 2
Enregistrement 3 Enregistrement 3
Enregistrement 4 Enregistrement 4
Enregistrement 5 Enregistrement 5

Exemple
Possède
Personne Voiture
1 1
Num_permis Immatricule

Nom Marque
Couleur
Prénom
Puissance
Ville

 Une personne possède une seule voiture


 Chaque voiture n’appartient qu’à une seule personne 41
Relation un à plusieurs (1 à n)

Un enregistrement de la table 1 est en relation avec plusieurs


enregistrements de la table 2, et un enregistrement de la table
2 est en relation avec un seul enregistrement de la table 2 .

Table 2
Table 1
Enregistrement 1
Enregistrement 1
Enregistrement 2 Enregistrement 2
Enregistrement 3
Enregistrement 4
Enregistrement 5

Cette relation est représentée par un trait reliant la clé


primaire de la table 1 avec la clé étrangère de la table 2
42
Exemple 1

Clé secondaire
Clé primaire
Auteurs Livres
1 n
N° Auteur N° Auteur

Nom Auteur Titre

Prénom Auteur Nbre pages

Date de naissance Éditeur

Nationalité Année d’édition

Un auteur a un ou plusieurs livres


Chaque livre ne correspond qu’un seul auteur

43
Exemple 2

Un Fournisseur peut fournir un ou plusieurs produits.


Chaque produit est fourni qu’avec un seul fournisseur.

44
Relation Plusieurs à Plusieurs (n - m)

Un enregistrement de la table 1 est en relation avec un ou


plusieurs enregistrements de la table 2, et un enregistrement
de la table 2 est en relation avec un ou plusieurs
enregistrements de la table 2 .

Exemple

 Un client achète un ou plusieurs produits


 Un produit peut être vendu à un ou plusieurs clients,
Autrement dit, un produit peut être présent sur plusieurs
ventes 45
Comment définir une relation Plusieurs à Plusieurs dans
Access ?
Solution

Il est impossible de lier directement 2 tables par une relation de


Plusieurs à Plusieurs. Il faut systématiquement passer par une troisième
table.

On suppose que nous avons déjà 2 tables construites correctement


(notamment avec une clé primaire chacune). Dans ce cas :

1. Créez une troisième table, qu'on appellera "table de jonction".


2. Dans cette table, reprenez la clé primaire des tables 1 et 2.
3. La clef primaire de la table 3 sera au minimum la combinaison des
2 autres clés.
4. Dans la fenêtre Relations, tracez maintenant une relation
classique "1 à Plusieurs" entre les tables 1 et 3, et faites de même
46
entre les tables 2 et 3. 
Dans cet exemple, la table Ventes est la table de jonction.

On peut désigner la clé primaire : le champ Num_Vente et pas


le couple composé de (Num_produit, Code_Client).
Pour établir ces relations sur Access:
1. Fermez tous les objets, ne gardez que la fenêtre « Base de
données » et cliquez sur Relations

dans l’onglet Outils de base de données.

2. Activez la commande « Afficher la table » dans le menu


« Relations », sélectionnez ensuite la table et cliquez sur
«Ajouter».

3. Faites glisser le champ comportant la clé primaire sur le champ


homologue de l’autre table
48
Exemple

Table Auteur

Table Livre

49
Outils de base de données  Relations

Cliquer sur relations

50
Afficher la table  Ajouter Auteur + Ajouter Livre  Fermer

51
Glisser N°auteur (table auteur) vers N°auteur (table Livre)

52
Cette relation signifie qu’un auteur peut être
associé à plusieurs livres et un livre est
associé à un seul auteur.
L’intégrité référentielle
Un ensemble de règles suivies par Access pour gérer les relations
entre tables et éviter des incohérences dans une base de données.
Elle empêche de supprimer accidentellement des enregistrements dans
une table mère quand il existe des enregistrements correspondants
dans la table Fille.

54
Prenons l'exemple de gestion Fournisseurs/Produits : un fournisseur
fournit plusieurs produits.

Lorsque vous définissez la relation entre la table Fournisseurs et


la table Produits, vous devez activer l'intégrité référentielle. De
cette façon, Access interdira la création d'un produit si le
fournisseur n'existe pas au préalable. 

D'une manière générale, l'intégrité référentielle implique de


renseigner la table du côté "1" avant la table du côté "Plusieurs".

Les deux tables doivent appartenir à la même base de données.


55
Mises à jour et suppressions
en cascade

Mettre à jour en cascade


Si cette option est cochée et que vous changez le code du
fournisseur (dans la table Fournisseurs), tous les produits
correspondants verront aussi leur Code modifié. Inversement, si la
case n'est pas cochée, il sera impossible de modifier un
Code_Fournisseur si des produits lui sont attribuées.

Effacer en cascade
Si cette option est cochée et que vous supprimez un fournisseur,
tous ses produits seront automatiquement détruites.
Inversement, si la case n'est pas cochée, il sera impossible de
supprimer un fournisseur tant que tous ses produits n'ont pas été
détruites. 56
Application 1
Un service financier réalise un audit de données bancaires. Le
schéma relationnel de ces données est le suivant :
– Client (IdClient, Nom, Prénom, Ville, Tél)
– Compte (IdCompte, IdClient, DateCréation, Solde)
– Action (IdAction, IdCompte, DateAction, Montant)

1. Quelles sont les clés primaires et les clés secondaires de


chaque table? Justifiez votre réponse.

2. Créer la BD sous Access. Ajouter les relations entre les


tables en activant l’intégrité référentielle. 57
3. Parmi les enregistrements suivants lesquels seront rejetés
par le SGBD et pourquoi ?

Table : Client
IdClient Nom Prenom Ville Tél
1 Amine Casablanca 0663562773
Salim Rajae Tanger 0662152435
3 Amine Jamal Agadir 0661661610
4 Nasri Reda Tanger 0670263560

Table : Compte
IdCompte IdClient DateCréation
Solde
123 1 1/3/2012 350200
124 3 2/1/2013 16K890
125 2 10/4/2013 680000
124 4 2/1/2014 25000 58
Application 2
Le responsable du complexe cinématographique a mis en place cette
base de données afin de gérer les projections des films dans les
différentes salles de cinéma :
Acteur (Num_acteur, Nom, Prénom)
Jouer (Num_acteur, Num_Film, Rôle)
Film (Num_Film, Titre, Genre, Année)
Projection (Num_Ciné, Num_Film, Date)
Cinéma (Num_Ciné, Nom, Adresse)
1. Quelles sont les clés primaires et les clés secondaires de chaque
table ? Justifiez votre réponse.
2. Tracez les relations entre les tables de cette base de donnée.
59
Application 3: Base de données
« Gestion de Commandes »
La BD « Gestion de commandes », qui sera utilisée pour le reste du
cours, contient les quatre tables suivantes : Clients, Commandes,
Produits et Détails_Commande, dont le schéma relationnel est :

60
Les requêtes
La requête est une action qui porte sur plusieurs
enregistrements. Elle sert à exploiter les données contenues
dans les tables.
Elle permet de:
 Trier des données
 Extraire des données par critères
 Produire des calculs
 Créer, Modifier des tables
Le SGBD Access permet de créer des requêtes en utilisant
soit une interface graphique QBE, soit le langage SQL
61
Types de requêtes
 La requête sélection : Elle permet de sélectionner des
enregistrements qui répondent aux critères demandés, de faire des
calculs et des regroupements. Elles ressemblent beaucoup aux filtres,
mais permettent, en plus, de travailler sur plusieurs tables simultanément.
 La requête d'Analyse croisée : Cette requête présente ses résultats
sous forme de tableau (de type Excel). On l'utilisera pour comparer des
valeurs, dégager des tendances.
 La requête de Création de table : Cette requête crée une table à
partir des données qu'elle a extraites dans une ou plusieurs autres tables.
 La requête Mise à Jour : Elle modifie le contenu d'un ou plusieurs
champs d'une ou plusieurs tables. C'est le moyen le plus efficace pour
mettre à jour un grand nombre d'enregistrements en une seule opération.
 La requête Ajout : Cette requête ajoute les données qu'elle a
extraites à la fin d'une table déjà existante.
 La requête Suppression : Cette requête supprime un ou plusieurs
enregistrements dans une ou plusieurs tables.
62
Requête sélection

Création et exécution d’une requête de sélection en


mode QBE

Dans la suite on utilisera la Base de données « Gestion de


commandes »

Pour créer une requête de sélection :

 Fermer toutes les tables ouvertes de la BD ;

 Dans de l’onglet « Créer » aller dans le groupe « Requêtes »


et cliquer sur l’élément « Création de requête ».

63
 La fenêtre « Afficher la table » s’ouvre.
Ajouter, à partir de la fenêtre « Afficher la table », la ou les
tables concernées par la requête. Ajouter par exemple la table
Clients et refermer la fenêtre.

64
On obtient ensuite l’interface suivante:

Pour basculer entre le Pour exécuter une Pour afficher la ou les


mode création et mode requête tables concernées par la
exécution requête

Les types de requêtes


action

Remarque :
Une requête qui exploite une seule table est dite requête
monotable ou simple

65
Structure et paramétrage d’une requête de sélection

Nom de la
requête

Liste des
champs

Les
paramètres
de la requête

Requête1 est le nom par défaut de la requête. On peut le changer


66
par un nom significatif une fois l’enregistrée.
Pour le paramétrage d’une requête, on sélectionne les
champs : soit que l’on souhaite afficher dans notre résultat
de requête soit dont on a besoin en critères pour exécuter
la requête.

La ligne "Champ" indique les champs à ajouter. Pour ajouter


un champ, soit double-cliquer sur le champ, soit le
sélectionner dans la table et l'amener avec la souris, soit on
clique sur la ligne "Champ", la liste de tous les champs
s'affiche alors et on en sélectionne un. Un des champs
proposés s’appelle '*', ce champ signifie "tous les champs de
la table".
67
La ligne "Table" sert à sélectionner la table contenant
le champ sélectionné.

La colonne "Tri" indique de quel ordre vont être triés


les champs dans le résultat de la requête.

La colonne "Afficher" indique si le champ doit être


affiché ou non.

La ligne "Critères" indiquera le ou les critères de


sélection pour la requête.
68
Manipulation des critères

 Si vous avez deux conditions regroupées par ou, la deuxième


condition est spécifiée dans la ligne OU.

 Si les conditions sont regroupées par l’opérateur ET alors


elles sont spécifiées dans la même ligne CRITERES.

 Une donnée de type texte doit être écrite entre guillemets


("...").
 Les nombres sont écrits tels quels.
 La date et / ou l'heure doivent être placées entre dièses
(#), avec séparation de jours, mois et année par la barre
oblique (/) ou un trait d'union (-), heure avec séparation de
minute et seconde par deux points (:). 69
Access met à notre disposition en plus des opérateurs (=, <>, <, >, <=,
>=), les opérateurs suivants:
Opérateur Signification Exemple
Sélectionne les enregistrements pour Entre "A" et « D"
Entre lesquels la valeur d'un champ est Pas Entre 20 et 30
Pas Entre comprise dans un intervalle de valeurs Entre #01/01/18# et
#31/12/18#
In Sélectionne les enregistrements pour In ("Rabat "; "Fès")
lesquels la valeur d'un champ est
Pas In Pas In (1;3;5)
comprise dans une liste.
Est NULL Sélectionne les enregistrements pour Est NULL
Est pas lesquels un champ est vide ou non
Est pas NULL
NULL
Sélectionne les enregistrements
Comme Comme « ma*"
contenant une donnée approximative.
Sélectionne les enregistrements ne
Pas Pas Entre "A" et "D"
correspondant pas au critère
70
Exemple de requête de sélection avec des critères
Dans notre BD « Gestions de Commandes », on souhaite afficher, le
code, le nom, le prénom et la ville des clients habitants Casablanca
ou Rabat. Le résultat doit être trié par Nom en ordre croissant.
Pour ce faire, nous allons double-cliquer sur tous les champs
nécessaires à savoir : CodeClient, Nom, Prenom, Ville.

On se place sur la ligne de critères du champ Ville et on saisit soit :


"Casablanca" Ou "Rabat" soit : In("Casablanca";"Rabat").
Autre possibilité : La requête peut aussi être formulée de la
façon suivante :

Avec cette méthode, on peut saisir autant de critères pour un


même champ qu’on le souhaite en les saisissant les uns en dessous
72
des autres même s’il n’y a pas de Ou devant chaque Ville.
Cliquer ensuite sur le bouton Exécuter. Vous aurez bien les
enregistrements comportant les clients habitants Casablanca et
Rabat.

73
Exemple 2
Afficher le code, le nom et le prénom des clients dont le nom ne
commence ni par « A » ni par « S » et qui sont de Casablanca ou
Mohammedia.

Cette requête sert à voir les caractères spéciaux tel que " * " et "?".
Le caractère "?" est utile pour remplacer un caractère dans la
requête. Par exemple, une recherche sur b?lle pourrait donner les
résultats suivants: balle, belle, bille, bulle.

Le caractère "*" sert à remplacer une série indéterminée de


caractères. On connaît le début mais pas la fin. Par exemple, une
recherche en utilisant bal* pourrait donner le résultat suivant:
balade, balai, balance, balcon, baleine, balise, balle, ballerine, ...
74
Pour le critère du champ "Nom", écrire seulement Pas A* et Pas S*. Access
se chargera d’ajouter Comme et les guillemets pour indiquer que les
enregistrements recherchés ne commencent ni par « A » ni par « S ».

75
Création d’une requête simple de
sélection en mode SQL
1. La construction d'une requête commence par
l'identification des informations à afficher (Clause
SELECT)
2. On détermine ensuite les restrictions nécessaires à
l'obtention du résultat (clause WHERE)
3. On repère ensuite dans le modèle relationnel la ou les
tables concernées par l'ensemble des champs mis en
ouvre dans les points 1 et 2 : on en déduit les tables
nécessaires à la clause FROM
4. On triera enfin grâce à la clause ORDER BY éventuelle.
76
5. On termine le code par un point virgule « ; »
Une requête sélection SQL commence toujours par la clause SELECT
et se termine par un point virgule.
Syntaxe exemple :
Select champ1, champ2, …
From tableSource
WHERE « Conditions sur les champs »
Order by [champ i] ASC/DESC ;

Champ1, champ2 sont les champs à afficher en résultat.


tableSource : indique la table d’où viennent les champs utilisés dans
la requête.
Les critères sont ajoutés après la clause Where (On utilise les
opérateurs de critères en anglais).
La dernière ligne indique que le résultat sera trié par le [champ i] en
77
ordre croissant (ASC) ou décroissant (DESC).
CLAUSE Explication
SELECT Liste les champs ou calculs à afficher ou
restituer
FROM Liste les tables nécessaires à
l'interrogation
WHERE Liste des conditions limitant la
recherche d'information. N'apparaît
qu'une fois
AND Précise que les conditions se cumulent
OR Précise des conditions alternatives
NOT Exprime le contraire d'une condition
ORDER BY Effectue un tri croissant (ASC) ou
décroissant (DESC) sur certains champs
GROUP BY Effectue un tri puis réalise des calculs
par sous catégories.
Inclut donc la notion d'ORDER BY.
HAVING Précise des conditions sur les résultats
des calculs
78
Pour créer une requête de sélection SQL on procède de la
même manière que la création en mode QBE :

 Fermer toutes les tables ouvertes de la BD.


 Aller à l’onglet « Créer » puis dans le groupe « Requêtes »
cliquer sur l’élément « Création de requête ».
 Fermer la fenêtre « Afficher la table », On obtient
l’affichage suivant:

Cliquer ici pour basculer en mode SQL

79
Exemples
On reprend les exemples précédents en mode SQL

Exemple 1 : Dans la BD « Gestions de Commandes », on souhaite


afficher, le code, le nom, le prénom et la ville des clients habitants
Casablanca ou Rabat. Le résultat doit être trié par Nom en ordre
croissant.

SELECT CodeClient, Nom, Prenom, Ville


FROM Clients
WHERE Ville In ("Casablanca","Mohammedia")
ORDER BY Nom;

80
Ou bien :

SELECT CodeClient, Nom, Prenom, Ville


FROM Clients
WHERE Ville = "Casablanca"  Or Ville = "Mohammedia"
ORDER BY Nom;

Exemple 2 : Afficher le code, le nom et le prénom des clients dont


le nom ne commence ni par « A » ni par « S » et qui sont de
Casablanca ou Mohammedia.

SELECT CodeClient, Nom, Prenom, Ville


FROM Clients
WHERE Nom Not Like "A*" And Nom Not Like "S*" AND Ville
In ("Casablanca","Mohammedia")
81
ORDER BY Nom;
Requête de sélection avec des champs
calculés

Il est possible de créer dans une requête des champs calculés


qui donnent le résultat d'une formule utilisant le contenu des
champs de l'enregistrement. 

Pour ce faire, aller dans la ligne des champs et ajouter le nom du


nouveau champ calculé (ALIAS) suivi des deux points « : » suivi
de la formule ou l’expression utilisée pour le calcul.

82
Exemple : Dans la BD « Gestion des commandes », on souhaite
afficher le numéro des commandes contenant le produit de
référence « Pdt01 », la quantité commandée et le prix total hors
taxes
Alias

83
Requête de sélection avec les fonctions
de traitement des dates
Quelques fonctions de traitement des dates:

Fonction Signification
Jour(Date) Affiche le jour de la date en paramètre
Mois(Date) Affiche le mois de la date en
paramètre
Année(Date) Affiche l’année de la date en
paramètre
Date() Affiche la date d’aujourd’hui (du
système)
Affiche la différence en nombre
Diffdate("format"; date1; d’années, de jours, de mois, de
date2) trimestres,… entre la date « date1 » et
la date « date2 ».
Format(Date; "format") Affiche le mois/jour de la date en
lettres alphabétiques. 84
Remarque :

Le premier paramètre de la fonction « Diffdate» peut avoir les


valeurs suivantes : "t" (différence en nombre de trimestres); "m"
(de mois); "e" (de semaines); "j" (de jours); "h" (d’heures); "n" (de
minutes); "s" (de secondes).

Les formats utilisés dans la fonction « Format » pour les types de


données date/heure sont : « aaaa », « mmmm », « jjjj », « t », ….

Format(Date ;"mmmmm") affiche les mois en lettres ("jjjj" pour


les jours). « mmm » affiche les mois abrégés, « mm » affiche les
mois par deux chiffres, « m » affiche les mois en chiffre.

Format(Date ;"t") affiche le trimestre en chiffres.


85
Exemple :

Dans la BD « Gestion des Commandes », on souhaite afficher le


numéro et la date des commandes passées entre le 30
novembre 2018 et le 31 janvier 2019.

86
Exemple :
Dans la BD « Gestion des commandes », on souhaite afficher le
code du client, le numéro et la date de leurs commandes faites au
cours du premier trimestre de l’année 2019 : Alias

Ou

87
Requête de sélection avec les fonctions
de traitement des dates en SQL
Fonctions de traitement des dates :

Fonction Signification
Day(Date) Affiche le jour de la date en paramètre
Month(Date) Affiche le mois de la date en
paramètre
Year(Date) Affiche l’année de la date en
paramètre
Date() Affiche la date d’aujourd’hui (du
système)
Affiche la différence en nombre
Datediff("format", date1, d’années, de jours, de mois, de
date2) trimestres,… entre la date « date1 » et
la date « date2 ».
Format(Date, "format") Affiche le mois/jour de la date en
lettres alphabétiques. 88
Remarque :

Le premier paramètre de la fonction « Datediff» peut avoir les


valeurs suivantes : "q" (différence en nombre de trimestres); "m"
(de mois); "w" (de semaines); "d" (de jours); "h" (d’heures); "n" (de
minutes); "s" (de secondes).

Les formats utilisés dans la fonction « Format » pour les types de


données date/heure sont : « yyyy », « mmmm », « dddd », « q », ….

Format(Date ;"mmmmm") affiche les mois en lettres ("dddd" pour


les jours). « mmm » affiche les mois abrégés, « mm » affiche les
mois par deux chiffres, « m » affiche les mois en chiffre.

Format(Date ;"q") affiche le trimestre en chiffres.


89
Exemples de requêtes en SQL :

Exemple 1: Dans la BD « Gestion des Commandes », on


souhaite afficher le numéro et la date des commandes passées
entre le 30 novembre 2018 et le 31 janvier 2019.

SELECT NumCmd, DateCmd


FROM Commandes
WHERE DateCmd Between #11/30/2018# And #1/31/2019#;
Ou bien :

SELECT NumCmd, DateCmd


FROM Commandes
WHERE DateCmd >=#11/30/2018# And DateCmd <=#1/31/2019#;

Remarque : En SQL les dates s’écrivent mois/jour/Année 90


Exemple 2: Dans la BD « Gestion des commandes », on
souhaite afficher le code du client, le numéro, l’année et la
date de leurs commandes faites au cours du premier trimestre
de l’année 2019

SELECT NumCmd, DateCmd, Year(DateCmd) AS AnnéeCmd


FROM Commandes
WHERE Year(DateCmd)=2019 AND Mois(datecmd) Between 1
And 3;

Remarque : AnnéeCmd est un champ calculé. Pour ajouter un


champ calculé en SQL on commence par la formule ou
l’expression (comme Year(DateCmd) en exemple) suivi de AS
91
suivi de nom du nouveau champ (Alias).
Ou

SELECT NumCmd, DateCmd, Year(DateCmd) AS AnnéeCmd


FROM Commandes
WHERE Year(DateCmd)=2019 AND Format(datecmd,"mmmm")
Between "Janvier" And "Mars";

Alias

Remarque : En SQL il n’y a qu’un seul point virgule. Toutes les


expressions en QBE qui contiennent des points virgules se changent
en virgules en passant à SQL
92