1. 1er Partie: Introduction aux bases de données:
Chapitre1 :
NOTION DE BASE DE DONNEES
Synthèse du cours:
• Notion de données et d'information:
Donnée: Renseignement que l’on obtient sur quel qu’un ou sur quelque
chose.
Information: L’information est représentée par des données, qui doivent être
interprétées et corrélées pour fournir de l’information.
Par exemple :
- "12/02/2000" et "Radès"
- si ces données sont utilisées comme réponse à la question “quand et où se
passe le match, alors ces données sont utilisées pour produire de
l’information
Eléments Constituant une information :
a. Persistance mémorisation et disponibilité
b. Organisation :
- Papier
- Fichier (file) : Les données sont stockées sous forme de
fichier. Chaque application de traitement de données utilise un
format de fichier de données qui lui est spécifique.
Afin de remédier a l'insuffisance et à la limite d'utilisation des deux méthodes
d'organisation, des recherches ont abouti au concept de base de données.
• Notion de base de données:
Une base de données (BD) est un ensemble de données structuré
exhaustive, persistante et non redondante. Cet ensemble structuré peut
modéliser un univers réel composé d'objets inter-liés qui peut être utilisé
simultanément par plusieurs utilisateurs (centralisation) et programmes
(indépendance) grâce aux fonctions offertes par un composant logiciel
appelé système de gestion de bases de données (SGBD).
2. Chapitre 2
Notion de Système de Gestion de
Bases de Données
• Système de Gestion de Bases de données (SGBD)
Un logiciel qui permet d'interagir avec une base de données s'appelle un système
de gestion de base de données (S.G.B.D.).
Les premiers SGBD (hiérarchique et réseau) étaient étroitement liés à la
représentation physique des données. Il y a eu ensuite le modèle relationnel qui a
permis de créer une indépendance entre la description des données et les
structures permettant de les stocker en mémoire secondaire.
• SGBD et système Fichier
Les SGBDs disposent d’outils qui
permettent de gérer un accès
simultané ou partagé aux données
par plusieurs Utilisateurs
- Pas de redondance
- Facilité de mise à jour
Système simple de fichiers
permettent un accès exclusif
Nécessité de dupliquer les
données, ce qui entraînant des
problèmes de redondance et
d’inconsistance
3. 4MTINFBDRC001 Page 3
• Fonctions d'un SGBD
Un SGBD doit permettre de :
√ Décrire les données qui seront stockées,
√ Manipuler ces données (ajouter, modifier, supprimer des
informations),
√ Obtenir des renseignements à partir de ces données (sélectionner, trier,
calculer, etc.),
√ Définir des contraintes d'intégrités sur les données (contraintes de
domaines, d'existence, etc.),
√ Définir des protections d'accès (mots de passe, autorisations, etc.),
√ Résoudre les problèmes d'accès multiples aux données (blocages, inter
édures de reprise en cas d'incident (sauvegardes,
journaux, etc.).
d'écrire des applications
(codage, ordre dans lequel les données sont
pport
'enregistrement, etc.).
blocages),
√ Prévoir des proc
√ De plus, un SGBD doit permettre
indépendantes de l'implantation
√ Exemple de SGBD relationnel:
√ physique des données
enregistrées, su
D
4. 4MTINFBDRC001 Page 4
2ème Partie: Création de Base de Données:
Chapitre 3
Structure d'une Bases de Données
Relationnelle
• Notion de base de données relationnelle:
Une base de données relationnelle est composée d'un ensemble de table.
Chaque table décrit alors une partie de l'univers concerné.
• Notion de Table:
Une table est une structure regroupant un ensemble de données relatives à
un même sujet. Elle se présente sous forme de tableau où chaque colonne
correspond à une propriété relative au sujet, et chaque ligne correspond à
une occurrence du sujet.
Exemple la table élève est décrit par :
ELEVE N° Prénom Nom Date de Naissance classe
COLONNES
LIGNES
1 Maha Ben Ahmed 12/11/1984 4 SI
2 Ramzi Ben Amor 17/03/1985 4 EG
3 Dora Mokhtar 22/06/1985 4 M
• Notion de clé primaire
Chaque table doit avoir une clé qui permet d’identifier de façon unique chacune
de ses lignes. La clé (dite primaire) est définit par un ou plusieurs colonnes.
Pour distinguer une colonne qui fait partie de la clé primaire des autres
olonnes, on lac souligne.
• Liens entre table
Pour que la base de données constitue une représentation fidèle du domaine
concerné les liens entres sujets du monde réel doivent se retrouver dans la base
de données.
Un lien entre deux table A et B est représenté par l’ajout dans la table B d’une
nouvelle colonne correspondant à la clé primaire de la table A. Cette nouvelle
colonne est appelée clé étrangère.
Ainsi pour connaître le lycée de chaque élève il faut par exemple ajouter
l’attribut code lycée (clé primaire) de la table lycée à la table élève.
5. 4MTINFBDRC001 Page 5
Pour distinguer une colonne qui fait partie d’une clé étrangère des
autres colonnes, on la fait suivre d’une #
• Notion de contrainte d’intégrité
Les contraintes de domaines : Elles permettent de fixer le caractère
obligatoire ou pas d’une colonne et les règles de validité des valeurs qui peuvent
être prises par cette colonne.
Les contraintes d’intégrité de tables : Elles permettent s’assurer que
chaque table à une clé primaire.
Les contraintes d’intégrité référentielles : Elles permettent de s’assurer
que les valeurs introduites dans une colonne figurent dans une autre colonne en
tant que clé primaire.
• Représentation de la structure d’une base de données
Représentation textuelle:
Nom_table (clé_primaire, colone1, colonne2, …, clé_etrangère#)
Représentation graphique:
Nom Table
clé_primaire
colone1
nne2colo
…
Clé_étrangère#
6. 4MTINF
Cha
D
S
Nous p
d'une b
1. D
I
2. D
I
c
q
Les
Pour é
colonn
FBDRC001
apitr
Déma
truct
proposons
base de do
Délimiter
Identifier
Détermin
Il s’agit
constituer
qui se rapp
s règles su
• Une
élém
• Une
ou d
• Des
une
élaborer l
nes suivan
1
re 4
arche
ture d
s les étape
onnées:
r le ou le(s
le ou les d
ner les col
de dédui
ront la bas
porte à un
uivantes d
e colonne
mentaire (
e colonne
dérivée à p
s colonnes
e seule col
la liste de
nt:
e de D
d'une
s d'une dé
s) domain
domaines
lonnes ou
ire à par
se de don
n sujet du m
doivent êt
doit repré
(non décom
ne doit pa
partir d’au
s similaire
lonne.
colonnes
Déter
e Bas
émarche p
ne(s) conc
qui consti
les cham
rtir de l'é
nnées. Cha
monde rée
tre respec
ésenter un
mposable)
as corresp
utres colon
es ne doive
, on peut
rmina
se de
ermettant
cerné(s) :
ituent l’ob
mps:
énoncé la
aque colon
el.
ctées :
e informa
).
ondre à un
nnes.
ent pas êtr
utiliser le
ation
e Do
de déterm
bjet de la b
a liste de
nne est un
ation sous
ne inform
re présente
e tableau
n de l
nnée
miner la st
base de do
es colonn
n fait (pro
sa forme
ation calcu
es. Il faut
liste des
la
es
tructure
onnées.
nes qui
opriété)
ulée
garder
Page 6
7. 4MTINF
3. D
I
d
C
4. A
P
c
5. D
O
d
d
D
c
p
6. D
L
f
FBDRC001
Détermin
Il s’agit d
données.
Cette liste
Affecter l
Pour s’ass
compte de
• Une
exc
étra
• Si l
tabl
mêm
dan
tabl
Détermin
On doit d
d’identifie
dont la va
Dans la p
colonne,
plusieurs c
Détermin
La déterm
façons :
•
•
1
ner les tab
de déterm
Chaque
e peut être
les colonn
surer qu’u
es règles s
e colonne
eption éc
angères.
la présenc
le entraîne
me valeur
ns la mauv
le dans laq
ner les clé
éterminer
er les autr
aleur est un
plupart d
mais dan
colonnes.
ner les lien
mination de
• Il exist
colonn
dans ce
étrangè
les tabl
• D’aprè
représe
existe u
les deu
bles:
miner la lis
table co
représent
nes aux ta
une colonn
uivantes :
doit être
chappe à
e d’une c
e que plus
r pour cett
vaise table
quelle cett
s primair
parmi les
res colonn
nique dans
es cas, u
s certains
On parle
ns entre t
es liens en
te dans un
ne a dans u
ette table.
ère dans la
les A et B
ès la descr
entés par d
un lien en
ux tables, n
ste des tab
rrespond
tée aussi s
ables :
ne est affe
affectée à
cette règ
olonne, qu
sieurs lign
te colonne
e. Il conv
te anomali
res:
s colonnes
nes de faç
s chaque l
une clé pr
s cas, elle
alors de c
ables :
ntre les tab
ne table B u
une autre t
Ceci veut
a table B. U
pour relie
iption don
deux table
tre les deu
nous devo
bles qui v
à un su
ous forme
ectée à la
à une et u
gle, c’est
ui n’est p
es de cette
e, c’est qu
vient donc
ie ne se re
s d'une tab
on unique
ligne.
rimaire e
e peut êtr
lé compos
bles peut ê
une colonn
table A et
t dire que
Un lien do
er les colon
nt nous dis
es, nous av
ux sujets. P
ons d’abor
vont const
ujet de d
e du tablea
bonne tab
une seule
t celle re
as clé étra
e dernière
ue cette co
c de l’affe
eproduira p
ble celle(s
e, c'est-à-d
st compo
re compo
sée.
être effectu
ne b qui c
qui est un
la colonne
oit être do
nnes a et b
sposons su
vons pu dé
Pour établ
rd identifie
tituer la b
domaine
au suivant
base de
étudié.
t:
ble, on dooit tenir
table. Un
elative au
ne seule
ux clés
angère, da
e vont con
olonne se
ecter à un
pas.
ans une
ntenir la
trouve
ne autre
s) qui perm
dire les co
osée d’une
osée de de
mettent
olonnes
e seule
eux ou
uée de deuux
correspond
ne clé prim
e b est une
onc établi e
b.
d à une
maire
e clé
entre
ur les suje
éduire qu’
lir ce lien
er la table
ts
il
entre
Page 7
8. 4MTINFBDRC001 Page 8
« mère » et la table « fille ». Nous utilisons le tableau suivant
pour décrire ces liens :
Table mère Table fille Clé primaire Clé étrangère
7. Analyser et affiner la structure de la base de données :
Lorsqu’on a identifié la structure de toutes les tables et établi les liens
entre ces tables, il convient de faire une représentation graphique de la
base de données afin de l’analyser et de détecter les anomalies
éventuelles. Il pourrait s’agir d’un oubli de colonnes ou de liens entre
tables.
Lorsque les corrections éventuelles auront été apportées à la structure de
la base, nous devons utiliser le SGBD pour créer les différentes tables.
9. 4MTINFBDRC001 Page 1
Création et Modification de la
Structure d'une Base de Données
SGBD : Système de gestion de bases de données
Outil pour Créer, saisir, stocker, consulter, modifier ou supprimer des données.
Exemple : MS Access, Mysql, Oracle, Sybase, …
• MS Access peu coûteux (licence éducation), l'interface simple
facile à maîtriser rencontré partout, On va l'utiliser pour les
manipulations en mode Assisté.
• MySQL très adapté à des interfaces Web, beaucoup utilisé –
gratuit on va l'utiliser pour les manipulations en Mode
Commande.
• Oracle et Sybase = gros système, très performant, beaucoup plus
professionnel.
I. Création & Modification Mode Assisté
Les Composants d'une base de données ACCESS
La fenêtre Base de Données contient tous les « objets » qui peuvent composer
une base
Access, classés par catégorie :
- Tables,
- Requêtes,
- Formulaires,
- États,
- Macros,
- Modules
- Pages.
Pour accéder à un objet, il faut cliquer sur le bouton correspondant à sa
catégorie.
1. Création de la table
Dans la fenêtre Base de données choisir l'onglet table puis le bouton Nouveau...
Vous avez le choix entre poursuivre avec l'aide de l'assistant ou créer
manuellement la table.
Plaçons-nous dans ce dernier cas:
10. 4MTINFBDRC001 Page 2
Chaque ligne de ce tableau contient les informations de chaque champ :
- Le nom du champ de la table (de 1 à 64 caractères)
- Le type de données (voir plus bas) à choisir parmi 9 types proposés par Access
- La description du champ (255 caractères maximum)
Les champs
Pour définir un champ il faut préciser son nom, son type, sa description et ses
propriétés.
• Nom de champ
Les noms des champs doivent être suffisamment clairs pour identifier les
données, il est cependant conseillé de définir des noms brefs, faciles à
mémoriser et à taper (éviter, si possible, le caractère espace).
• Type de champ
Texte Caractère (255)
Numérique Nombres entiers ou décimaux
Date / heure Dates / heures
Monétaire Valeurs monétaires
Compteur Incrément automatique à chaque nouvel enregistrement
Oui/ Non Valeur booléenne
NuméroAuto Numéro séquentiel unique (incrémenté de 1en 1)
Mémo Caractère (65000)
Liaison OLE Objets OLE, graphiques
Assistant Liste de choix Crée un champ qui vous permet de choisir une valeur à partir
d'une autre table ou d'une liste de valeurs à l'aide d'une zone de
11. 4MTINFBDRC001 Page 3
liste ou d'une zone de liste modifiable.
Propriétés des champs (variables selon le type de données) :
• Taille
Limite la taille d'un champ texte ou la valeurs d'un champ numérique.
• Format
Permet d'afficher l'information selon la présentation choisie (majuscule,
dates en chiffres ou en lettres,..)
• Masque de saisie
Contrôle intervenant au moment de la saisie, il peut être créé avec l'aide du
générateur de masque de saisie.
• Décimales
Nombres de chiffres après la virgule, pour champs numériques et
monétaires.
• Légende
Texte remplaçant le nom du champ dans les formulaires ou les états.
• Valeur par défaut
Valeur qui apparaît automatiquement dans le champ à chaque nouvel
enregistrement, cette valeur peut être modifiée lors de la saisie.
• Valide si
Condition qui doit être satisfaite pour qu'Access accepte la valeur saisie
dans le champ.
• Message si erreur
Message qui s'affiche si la propriété Valide si, n'est pas satisfaite.
• Null interdit
Si la propriété est Oui, la saisie de ce champ est obligatoire.
• Chaîne vide autorisée « »
Si la propriété est Oui, on peut saisir des guillemets doubles et ainsi faire la
différence entre information non connue et information absente.
• Indexé
L’utilisation d’un index accélère les opérations de consultation, mais
ralentit celles de mises à jour car il y a création de l’index.
Clé primaire
Lorsque la liste des champs est terminée ne pas oublier de définir la clé primaire
- cliquer sur le premier champ de la clé puis éventuellement sur les autres avec
la touche Ctrl enfoncée,
- cliquer sur le bouton « clé » ( ) ou choisir les commandes Edition puis
Clé primaire.
Attention, Si vous n'avez pas créé de clé primaire le système peut en créer une,
de type compteur, lors de la sauvegarde de la table.
Sauvegarde, nom de table
12. 4MTINFBDRC001 Page 4
Le nom de la table est donné lors du premier enregistrement à l'aide des
commandes Fichier puis Enregistrer ou Fichier puis Enregistrer sous.
2. Modification de la structure d'une Table:
Pour modifier la structure d'une table, dans la fenêtre Base de données choisir
l'onglet «table» puis le bouton «Modifier».
Tous les objets associés à la table doivent être fermés.
Attention : avant toute modification de structure de la table, mesurez les
conséquences sur les données existantes.
3. Construire une table par importation du fichier EXCEL :
- Sélectionnez le menu Fichier, Données externes, importer…
- Dans la boîte de dialogue « Importer », sélectionnez dans la liste «
Microsoft Excel » comme type de fichier.
- Sélectionnez le fichier.XLS a importer qui se trouve dans le répertoire des
données.
- Cliquez sur le bouton « Importer ».
- La 1ère page de l’assistant vous propose de sélectionner la feuille du
fichier Excel
- Ensuite cliquez sur le bouton « Suivant ».
- Indiquez dans la 2ème page si votre feuille contient ou pas un en-tête des
colonnes,
qui sera utilisé pour établir les noms des champs.
- Dans la 3ème page, sélectionnez l’option « Dans une nouvelle table »,
puis cliquez
« Suivant ».
- l’assistant vous donne la possibilité de préciser le nom du champs, indexé
ou non, cliquez sur le bouton « Suivant ».
- Dans cette étape, sélectionnez l’option « Pas de clé primaire ». En effet,
vous ne
pouvez ici choisir qu’un seul attribut comme clé primaire. Nous la
définirons plus tard. Cliquez sur le bouton« Suivant ».
- Dans la dernière étape vous devez spécifier le nom de votre nouvelle
table. Cliquez sur le bouton « Terminer » pour créer votre table.
4. Etablir les liens entre les tables:
- Dans la fenêtre Base Données Cliquer sur la commande relation du Menu
outils.
- Ajouter les tables objets de la relation
- Dans la table fille cliquer sur la clé étrangère.
- Maintins la bouton de la souris enfoncé
- Glisser, puis déposer vers la table mère
13. 4MTINFBDRC001 Page 5
- Dans la boite de dialogue Modifier une Relation cocher les cases
nécessaires: Cocher les options affichées en fonction du comportement
que vous souhaitez appliquer à ce lien.
• Appliquer l’intégrité référentielle : Signifie que lorsqu’on insère une ligne
dans la table fille, le SGBD vérifie que la valeur saisie dans la colonne clé
étrangère existe dans la colonne clé primaire de la table mère. Dans notre
exemple, il s’agit de vérifier qu’une commande est relative à un client qui
existe dans la table Client.
• Mettre à jour en cascade les champs correspondants : Cette option
permet de modifier automatiquement la valeur de la clé étrangère dans la
table fille lorsqu’on modifie la valeur de la clé primaire dans la table mère.
Par exemple, si on modifie le code d’un client dans la table Client, ce code
sera modifié dans toutes les lignes de la table Commande correspondant aux
commandes de ce client.
• Effacer en cascade les enregistrements correspondants : Cette option
permet de supprimer automatiquement toutes les lignes dans la table fille
correspondant à une ligne supprimée dans la table mère. Par exemple, si on
supprime un client dans la table Client, toutes les lignes de la table
Commande correspondant aux commandes de ce client seront supprimées.
- Cliquer sur le bouton créer.
Remarque:
Lorsque la colonne à supprimer est une clé primaire référencée dans une autre table
comme clé étrangère, sa suppression ne peut se faire qu’après la suppression du lien
entre les deux tables.
II. Création & Modification Mode Commande:
Le mode commande consiste à créer les différentes structures de la base de
données à l'aide de commande du langage SQL (Structured Query Language):
En particulier, SQL permet de
Définir des données (CREATE, ALTER, DROP,…)
Interroger / Manipuler (SELECT, INSERT, UPDATE, DELETE,…)
Contrôler les accès (GRANT, REVOKE)
La plupart des SGBD disposent d'un éditeur SQL qui nous permet d'exécuter les
commande (souvent appelé requêtes) SQL. Pour cela nous allons utilisé l'éditeur
MYSQL pour tout les manipulations en mode commande.
14. 4MTINFBDRC001 Page 6
Présentation de MYSQL:
MySQL est un serveur de bases de données SQL Open Source.
- Avec MySQL vous pouvez créer plusieurs bases de données sur un
serveur.
- Un outil libre et gratuit : phpMyAdmin permet l’administration aisée des
bases de données MySQL avec PHP.
1. La création de table :
CREATE TABLE nom_table
(colonne1 Type [Contrainte colonne*],
colonne2 Type [Contrainte colonne],…
colonne Type [Contrainte colonne],
[Contrainte de table**], …);
Pour une utilisation optimale de la base, il convient de définir des contraintes:
Il existe des contraintes :
*Sur une colonne : la contrainte porte sur une seule colonne. Elle suit la
définition de la colonne dans un ordre CREATE TABLE (pas possible dans
un ordre ALTER TABLE).
Les contraintes d’intégrité et de domaine
NOT NULL l’ensemble vide est interdit pour cette valeur
PRIMARY KEY détermine la clé primaire (donc unicité de la valeur)
DEFAULT attribue une valeur par défaut
CHECK donne une condition que les colonnes de chaque ligne devront vérifier.
REFERENCES Définit une contrainte d'intégrité référentielle
**Sur une table : la contrainte porte sur une ou plusieurs colonnes. Chaque
contrainte doit être nommée :
CONSTRAINT nom-contrainte définition-contrainte
Le nom d'une contrainte doit être unique parmi toutes les contraintes de toutes
les tables de la base de données.
Exemple: Contrainte de clé étrangère
Pour une contrainte sur une table :
FOREIGN KEY (colonne1, colonne2,...)
REFERENCES table_mère [(les_colonnes_clé_primaire)]
[ON DELETE CASCADE]
Pour une contrainte sur une colonne :
REFERENCES table_mère [(la_colonne_clé_primaire )]
[ON DELETE CASCADE]
L'option:
15. 4MTINFBDRC001 Page 7
ON DELETE CASCADE indique que la suppression d'une ligne de table_mère va
entraîner automatiquement la suppression des lignes qui
la référencent dans la table fille.
ON UPDATE CASCADE modifie la clé étrangère si on modifie la clé primaire
Les types:
int (taille_max) Entier (sur 4 octets, de -2.147.483.648 à 2.147.483.647).
DECIMAL (p, d ) Correspond à des nombres décimaux qui ont p chiffres significatifs
et d chiffres après la virgule
CHAR (longueur) La déclaration de type chaîne de caractères de longueur constante
VARCHAR (longueur) les colonnes qui contiennent des chaînes de longueurs variables.
Date réserve 2 chiffres pour le mois et le jour et 4 pour l'année :
(YYYY-MM-DD)
2. Modification de la structure d'une table
Ajout d’une colonne:
ALTER TABLE Nom_Table
ADD définition_colonne ;
Modification d’une colonne
ALTER TABLE Nom_Table
MODIFY nouvelledéfinition_colonne ;
Ajout de contrainte
ALTER TABLE Nom_Table
ADD CONSTRAINT Nom_Contrainte Définition_Contrainte;
Ajout de contrainte de Domaine
ALTER TABLE Nom_Table
ADD CONSTRAINT Nom_Contrainte CHECK (condition);
Suppression:
D’une colonne :
ALTER TABLE Nom_Table
DROP colonne ;
Il faut noter que la suppression n'est possible que dans le cas où :
L’attribut n'est pas l'objet d'une contrainte d'intégrité.
D'une contrainte :
ALTER TABLE Nom_Table
DROP CONSTRAINT Nom_Contrainte;
3. Suppression d’une table
DROP TABLE Nom_table ;
16. 4MTINFBDRC001 Page 8
Résumé
Vous avez appris dans ce chapitre comment créer et modifier les différentes structures
d’une base de données. Pour réaliser cette tâche, deux modes sont possibles : mode assisté
et mode commande
Le mode assisté est spécifique à chaque SGBD. A travers une interface graphique
conviviale, l’utilisateur peut créer et modifier les différentes composantes d’une base de
données en remplissant certains champs, en cochant d’autres et en effectuant des choix
dans des listes déroulantes
Le mode commande a comme principal avantage l’indépendance par rapport au SGBD.
La forme générale des trois commandes permettant de créer et de modifier la structure
d’une base de données (CREATE, ALTER et DROP) est la même dans tous les SGBD qui
utilisent SQL
17. 4MTINFBDRC001 Page 1
3ème Partie: Manipulation de Base de Données:
Manipulation d'une Base de
Données
Nous allons s'intéresser à quatre types d'opérations:
• L'insertion
• La modification
• La suppression
• La recherche de données (Requête)
I. Manipulation de données en Mode Assisté:
1/Mise à jour des données:
Les attributs d’un enregistrement peuvent être renseignés par saisie au clavier en
ouvrant la table en mode Feuille de données (double clique sur la table). Chaque
ligne correspond à un enregistrement. En bas de la fenêtre de saisie, une barre
indique le numéro de l’enregistrement sur lequel on est positionné.
Des boutons de navigation permettent de se déplacer d’une ligne à l’autre ou de
créer une nouvelle ligne :
Les opérations de Mise à jour
18. 4MTINFBDRC001 Page 2
Pour supprimer un enregistrement, on sélectionne la ligne correspondance
(clique à gauche de la ligne) et on utilise la touche SUP du clavier.
Selon les propriétés du champ, des contrôles peuvent être effectués lors de la
saisie. En particulier :
- deux enregistrements ne peuvent pas avoir la même clé primaire
- un élément d’une clé primaire ne peut avoir une valeur nulle
D’autres propriétés permettent :
- la saisie automatique de l’attribut (champs auto numériques)
- la saisie par choix des valeurs dans une liste de valeurs possibles
- l’initialisation automatique de la valeur d’un champ lors de l’ajout d’un nouvel
enregistrement
La saisie d’un champ est validée par déplacement du curseur sur une autre
cellule.
2/Recherche des données:
• Tri, Filtre et Recherche:
MS ACCESS offre des outils simples permettant de retrouver ou de réorganiser
des enregistrements selon des critères choisis. Les outils présentés ici sont le tri,
la recherche et le filtrage. Ces 3 fonctions sont disponibles lorsque la table est
ouverte en mode Feuille de données. Elles sont accessibles depuis la barre
d’outils :
Pour appliquer un Tri ou un Filtre sur la Table il suffit de sélectionner une
donnée de la table puis cliquer sur l'un des boutons de la barre ci-dessus.
• Requête:
A la différence des filtres, les requêtes (de sélection par défaut) peuvent être
enregistrées et exécutées à tout moment : lorsque vous exécutez une requête,
19. 4MTINFBDRC001 Page 3
Access sélectionne automatiquement les enregistrements de la table source de la
requête répondant aux critères posés.
- Définir les champs que vous souhaitez afficher lors de l'exécution de la requête
- Insérer des champs calculés qui reposent sur des champs issus de la ou les
tables sources de la requête.
- Poser des critères portant sur des champs issus de plusieurs tables, mises en
relation les unes avec les autres.
CREATION D’UNE REQUETE
1. Placez-vous dans la fenêtre "Base de Données"
2. Cliquez sur l'onglet "Requêtes"
3. Sélectionner la ou les tables sur lesquelles vous souhaitez poser des critères
de sélection.
4. Sélectionner les champs à afficher et Posez vos critères dans la grille de la
requête.
5. Exécutez la requête à l'aide de
Champ sélectionné dans la requête
Cochée si le champ entre dans la
Clause SELECT
Saisir condition de sélection
La ligne "Critères" indique le critère à appliquer sur le champ de la colonne
correspondante.
Conditions
• EXPR opérateur de comparaison EXPR
EXPR : constante, nom de colonne ou une combinaison des deux reliés par des
Opérateurs arithmétiques : {+, -, *, /}
Opérateur de comparaison : { =, <>, >, <, >=, <= }
• EXPR [NOT] BETWEEN EXPR AND EXPR
20. 4MTINFBDRC001 Page 4
Permet de sélectionner les enregistrements dont la valeur d’un champ est
comprise entre deux valeurs.
• EXPR [NOT] IN (liste de valeurs)
Permet de sélectionner les enregistrements dont la valeur d’un champ fait partie
(ou non) d’une liste de valeurs.
• Nom colonne [NOT] LIKE Chaîne
La clause LIKE permet de faire des recherches approximatives sur le contenu
d'un champ. Des symboles « joker » peuvent être utilisés pour rendre la
recherche plus large.
• Nom colonne IS [NOT] NULL
Permet d’utiliser comme critère de recherché le fait qu’un champ n’est pas de
valeur (IS
NULL) ou le contraire (IS NOT NULL)
Opérateurs logiques
Il est possible de combiner plusieurs conditions avec des opérateurs logiques :
AND et OR
Fonctions d’agrégat:
Ces fonctions réalisent un calcul sur un groupement d'enregistrements
satisfaisant la condition de la requête:
En mode création, les fonctions d’agrégat doivent être saisies dans la ligne
Opération qui apparaît en cliquant sur l’icône située dans la barre d’outils.
Nom des
opérations
Description
21. 4MTINFBDRC001 Page 5
Les Alias:
Regroupement Regrouper sur le champ.
Somme SUM () donne la somme des valeurs d'un champ
Moyenne AVG () donne la moyenne des valeurs d'un champ
Min MIN () donne la valeur la plus petite d'un champ
Max MAX () donne la valeur la plus élevée d'un champ pour
Compte COUNT (*) Renvoie le nombre d'enregistrements
satisfaisant la requête
…
Expression Entrer ses propres formules ou champs calculs pour un
regroupement.
Où Entrer des critères sans qu'ils soient pris en considération
pour le regroupement.
Il est possible de redéfinir les noms des champs surtout s'il s'agit d'un champ qui
contient une expression de calcul. Dans l’assistant de requête, l’alias d’un
champ (ou d’une expression) est spécifié dans la ligne Champ par le nom de
l’alias, suivi de : et du nom du champ.
II. Manipulation de données en Mode Commande:
Recherche des données
syntaxe minimale est :
SELECT <liste des colonnes>
From <liste des noms des tables>;
Nous verrons qu'elle peut être enrichie, de très nombreuses clauses permettant
notamment d'exprimer les projections, les restrictions, les jointures, les tris, les
groupements, etc
Les projections :
La projection d'une table en vue de l'obtention d'un ensemble de colonnes de
cette table se fait simplement en spécifiant les noms des colonnes désirées.
SELECT [ALL] | [DISTINCT] <liste des colonnes> | *
FROM <la table> ;
*: Toutes les colonnes d'une table.
DISTINCT: N'affiche qu'un exemplaire de chaque jeu de lignes identiques.
Exemple : Soit la table suivante:
Joueur
La recherche des données se fait exclusivement par l’ordre SELECT, dont la
22. 4MTINFBDRC001 Page 6
Num_j Nom_j Prénom_j date_naiss Code_eq
122 BEN ZEKRI mohamed 12/12/1978 2
123 EL MORI AHMED 11/08/1979 2
124 SAMTI ALI 09/05/1977 2
125 SAMTI HAIKEL 18/01/1979 2
126 BEN AMOR ZIEID 04/02/1978 2
127 NEFFETI ALI 17/05/1977 2
128 MOULLEHI JIHED 12/08/1980 2
129 MAOUI RIADH 05/05/1980 2
130 MOHAMED AMOUS 01/03/1982 2
131 MAKHLOUF AYMEN 07/09/1978 3
132 MABROUK MOUNIR 15/03/1978 3
lister la table Joueur ? SELECT * FROM Joueur;
lister les numéros et noms des Joueurs ?
SELECT Num_j, Nom_J FROM Joueur ;
lister les différents numéros des équipes de joueurs ? SQL n'élimine pas les
doubles à moins que ça ne soit explicitement précisé par le mot clé
DISTINCT SELECT DISTINCT Code_Eq FROM Joueur;
Les Restrictions :
Une restriction consiste à sélectionner les lignes satisfaisant à une condition
logique effectuée sur leurs colonnes s'expriment à l'aide de la clause WHERE
suivie d'une condition logique exprimée à l'aide:
• d'opérateurs logiques (AND, OR, NOT),
• d'opérateurs arithmétiques (+, -, *, /, %, &, |, ^, ~),
• de comparateurs arithmétiques (=, <>, >, <, >=, <=),
• et des predicts (NULL, IN, BETWEEN, LIKE, ALL, SOME, ANY,…).
Ces opérateurs s’appliquent aux valeurs numériques, aux chaînes de caractères
et aux dates.
SELECT [ALL] | [DISTINCT] <liste des colonnes> | *
FROM <la table>
WHERE <condition> ;
Exemples:
Lister les données sur Les joueurs de l'équipe 2
SELECT * FROM Joueur WHERE Code_Eq = 2 ;
Lister les Joueurs dont le nom ne commence pas par 'M' ?
SELECT * FROM Joueur WHERE Nom_J NOT LIKE 'M%'
'%' (ou '*')remplace n'importe quelle séquence de n caractères (n pouvant être
égal à 0).
Tri et présentation des résultats :
SQL permet de trier les lignes obtenus par la requête selon différents critères
grâce à la clause Order by. Les mots clés Asc et Desc permettent de préciser si
le tri est croissant ou décroissant.
23. 4MTINFBDRC001 Page 7
SELECT [ALL] | [DISTINCT] <liste des colonnes> | *
FROM <la table>
WHERE <Condition>
ORDER BY <liste des colonnes de tri> [ASC|DESC];
Exemple:
Lister les nons des Joueurs classés selon la date de naissance
SELECT Nom_J, date_Naiss
FROM Joueur
ORDER BY date_Naiss;
Utilisation d’expressions et des Fonctions:
Dans la clause SELECT on peut :
- insérer des instructions descriptives qui seraient répétées à chaque ligne,
- définir une nouvelle colonne (colonne calculée)
Les expressions peuvent figurer en tant que :
Colonne résultat d’un ordre SELECT.
Dans une clause WHERE.
Dans une clause ORDER BY.
Exemple:
Lister pour chaque joueur son âge
SELECT Nom_J, Current Date - date_naiss As Age
FROM Joueur;
Il est néanmoins possible de changer le nom de la colonne à l'affichage en
accolant au nom de colonne choisi le prédicat AS suivi du nouveau nom de
colonne devant apparaître à l'affichage.
Current Date : Fonction renvoie la date du jour.
Les Fonction:
Des fonctions peuvent être utilisées sur chaque valeur sélectionnée d’un nuplet:
Fonctions de Dates: CURRENT DATE, DAY, MONTH, YEAR
Fonctions relatives aux caractères: LEFT, RIGHT, SUBSTR, …
Des fonctions peuvent manipuler un groupement de nuplets:
COUNT, SUM, MIN, MAX, AVG, …
Jointure
Il s’agit ici de sélectionner les données provenant de plusieurs tables ayant un
ou plusieurs colonnes communes. Cette jointure sera assurée grâce aux
conditions spécifiées dans : WHERE
SELECT <table1.colonne1, table2.colonne2…>
FROM < table1, table2… >
WHERE Nom_Table1.colonnej = Nom_Table2.colonnej
AND …
AND <condition> ;
24. 4MTINFBDRC001 Page 8
Exemple:
On suppose que on a une autre table qui mémorise la participation des différents
joueurs aux différentes matchs en voici le peuplement des deux tables :
Participation
Num_j Num_match rôle durée
122 1 DEF 15
123 1 JoueurATT 90
124 1 ATT 90
125 1 DEF 90
126 1 AIL 90
127 1 AIL 45
128 1 DEF 90
129 1 GRA 90
129 2 GAR 45
129 3 GAR 90
130 1 DEF 45
131 1 DEF 45
132 1 DEF 45
132 2 ATT 60
Colonne de jointure
Lister les Nom des joueurs du match N°1
SELECT Joueur.Nom_J
FROM Joueur, Participation
WHERE Joueur.Num_j = Participation.Num_j /* condition de jointure*/
AND Participation.Num_match = 1; /* condition de restriction*/
Dès que deux tables sont utilisées, des ambiguïtés peuvent apparaître. Dans ce
cas il faut préfixer le nom de colonne par le nom de la table concernée suivi d'un
point. Si les noms de tables qui servent de préfixes deviennent pénibles à taper,
SQL offre de plus une possibilité de synonymes dans la clause FROM. Il suffit
pour cela de préciser le synonyme juste après le nom de la table à l'aide du mot
clé AS (facultatif) comme pour les synonymes de noms de colonne. La requête
précédente devient alors :
SELECT J.Nom_J
FROM Joueur As J, Participation As P
WHERE J.Num_j = P.Num_J
AND P.Num_match = 1;
Auto jointure:
On peut joindre une table avec une copie de celle-ci on utilisant les alias:
Exemple: donner les noms des joueurs qui sont plus âgés que le joueur n° 127
SELECT J1.Nom_j
Num_j Nom_j Prénom_j date_naiss Code_eq
122 BEN ZEKRI mohamed 12/12/1978 2
123 EL MORI AHMED 11/08/1979 2
124 ALISAMTI 09/05/1977 2
125 HAIKELSAMTI 18/01/1979 2
126 BEN AMOR ZIEID 04/02/1978 2
127 NEFFETI ALI 17/05/1977 2
128 MOULLEHI JIHED 12/08/1980 2
129 RIADHMAOUI 05/05/1980 2
130 MOHAMED AMOUS 01/03/1982 2
131 MAKHLOUF AYMEN 07/09/1978 3
132 MABROUK MOUNIR 15/03/1978 3
25. 4MTINFBDRC001 Page 9
FROM joueur J1, joueur J2
WHERE ((J1.date_naiss) < J2.date_naiss)
AND (J2.Num_J=127));
Groupement
Il est possible de grouper des lignes de données ayant une valeur commune à
l’aide de la clause GROUP BY et des fonctions de groupe (SUM, COUNT,…).
SELECT colonne1, colonne2,…,
FROM Nom_Table1, Nom_Table2,…
WHERE Liste_Condition
GROUP BY Liste_Groupe
Exemples:
Si on veut chercher le nombre des joueurs par équipe : on travail sur la
table Joueur
Donc le Regroupement s'effectue sur la colonne Code_Eq puis on va
compter les lignes regrouper pour chaque Valeur de la colonne Code_Eq et
on affiche le nombre des lignes qui correspond au nombre des Num_J. On
obtient alors:
SELECT Code_Eq , COUNT(Num_J)
FROM Joueur
GROUP BY Code_Eq;
26. 4MTINFBDRC001 Page 10
Mise A Jour des données
La mise à jours des tables en mode commande se fait à l'aide des commandes
SQL suivantes: INSERT, UPDATE, DELETE
Insertion d'une ligne:
INSERT INTO Nom_Table [(liste colonne)]
VALUES (Val1, Val2,…, Valn);
INSERT permet d’insérer une nouvelle ligne dans une table.
Exemple:
Insérer un nouveau joueur dans la table Joueurs:
INSERT INTO Joueur
( Num_J, Nom_j, Prenom_J , Date_naiss , Code_Eq )
VALUES ( 133, 'Salhi', 'Hichem', 1999-02-08, 3);
Ou bien
INSERT INTO Joueur
VALUES ( 133, 'Salhi', 'Hichem', 1999-02-08, 3);
NB:
i. un champ qui n'est pas renseigné et qui n'est pas obligatoire le SGBD lui
attribut la valeur NULL.
ii. C'est possible d'ajouter plusieurs lignes en même temps
INSERT INTO Joueur
VALUES ( 'Ben Brahim', 'Adel', 1998-04-08, 3);
Remarque:
Cette commande ne peut pas être exécutée à cause de la contrainte d’intégrité
PRIMARY KEY qui est violée. Les attributs constituant la clé primaire
doivent obligatoirement être présents.
INSERT INTO Joueur
VALUES ( 133,'Ben Brahim', 'Adel', 1998-04-08, 3);
Remarque:
Cette commande ne peut pas être exécutée à cause de la contrainte
d’intégrité d’unicité de la clé primaire qui n’a pas été respectée. Le code
client 133 a été déjà attribué.
INSERT INTO Participation
VALUES (150, 1, 'DEF', 15);
Remarque:
Cette commande ne peut pas être exécutée à cause de la contrainte
d’intégrité FOREIGN KEY (contrainte d'intégrité référentielle) qui est
violée. En effet, le joueur ayant le code égal à 150 n’existe pas dans la table
Joueur.
27. 4MTINFBDRC001 Page 11
Modification des données d'une table:
UPDATE Nom_Table
SET Colonne1 = Expr1, Colonne2 = Expr2, …
WHERE Condition;
UPDATE permet de mettre à jour un ou plusieurs Colonnes dans un ou
plusieurs lignes.
La clause WHERE est facultative. Si elle est absente, toutes les lignes sont
mises à jour.
Exemple:
Faire passer le joueur 124 dans L'équipe 3
UPDATE Joueur
SET Code_Eq = 3
WHERE Num_J = 124
Suppression des données d'une table:
DELETE FROM Nom_Table
WHERE Condition;
L'ordre DELETE permet de supprimer des lignes d'une table. La clause WHERE
indique quelles lignes doivent être supprimées.
ATTENTION : cette clause est facultative ; si elle n'est pas précisée, TOUTES
LES LIGNES DE LA TABLE SONT SUPPRIMEES.
Exemple :
Supprimer les joueurs de l'équipe n°3
DELETE FROM Joueur
WHERE code_Eq = 3;
Cette requête ne sera exécuter que si :
• les joueurs de cette équipe n'ont pas de participation
• ou bien on a définie l'option ON DELETE CASCADE au moment de la
création de la contrainte d'intégrité référentielle et dans ce cas, même les
lignes de la table participation qui se réfèrent aux joueurs supprimés
seront supprimé aussi.
28. 4MTINFBDRC001 Page 12
Résumé :
La manipulation d’une base de données consiste à insérer, supprimer,
modifier ou rechercher des lignes. Elle peut se faire en mode assisté ou en
mode commande.
Le mode assisté se fait en utilisant une interface graphique d’un SGBD alors
que le mode commande consiste à écrire explicitement des commandes
conformément à la syntaxe du langage SQL.
L’insertion d’une ligne, en SQL, se fait par l’intermédiaire de la commande
INSERT.
La suppression de lignes, en SQL, se fait par l’intermédiaire de la commande
DELETE. Elle permet de supprimer plusieurs lignes qui vérifient la
condition spécifiée.
La modification de lignes, en SQL, se fait par l’intermédiaire de la
commande UPDATE. Elle permet de modifier plusieurs lignes qui vérifient
la condition spécifiée.
La recherche de lignes, en SQL, se fait par l’intermédiaire de commande
SELECT. Elle peut consister à effectuer des opérations de projection, de
sélection, de jointure ou toute combinaison de ces dernières. Le résultat peut
être trié.
On parle de Projection si la recherche est relative à un sous ensemble de
colonnes d’une table.
On parle de Sélection si la recherche est relative à un sous ensemble de
lignes d’une table vérifiant une certaine condition.
On parle de Jointure si la recherche est relative à deux tables ayant au moins
une colonne en commun. La condition de jointure doit porter sur ces
colonnes communes.
La clause ORDER BY, utilisée dans la commande SELECT, permet de trier
le résultat obtenu.
SQL propose certaines fonctions, dites fonctions agrégat : SUM, COUNT,
MIN, MAX et AVG