Vous êtes sur la page 1sur 33

Bases de donnes

Page 1 sur 33

Filire : MMI

BASES DE DONNES
Gnralits
Les bases de donnes relationnelles
Normalisation des relations
Le langage SQL

Filire : MMI
Dure : 15h

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 2 sur 33

Filire : MMI

CHAPITRE I : GENERALITES
I - INTRODUCTION
Dans les formes traditionnelles de l'information, les donnes stockes sur des supports constituent des
fichiers. Ces fichiers, construits pour rpondre aux besoins des applications informatiques possdent la
plupart du temps des lments communs, des relations qui ne sont pas exploites du fait quils sont utiliss
isolement et indpendamment les uns des autres. Cette manire d'organiser les informations prsente trois
inconvnients :
- Une grande complexit cause du grand nombre de fichiers et leur cration qui dpend des besoins
particuliers de chaque application.
- La redondance des infos cause de la duplication sur plusieurs fichiers de certaines donnes. Ce qui est
dune part coteux en moyen de stockage et dautre part pose le problme de cohrence car les mises
jour d'une mme donne localise sur plusieurs fichiers utiliss par des applications diffrentes ne
peuvent pas toujours tre simultane .
Par ailleurs, la prise de dcision est une part importante de la vie d'une socit. Mais elle ncessite d'tre
bien informe sur la situation et donc d'avoir des informations jour et disponibles immdiatement.
D'autre part, les utilisateurs, ne veulent plus de systmes d'information constitus d'un ensemble de
programmes inflexibles et de donnes inaccessibles tout non spcialiste; ils souhaitent des systmes
d'informations globaux, cohrents, directement accessibles (sans qu'ils aient besoin soit d'crire des
programmes soit de demander un programmeur de les crire pour eux) et des rponses immdiates aux
questions qu'ils posent. Il a donc fallu rechercher des solutions tenant compte la fois des dsirs des
utilisateurs et des progrs techniques. Cette recherche a abouti au concept de base de donnes.
II - DEFINITIONS ET AVANTAGES DUNE BASE DE DONNEE
Dfinition
Une base de donnes est un ensemble de donnes modlisant les objets dune partie du monde rel, qui
sert de support une application informatique et qui est exhaustif, non redondant, structur et persistant.
Avantages
Une base de donnes est un ensemble de donnes structures qui, aprs avoir t saisies une seule fois,
sont accessibles aux diffrents utilisateurs. Les avantages que lon peut attendre dune telle utilisation sont
nombreux :
-

Saisie unique : Les donnes sont saisies une seule fois et stockes indpendamment des
programmes qui doivent les traiter.
Mise jour unique : Comme une donne nest stocke quune seule fois, le problme souvent mal
rsolu de la mise jour de cette donne dans diffrents fichiers ne se pose plus. Les diffrents
traitements qui utiliseront cette donne seront toujours trs cohrent.
Gain de place au stockage : La suppression des redondances rduit le volume ncessaire au
stockage.
Accs plus facile linformation : Chaque donne est stocke indpendamment des programmes
qui lutilisent. Elle est disponible pour les utilisateurs potentiels qui interrogeront la base.
Lensemble des informations de lEntreprise peut ainsi tre partag entre les services sans
quaucun nen conserve lexclusivit.
Possibilit dvolution : Une base de donne bien conue est indpendante des traitements. Elle
peut en principe permettre la prise en compte facile de nouvelles applications si les possibilits
daccs aux donnes ont t bien prvues lors de sa conception.
Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 3 sur 33

Filire : MMI

III - LES SGBD


Un systme de gestion de base de donnes est un logiciel qui permet de dcrire, modifier, d'interroger et
d'administrer les donnes d'une base de donnes.
1. Objectifs des systmes de gestion de bases de donnes
Les bases de donnes et les systmes de gestion de bases de donnes ont t crs pour rpondre un
certain nombre de besoins et pour rsoudre un certain nombre de problmes.
Les objectifs d'un SGBD sont les suivants :

Indpendance physique
La faon dont les donnes sont dfinies doit tre indpendante des structures de stockages utilises.
Indpendance logique
Un mme ensemble de donnes peut tre vu diffremment par des utilisateurs diffrents. Toutes
ces visions personnelles des donnes doivent tre intgrs dans une vision globale.
Manipulations des donnes par des non informaticiens
Il faut pouvoir accder aux donnes sans savoir programmer ce qui signifie des langages "quasi
naturels".
Efficacit des accs aux donnes
Ces langages doivent permettre d'obtenir des rponses aux interrogations en un temps
"raisonnable". Ils doivent donc tre optimiss et, entre autres, il faut un mcanisme permettant de
minimiser le nombre d'accs disques. Tout ceci, bien sur, de faon compltement transparente pour
l'utilisateur.
Administration centralise des donnes
Des visions diffrentes des donnes (entre autres) se rsolvent plus facilement si les donnes sont
administres de faon centralise.
Non redondance des donnes
Afin d'viter les problmes lors des mises jour, chaque donne ne doit tre prsente qu'une seule
fois dans la base.
Cohrence des donnes
Les donnes sont soumises un certain nombre de contraintes d'intgrit qui dfinissent un tat
cohrent de la base. Elles doivent pouvoir tre exprimes simplement et vrifies automatiquement
chaque insertion, modification ou suppression des donnes.
Partageabilit des donnes
Il s'agit de permettre plusieurs utilisateurs d'accder aux mmes donnes au mme moment. Si ce
problme est simple rsoudre quand il s'agit uniquement d'interrogations et quand on est dans un
contexte mono utilisateur, cela n'est plus le cas quand il s'agit de modifications dans un contexte
multi utilisateurs. Il s'agit alors de pouvoir :
permettre deux (ou plus) utilisateurs de modifier la mme donne "en mme temps" ;
assurer un rsultat d'interrogation cohrent pour un utilisateur consultant une table pendant
qu'un autre la modifie.
Scurit des donnes
Les donnes doivent pouvoir tre protges contre les accs non autoriss. Pour cela, il faut
pouvoir associer chaque utilisateur des droits d'accs aux donnes.
Rsistance aux pannes
Que se passe-t-il si une panne survient au milieu d'une modification, si certains fichiers contenant
les donnes deviennent illisibles? Les pannes, bien qu'tant assez rares, se produisent quand mme
de temps en temps. Il faut pouvoir, lorsque l'une d'elles arrive, rcuprer une base dans un tat
"sain". Ainsi, aprs une panne intervenant au milieu d'une modification deux solutions sont
Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 4 sur 33

Filire : MMI

possibles : soit rcuprer les donnes dans l'tat dans lequel elles taient avant la modification, soit
terminer l'opration interrompue.
Il existe des SGBD de complexit variable qui possdent tout ou partie des proprits ci-dessus. Prenons
en exemple deux produits assez caractristiques : le SGBD relationnel Oracle 7 et le SGBD relationnel
Access. Le SGBD Oracle 7 est un SGBD relationnel utilis pour des applications critiques et qui offre un
maximum des caractristiques prsentes ici. Le SGBD Access est un SGBD dans le monde de
linformatique individuelle qui prsente lavantage dune grande facilit dutilisation et qui peut convenir
des applications de taille rduite ou moyenne. Laspect convivial de ce dernier tant vident. En
revanche, les niveaux de performance et de scurit ne sont pas comparables.
2. Architecture des SGBD
Les SGBD reposent sur trois niveaux dabstraction qui assurent lindpendance logique et physique des
donnes, autorisent la manipulation de donnes, garantissent lintgrit des donnes et optimisent laccs
aux donnes. Larchitecture d'un SGBD a trois niveaux :
Le niveau externe.
Il regroupe toutes les possibilits daccs aux donnes par les diffrents usagers. Ces accs,
ventuellement distants, peuvent se faire via diffrents types dinterfaces et langages plus ou moins
labors. Ce niveau dtermine le schma externe qui contient les vues des utilisateurs sur la base
de donnes cest dire le sous-ensemble de donnes accessibles ainsi que certains assemblages
dinformation et ventuellement des informations calcules. Il peut donc exister plusieurs schmas
externes reprsentant diffrentes vues sur la base de donnes avec des possibilits de
recouvrement.
Le niveau conceptuel.
Il correspond la vision des donnes gnrale indpendante des applications individuelles et de la
faon dont les donnes sont stockes. Cette reprsentation est en adquation avec le modle de
donnes utilis. Dans le cas des SGBD relationnels, il sagit dune vision tabulaire o la
smantique de linformation est exprime en utilisant les concepts de relation, attributs et de
contraintes dintgrit. Le niveau conceptuel est dfini au travers du schma conceptuel.
Le niveau physique.
Il regroupe les services de gestion de la mmoire secondaire. Il sappuie sur un systme de gestion
de fichiers pour dfinir la politique de stockage ainsi que le placement des donnes. Cette politique
est dfinie en fonction des volumes de donnes traites, des relations smantiques entre les
donnes ainsi quen fonction de lenvironnement matriel disponible.
Remarque
Indpendance logique.
Possibilit de modifier le schma conceptuel sans remettre en cause les schmas externes ou les
programmes dapplication. Lajout de nouveaux concepts ne doit pas modifier des lments qui ny
font pas explicitement rfrence.
Indpendance physique.
Possibilit de modifier le schma physique et la politique de stockage (modification de
lorganisation physique des fichiers, ajout ou suppression de mthodes daccs) sans remettre en
cause le schma conceptuel et donc le schma externe. Le but de ce niveau dindpendance est de
rendre transparente la gestion physique des donnes aux programmes dapplication.
Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 5 sur 33

Filire : MMI

IV- LES DIFFERENTS MODELES DUNE BASE DE DONNEES


Le principal objectif des bases de donnes est de rendre indpendant les donnes vis vis des
applications. Laccs ces donnes par des applications pose des problmes. Ainsi, pour simplifier ces
problmes daccs, plusieurs modles logiques de base de donne et de systmes de gestion de base de
donne ont vu le jour. On distingue par ordre chronologique :
1 - Le modle hirarchique
Historiquement le premier, il consiste organiser les donnes de faon arborescente; ce qui constitue,
une structure simple grer. Cette structure est une hirarchie ou chaque lment na quun suprieur. Le
nombre de connexion est limit: il ny en a pas entre les branches de mme niveau.
VOL

Avion

Pilote

Equipage

Copilote

Htesses

Classes

passagers

Trajet

Destination

Origine

Ce modle ne permet que des interrogations simples. Par exemple, quel est le trajet du vol 512 ou quel est
le pilote du vol 304. Mais, il n'est pas ais de savoir sur quel vol est inscrit le passager Mahigh.
2 - Le Modle Rseau
Le modle rseau est une extension du modle prcdent: il permet d'tablir des connexions entre les
diffrents lments. De cette manire, on dispose d'un plus grand nombre d'interrogations possibles mais,
elles doivent tre toujours prvues lors de la construction de la base de donnes.
3- Le Modle Relationnel
Le modle relationnel Permet de se librer de la contrainte suivante : Connatre l' avance les
interrogations que l'on effectuera. Ainsi, les donnes sont stockes sous la forme de relation dans des
tables. Ce type de structure permet d' tablir des connexions au moment de l'excution. On pourra donc
effectuer toute sorte d'interrogations plus ou moins complexes.
L'accs aux bases de donnes relationnelles s'effectue en appliquant les trois oprations de base suivante:
la projection, la slection et la jointure .
Avec le modle relationnel, il est ncessaire de convertir les donnes d'application sous forme de tables.
L'interface entre une application et une base de donnes est effectue l'aide de langages spcifiques,
dont le plus connu est SQL

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 6 sur 33

Filire : MMI

Chapitre II Les bases de donnes relationnelles


Le modle relationnel a t propos par E.F. Codd en 1970. Il est souvent considr comme le plus simple
et le plus lgant des modles. Sa simplicit est due une vision tabulaire des donnes trs intuitive. En
effet, dans ce modle, les donnes sont stockes dans des tables, sans prjuger de la faon dont les
informations sont stockes dans la machine. Un ensemble de donnes sera donc modlis par un ensemble
de tables.
Le succs du modle relationnel auprs des chercheurs, concepteurs et utilisateurs est d la puissance et
la simplicit de ses concepts. En outre, contrairement certains autres modles, il repose sur des bases
thoriques solides, notamment la thorie des ensembles.
Les objectifs du modle relationnel :

proposer des schmas de donnes faciles utiliser,


amliorer l'indpendance logique et physique,
mettre la disposition des utilisateurs des langages de haut niveau pouvant ventuellement tre
utiliss par des non informaticiens,
optimiser les accs la base de donnes,
amliorer l'intgrit et la confidentialit,
fournir une approche mthodologique dans la construction des schmas,
Permettre un haut degr d'indpendance entre les applications (programmes, interfaces) et la
reprsentation interne des donnes (fichiers, chemins d'accs)
Etablir une base solide pour traiter les problmes de cohrence et de redondance des donnes

De faon informelle, on peut dfinir une base de donnes relationnelle comme tant une base dans laquelle
Les donnes sont organises sous forme de tableaux deux dimensions, encore appeles relations
et chaque ligne un uplet ou tuple,
les donnes sont manipules par des oprateurs de l'algbre relationnelle,
l'tat cohrent de la base est dfini par un ensemble de contraintes d'intgrit.
Le modle relationnel prsente galement de nombreux avantages dus au fait qu'il soit bas sur la thorie
des ensembles : Langage de manipulation des donnes ensemblistes grce l'algbre relationnelle et grce
des langages assertionnels qui permettent de spcifier ce que l'on souhaite obtenir sans dire comment
l'obtenir. Le SGBD est responsable de la politique d'excution des requtes.
Au modle relationnel est associe la thorie de la normalisation des relations qui permet de se dbarrasser
des incohrences au moment de la conception d'une base de donnes.
I. Concepts de base
Attribut : C'est la plus petite information atomique qui a un sens pour le domaine d'tude.
Relation : c'est un ensemble d'attributs qui caractrisent un individu (Etudiant), un objet (Filire) ou un
vnement (Composer). Elle peut tre considre comme un tableau dans lequel chaque colonne
correspond un attribut et porte un nom.
Schma de relation : Un schma de relation R, est utilis pour dcrire une relation et est not :
R(A1, A2, , An) ou R est le nom de la relation et Ai les attributs qui dcrivent la relation.

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 7 sur 33

Filire : MMI

Cl primaire d'une relation : c'est un ensemble minimum d'attributs dont la connaissance des valeurs
permet d'identifier un enregistrement unique de la relation considre. Une cl est invariante dans le
temps. Lors de la dfinition d'un schma cette cl est mise en vidence souligne.
Cls secondaires, externes ou trangres d'une relation : ce sont des attributs qui sont cl primaire de
relation et qui se retrouvent dans d'autres relations permettant ainsi d'tablir un lien entre les relations.
Lors de la dfinition d'un schma ces cls sont prcdes du symbole #.
Base de donnes relationnelles : Base de donnes dont le schma est un ensemble de schmas de
relations et dont les occurrences sont les tuples de ces relations.
Systme de gestion de bases de donnes relationnel : C'est un logiciel supportant le modle relationnel,
et qui peut manipuler les donnes avec des oprateurs relationnels.
Les contraintes d'intgrit : Une contrainte dintgrit est une proprit, invariante dans le temps qui
permet de contrler l'intgrit des donnes.
Il existe diffrents types de contraintes d'intgrit:
les contraintes lies au modle (pas de doublons dans une relation.);
les contraintes de domaine (nb_heure < 100; pas de valeur nulle pour la cl primaire);
les contraintes rfrentielles dites de cl trangre qui impose que la valeur d'attribut de la relation
r1 apparaissent comme valeur de cl dans une autre relation r2.
II. - Normalisation des relations
Pour viter des redondances, pour faciliter les modifications, pour obtenir des structures de donnes plus
claires, il est conseill de normaliser les relations. La normalisation consistera dcomposer une relation
sans perdre d'informations, partir de la notion de dpendance fonctionnelle. L'objectif de la
normalisation est d'aboutir un schma conceptuel reprsentant les entits et les associations canoniques
du monde rel.
1. Les dpendances fonctionnelles
a. Dfinition et notation
On dit qu'un attribut A est en dpendance fonctionnelle avec un autre attribut B si pour toute valeur de A,
il ne peut correspondre qu'une et une seule valeur de B et on note : AB
L'attribut se trouvant gauche de la flche est appel Source de dpendance fonctionnelle et est toujours
une cl primaire.
L'attribut se trouvant droite de la flche est appel Cible de dpendance fonctionnelle et peut tre une cl
primaire ou un attribut non cl.
Exemple : Numro_matricule Nom, Rfrence_produit libell_produit
b. Proprit des dpendances fonctionnelles
Les proprits les plus utilises sont :
La rflexivit : tout attribut ou ensemble d'attribut, dtermine lui-mme ou partie de lui-mme.
Numro_matricule Numro_matricule
Numro_matricule, Code_matire Numro_matricule,
Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 8 sur 33

Filire : MMI

Numro_matricule, Code_matire Code_matire


Numro_matricule, Code_matire Numro_matricule, Code_matire

L'augmentation : Dans une dpendance fonctionnelle, l'attribut source peut tre enrichi d'un ou de
plusieurs autres attributs sans altrer la dpendance fonctionnelle. En somme, Si AB alors, on
peut crire A,CB

Transitivit : Si AB et BC alors je peux dduire par transitivit que AC


c. Les Dpendances fonctionnelles lmentaires

Une dpendance fonctionnelle est dite lmentaire si et seulement si elle ne contient pas d'augmentation
c'est--dire si l'attribut en but dpend de toute la cl primaire et non d'une partie de la cl primaire. En
somme la dpendance fonctionnelle A,CB est lmentaire si et seulement si je ne peux avoir AB et
CB.
Exemple : Numro_matricule, Code_matire Nom n'est pas lmentaire car l'attribut Numro_matricule
permet lui tout seul de dterminer le Nom. C'est--dire qu'on peut avoir Numro_matriculeNom
Toute dpendance fonctionnelle dont la source n'est pas compose est automatiquement lmentaire.
d. Les Dpendances fonctionnelles lmentaires directes
Une dpendance fonctionnelle lmentaire est dite Directe si et seulement si elle ne contient pas de
transitivit c'est--dire si l'attribut en but dpend uniquement de la cl primaire en source et non d'un autre
attribut en but. En somme la dpendance fonctionnelle A B,C est lmentaire si et seulement si je ne
peux avoir CB et BC. c'est--dire que la dpendance fonctionnelle ne doit pas tre dductible par
transitivit.
Exemple : la dpendance fonctionnelle lmentaire Numro_matricule code_filire, libell_filire n'est
pas directe car l'attribut code_filire permet de dterminer le libell de la filire. En effet, pour un code
filire, on ne peut atteindre qu'un et un seul libell de filire.
2. Les formes normales
a La 1re forme normale
Une relation est en 1ire forme normale si tous ses constituants (attributs) sont simples, si elle admet une cl
primaire et si tous les attributs sont en dpendance fonctionnelle de la cl primaire.
Ex : Soit la relation commander(numro_bon, rfrence_produit, date_commande, libell_produit, pu,
qt_commande, Adresse_livraison, Numro_client, Nom_client). Mettez la en premire forme normale
sachant que l'adresse de livraison se compose de la ville, du quartier et de la rue.
b la 2ime forme normale
Une relation est en 2ime forme normale si elle est en 1 ire forme normale et si tous ses constituants sont en
dpendance fonctionnelle lmentaire avec la cl primaire. Cest dire que pour tre en 2 ime forme
normale, une relation doit tre en 1ire forme normale et tout attribut autre que la cl primaire ne doit pas
dpendre dune partie de la cl.
Ex : La relation commander est - elle en 2ime forme normale ? Si non, mettez la en 2ime forme normale.
c - La troisime forme normale
Une relation est en 3ime forme normale si elle est en 2 ime forme normale et si tous ses constituants sont en
dpendance fonctionnelle lmentaire directe avec la cl primaire. Cest dire, quaucune des

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 9 sur 33

Filire : MMI

dpendances fonctionnelles lmentaires de cette relation ne peut se dduire par transitivit ou encore que
chaque attribut dpend directement de la cl primaire et non dun autre attribut que la cl primaire.
Ex : La relation commander est - elle en 3ime forme normale ? Si non, mettez la en troisime forme
normale.
I. Exercice 1
Soit la base de donnes Gesco suivante
Etudiant (Matricule, Nom, Prenom, #Codfil)
Filire (Codfil, Lib_filiere, Effectif_Max)
Avoir_ Note (Matricule, Code_matiere, Date, Note)
Matire (Code_matiere, Libell)
Professeur (Num_prof, nom_prof,)
Enseigner (Code_matiere, Codfil, #Num_prof)
Rpondre par Vrai ou Faux en justifiant votre rponse
a. Un tudiant compose plusieurs fois dans une mme matire
b. A une date donne, un tudiant peut composer plusieurs fois
c. Plusieurs professeurs peuvent enseigner la mme matire dans la mme filire
d. Une matire est enseigne par un et un seul professeur
e. Une matire est enseigne dans une filire par un et un seul professeur
f. Que deviendrait la relation Enseigner si une matire tait enseigne dans une filire par plusieurs
professeurs ?
II. Exercice 2
La socit MAGENGO & fils est spcialise dans la vente de produits alimentaires, vestimentaires et
lectromnagers.
Pour chaque client, il existe un numro, un nom, et une adresse.
Les commandes sont des imprims composs d'un entte comportant un numro de client, son adresse, la
date, le numro de commande et de lignes de commandes c'est dire du dtail des produits achets avec
les quantits correspondantes.
Un produit est dcrit par un numro de produit, un libell, un prix unitaire et est stock dans diffrents
dpts, avec pour chaque dpt, une certaine quantit en stock et un seuil d'alerte. Chaque dpt a un code
et une adresse.
Il faut rappeler qu'une commande a une adresse de livraison. Une commande donne lieu des livraisons
accompagnes chacune d'un bon de livraison numrot et dat et portant le numro du bon de commande
concern. Chaque bon de livraison comporte plusieurs lignes correspondant aux produits et quantits
livrs. Ainsi, pour un produit sur un bon de commande, la quantit commande est gale la somme des
quantits livres pour ce produit sur les bons de livraison de ce bon de commande.
Une livraison s'effectue partir d'un dpt unique dont le code est report sur le bon de livraison.
Aprs avoir recueilli quelques informations relatives au domaine dtude, le chef service
approvisionnement vous propose la relation suivante :
R (Numcli, nom, adresse, Num_bonL, date_bon, qt_liv, Rf_pro, libell, Pu, Code_dp, adr_dep,
Qt_stk, Seuil, Num_bon_cde, date_bon_cde, qt_cde)
Champ
Numcli
adresse

Dsignation
Numro du client
Adresse du client

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes
Num_bonL
date_bon
qt_liv
Rf_pro
libell
Pu
Code_dp
adr_dep
Qt_stk
Seuil
Num_bon_cde
date_bon_cde
qt_cde

Page 10 sur 33

Filire : MMI

Numro du bon de livraison


Date du bon de livraison
Quantit livre
Rfrence du produit
Libell du produit
Prix unitaire du produit
Code du dpt
Adresse du dpt
Quantit en stock
Seuil de rupture
Numro du bon de commande
Date du bon de commande
Quantit dun produit command sur un bon de commande

TAF
1. Cette relation est elle en 3ime Forme normale ? Si non, normalisez la.
III. Exercice III
On souhaite crer une base de donnes concernant une entreprise. Une premire tude a mis en vidence
trois relations. Pour chacune des relations, la cl est souligne.
EMPLOYE (NumEmp, Nom, Prnom, Adresse, Tlphone, Qualification)
SERVICE (NomService, Responsable, Tlphone)
PROJET (NomProjet, DateDeb, DateFin, NumEmp)
En considrant les possibilits offertes par ce schma, rpondre aux questions suivantes en
justifiant vos rponses par rapport au modle relationnel :
Un employ peut il avoir plusieurs qualifications ?
Un employ peut il faire plusieurs projets en mme temps ?
Une personne peut elle tre responsable de plusieurs services ?
Un service peut il avoir plusieurs responsables ?

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 11 sur 33

Filire : MMI

LE LANGAGE SQL

Le langage SQL(Structured querry language) vient des travaux de recherche mens chez IBM.
Cest un langage de requte et un langage de description des donnes qui est utilis directement sur un
terminal grace lutilitaire interactif SQL ou dans un langage hote (Cobol, C, DbaseIV, Access ect)
DEFINITIONS
Requte
Question sur les donnes enregistres dans vos tables ou demande d'excution d'une action sur les
donnes. Une requte permet de runir les donnes de plusieurs tables en vue de leur utilisation comme
source de donnes pour divers traitements
Vous pouvez utiliser des requtes pour afficher, modifier et analyser des donnes de diverses faons.
Requtes de dfinition des donnes
Requte propre SQL qui contient des instructions DDL (Data Definition Language). Celles-ci vous
permettent de crer ou de modifier la structure des tables de la base de donnes.
Requtes de manipulation des donnes
Contrairement aux Requtes de dfinition des donnes, les Requtes de manipulation des donnes
permettent d'agir sur les donnes des tables et non sur leurs structures.
II - LES INSTRUCTIONS DE REQUETES DE DEFINITION DES DONNEES
Utilisez ces instructions pour crer des requtes Dfinition des donnes SQL qui crent, suppriment ou
modifient des tables.

Instruction CREATE TABLE

Cre une nouvelle table.


Syntaxe
CREATE TABLE table (<champ1>< type> [(<taille>)] [NOT NULL] [, <champ2><type> [(<taille>)]
[NOT NULL] [,,<champn> ]
L'instruction CREATE TABLE se compose des lments suivants :
lment

Description

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes
table
champ1, champ2
type
taille

Page 12 sur 33

Filire : MMI

Nom de la table crer.


Nom du ou des champs crer dans la nouvelle table. Vous devez
crer au moins un champ.
Type de donnes du champ dans la nouvelle table.
Taille du champ en caractres (pour les donnes de type Texte ou
Binaire uniquement).

Les Types de donnes


Type de donnes
BIT
MONEY
DATETIME
REAL

SMALLINT
INTEGER
DECIMAL

TEXT
IMAGE
CHAR

Description
Valeurs Yes et No ainsi que les champs qui ne peuvent contenir qu'une ou deux
valeurs.
Un entier scalaire compris entre 922 337 203 685 477,5808 et
922 337 203 685 477,5807.
Une valeur date ou heure comprise entre l'anne 100 et l'anne 9999.
Une valeur en virgule flottante simple prcision, comprise entre
3,402823E38 et 1,401298E-45 pour les valeurs ngatives et entre 1,401298E45 et 3,402823E38 pour les valeurs positives, et 0.
Un entier court compris entre 32 768 et 32 767 (voir Remarques).
Un entier long compris entre 2 147 483 648 et 2 147 483,647 (voir
Remarques).
Type de donnes numrique exact contenant des valeurs comprises entre 1028 1 et - 1028 - 1. Vous pouvez dfinir la prcision (1 - 28) ainsi que l'chelle (0 prcision dfinie). La prcision et l'chelle par dfaut sont 18 et 0
respectivement.
De zro 2.14 giga-octets au maximum.
De zro 2.14 giga-octets au maximum. Utilis pour les objets OLE.
De zro 255 caractres.

Notes
Employez l'instruction CREATE TABLE pour dfinir une nouvelle table, ses champs et ses contraintes. Si
NOT NULL est utilis dans la dfinition d'un champ, les nouveaux enregistrements devront contenir une
donne valide dans ce champ.
Exemple
CREATE TABLE produit (reference CHAR, libell CHAR, pu integer)

Instruction ALTER TABLE

Modifie une table.


Syntaxe
ALTER TABLE <table> ADD COLUMN <type><champ>[(taille)] [NOT NULL ]|
ALTER TABLE <table> ALTER COLUMN <type><champ>[(<taille>)] |
ALTER TABLE <table> DROP COLUMN <champ>
L'instruction ALTER TABLE se compose des lments suivants :
Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes
lment
table
champ

Page 13 sur 33

Filire : MMI

Description
Nom de la table modifier.
Nom du champ ajouter ou supprimer dans la table. Ou nom du champ modifier
dans la table.
Type de donne du champ.
Taille du champ en caractres (pour les donnes de type Texte ou Binaire uniquement).

type
taille
Notes

L'instruction ALTER TABLE permet de modifier une table existante de plusieurs faons. Pour ce faire,
vous pouvez :

Utiliser ADD COLUMN pour ajouter un nouveau champ la table. Spcifiez alors le nom du
champ, son type de donnes et (dans le cas de champs Texte et Binaire) sa taille (facultative). Par
exemple, l'instruction suivante ajoute un champ de texte de 25 caractres appel Notes
(Remarques) la table Employs (Employs) :
ALTER TABLE Employs ADD COLUMN Notes TEXT(25)
Si vous spcifiez l'indication NOT NULL pour un champ, les nouveaux enregistrements doivent
contenir des donnes valides dans ce champ.

Utilisez ALTER COLUMN pour changer le type de donnes d'un champ existant. Spcifiez le nom
du champ, le nouveau type de donnes et (dans le cas de champs Texte et Binaire) sa taille
(facultative). Par exemple, l'instruction suivante modifie le type de donnes du champ matricule
de la table Employs (Employs) (initialement dfini comme Entier) en un champ de texte de 10
caractres :
ALTER TABLE Employs ALTER COLUMN matricule TEXT(25)

Utiliser DROP COLUMN pour supprimer un champ. Spcifiez alors uniquement le nom du
champ.

Remarques

Vous ne pouvez pas ajouter ou supprimer plusieurs champs la fois.

Exemple
Cet exemple ajoute la table Employs un champ Salaire ayant le type Montaire.
ALTER TABLE Employees ADD COLUMN Salaire montaire
Cet exemple supprime le champ Salaire de la table Employs.
ALTER TABLE Employees DROP COLUMN Salaire

Instruction DROP

Supprime une table, procdure ou vue d'une base de donnes ou supprime un index d'une table.
Syntaxe
Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 14 sur 33

Filire : MMI

DROP TABLE <table>


L'instruction DROP se compose des lments suivants :
lment
table

Description
Nom de la table supprimer ou de la table contenant l'index supprimer.

Notes
Vous devez fermer la table avant de la supprimer.
IV - INSTRUCTIONS DML

Instruction INSERT INTO

Ajoute un ou plusieurs enregistrements une table. C'est ce qu'on appelle une requte Ajout.
Syntaxe
Requte Ajout avec plusieurs enregistrements :
Voir instruction SELECT
Requte Ajout avec un seul enregistrement :
INSERT INTO <nom de la table> [(champ1[, champ2[, ...]])]
VALUES (valeur1[, valeur2[, ...])
L'instruction INSERT INTO comprend les lments suivants :
lment
nom de la table
champ1, champ2
valeur1, valeur2

Description
Nom de la table laquelle on souhaite ajouter des enregistrements.
Noms des champs auxquels on souhaite ajouter les donnes.
Valeurs insrer dans des champs spcifiques du nouvel enregistrement.
Chaque valeur vient s'insrer dans le champ correspondant la position de la
valeur dans la liste : valeur1 s'insre dans le champ1 du nouvel
enregistrement, valeur2 dans le champ2 et ainsi de suite. Vous devez sparer
les valeurs par une virgule et encadrer les zones de texte par des guillemets
simples (' ').

Notes
Si vous ne spcifiez pas tous les champs, la valeur par dfaut ou Null s'insre la place des colonnes
manquantes. Les enregistrements sont ajouts la fin de la table.
.
Instruction UPDATE
Cre une requte de mise jour qui modifie les valeurs des champs d'une table spcifie, selon des
critres dtermins.
Syntaxe
Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 15 sur 33

Filire : MMI

UPDATE <table>
SET <champ>=<nouvellevaleur>
WHERE <critre>;
L'instruction UPDATE comprend les lments suivants :
lment
Description
Table
Nom de la table contenant les donnes que vous voulez modifier.
nouvellevaleur Expression qui dtermine la valeur insrer dans un champ dtermin des
enregistrements mis jour.
critre
Expression qui dtermine quels enregistrements seront mis jour. Seuls les
enregistrements correspondant l'expression seront mis jour.
Notes
Vous pouvez modifier simultanment plusieurs champs.

Instruction DELETE

Cre une requte Suppression qui supprime des enregistrements dans une ou dans plusieurs des tables
mentionnes dans la clause FROM qui correspond la clause WHERE.
Syntaxe
DELETE
FROM <table>
WHERE <critre>
L'instruction DELETE comprend les lments suivants :
lment Description
table
Nom de la table dans laquelle des enregistrements sont supprims.
critre Expression qui dtermine quels sont les enregistrements supprimer.
Notes
Vous pouvez utiliser DELETE pour supprimer des enregistrements impliqus dans une relation 1-n avec
d'autres tables. Les oprations de suppression en cascade entranent la suppression des enregistrements
des tables places du ct "plusieurs" de la relation lorsque l'enregistrement correspondant, plac du cot
"un" de la relation, est lui-mme supprim de la requte. Par exemple, dans la relation tablie entre les
tables Clients et Commandes, la table Clients se situe du ct "un" tandis que la table Commandes est du
ct "plusieurs". Supprimer un enregistrement dans Clients entrane la suppression des enregistrements
correspondants dans Commandes si l'option de suppression en cascade a t choisie.
Une requte de suppression efface des enregistrements dans leur intgralit et pas seulement les donnes
de certains champs. Si vous dsirez supprimer des valeurs contenues dans un champ dtermin, crez une
requte de mise jour pour remplacer les valeurs par Null.
Important

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 16 sur 33

Filire : MMI

Une fois que vous avez supprim des enregistrements l'aide d'une requte de suppression ou de
mise jour, vous ne pouvez pas annuler l'opration. Si vous dsirez savoir quels enregistrements
seront supprims ou modifis, faites d'abord une requte Slection avec les mmes critres,
examinez les rsultats obtenus, puis excutez la requte Suppression ou mise jour.
Conservez toujours des copies de sauvegarde de vos donnes. Si vous supprimez ou modifiez des
enregistrements par inadvertance, vous pourrez les rcuprer partir de vos copies de sauvegarde.

Instruction SELECT

Affiche des informations depuis la base de donnes sous la forme d'un jeu d'enregistrements.
Syntaxe
SELECT [prdicat] <spcification des champs afficher>
FROM expressiontable [, ...] [IN basededonnesexterne]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
Linstruction SELECT se compose des lments suivants :
Part
prdicat

Description
L'un des prdicats suivants : ALL, DISTINCT, DISTINCTROW ou TOP. Les
prdicats permettent de limiter le nombre d'enregistrements renvoys. Si aucun
nest prcis, ALL est choisi par dfaut.
Indique les champs qui seront slectionns dans le jeu de rsultat.

spcification des
champs afficher
expressiontable
Nom de la ou des tables contenant les donnes extraire.
basededonnesexterne Nom de la base de donnes contenant les tables de expressiontable si elles ne se
trouvent pas dans la base de donnes en cours.
REMARQUE
On peut utiliser linstruction SELECT pour ajouter un groupe denregistrements dans une table.
Syntaxe
Requte Ajout avec plusieurs enregistrements :
INSERT INTO cible [(champ1[, champ2[, ...]])] [IN basededonnesexterne]
SELECT [source.]champ1[, champ2[, ...]
FROM expressiontable
L'instruction INSERT INTO comprend les lments suivants :
lment
nom de la table
champ1, champ2

Par GBO Herv

Description
Nom de la table laquelle on souhaite ajouter des enregistrements.
Noms des champs auxquels on souhaite ajouter les donnes, s'ils sont placs
la suite de l'argument cible, ou noms des champs partir desquels on souhaite
extraire les donnes, s'ils sont placs la suite de l'argument source.
Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 17 sur 33

Filire : MMI

basededonnesexterne Chemin d'accs d'une base de donnes externe. Pour obtenir une description
du chemin, voir la clause IN.
Source
Nom de la table ou de la requte partir de laquelle on souhaite copier les
enregistrements.
expressiontable
Nom de la ou des tables partir desquelles les enregistrements sont insrs.
Cet argument peut tre constitu d'un seul nom de table, d'un nom de requte
enregistre ou d'un compos rsultant d'une opration INNER JOIN, LEFT
JOIN ou RIGHT JOIN.
valeur1, valeur2
Valeurs insrer dans des champs spcifiques du nouvel enregistrement.
Chaque valeur vient s'insrer dans le champ correspondant la position de la
valeur dans la liste : valeur1 s'insre dans le champ1 du nouvel
enregistrement, valeur2 dans le champ2 et ainsi de suite. Vous devez sparer
les valeurs par une virgule et encadrer les zones de texte par des guillemets
simples (' ').

Prdicats ALL, DISTINCT, TOP

Spcifie les enregistrements slectionns par des requtes SQL.


Syntaxe
SELECT [ALL | DISTINCT | [TOP n [PERCENT]]]
FROM table
Une instruction SELECT contenant ces prdicats se compose des lments suivants :
lment
ALL

Description
Slectionne tous les enregistrements qui remplissent les conditions de l' instruction SQL.
Les deux exemples suivants sont quivalents et renvoient tous les enregistrements de la
table Employs :
SELECT ALL * FROM Employs;
Omet tous les enregistrements pour lesquels les champs slectionns contiennent des
donnes en double. Ainsi, pour tre incluses dans les rsultats de la requte, les valeurs
de chaque champ rpertori dans l'instruction SELECT doivent tre uniques. Par
exemple, plusieurs employs rpertoris dans une table Employs (Employs) peuvent
avoir le mme nom. Si deux enregistrements contiennent Smith dans le champ Nom,
l'instruction SQL suivante ne renvoie alors qu'un seul de ces enregistrements :
SELECT DISTINCT Nom FROM Employs;

DISTINCT
Si vous omettez DISTINCT, cette requte renvoie les deux enregistrements Smith.
Si la clause SELECT contient plusieurs champs, la combinaison des valeurs de tous ces
champs doit tre unique, pour un enregistrement donn, pour que ces valeurs
apparaissent dans le rsultat.

TOP n
[PERCENT]

Le rsultat d'une requte qui utilise DISTINCT ne peut pas tre mis jour et ne reflte
pas les modifications ultrieures effectues par d'autres utilisateurs.
Renvoie un certain nombre d'enregistrements situs au dbut ou la fin d'une plage
denregistrement. Supposons que vous souhaitiez obtenir les noms des 25 premiers

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 18 sur 33

Filire : MMI

tudiants de la table tudiant :


SELECT TOP 25
nom, prnom
FROM tudiant;
Si vous ne triez pas les enregistrements, la requte renverra une srie de 25
enregistrements choisis arbitrairement parmi ceux de la table Etudiants qui remplissent
les conditions de la clause WHERE si elle existe.
Le prdicat TOP n'effectue pas de choix entre des valeurs gales. Dans l'exemple
prcdent, si, parmi les meilleurs rsultats obtenus, le vingt-cinquime et le vingtsixime ont obtenu la mme moyenne, la requte renvoie 26 enregistrements.
Vous pouvez galement utiliser le mot rserv PERCENT pour renvoyer un certain
pourcentage des premiers ou derniers enregistrements d'une plage denregistreent.
Supposons qu'au lieu des 25 meilleurs tudiants, vous souhaitiez slectionner 10 pour
cent des tudiants:
SELECT TOP 10 PERCENT
nom, prnom
FROM tudiant;
La valeur qui suit TOP doit tre un entier non sign.
TOP n'affecte pas les possibilits de mise jour de la requte.
Nom de la table contenant les enregistrements extraire.

table

Spcification des champs slectionner

Syntaxe
<spcification des champs slectionner>={ * | table.* | [table.]champ1 [AS alias1] [, [table.]champ2
[AS alias2] [, ...]]}
- utilisez lastrisque pour slectionner tous les champs de toutes les tables utilises dans la requte.
- <table>.* permet de slectionner tous les champs dune table donne.
- [<table>.]<champ> permet de lister les champs slectionner. Le nom de la table est facultatif. Il nest
ncessaire que lorsquun champ slectionner se retrouve dans deux tables utilises dans la requte.
- [AS alias1] permet chaque fois que vous utilisez des fonctions d'agrgation ou des requtes qui
renvoient des noms d'attributs ou dexpressions dattributs ambigus ou en double, de fournir un nom de
remplacement assez explicite.

Clause FROM

Spcifie les tables ou les requtes qui contiennent les champs spcifis dans l'instruction SELECT.
Syntaxe
Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 19 sur 33

Filire : MMI

SELECT listechamp
FROM expressiontable [IN basededonnesexterne]
Une instruction SELECT contenant une clause FROM se compose des lments suivants :
lment
Listechamp

Description
Noms du ou des champs extraire avec leurs alias de nom de champ, fonctions
d'agrgation SQL, prdicats de slection (ALL, DISTINCT, DISTINCTROW, ou TOP)
ou autres options d'instruction SELECT.
expressiontable Expression qui identifie la ou les tables contenant les donnes extraire. L'expression
peut tre constitue d'un seul nom de table, d'un nom de requte enregistre ou d'un
compos rsultant d'une opration INNER JOIN, LEFT JOIN ou RIGHT JOIN.
Basededonnese Nom du chemin d'accs complet d'une base de donnes externe contenant toutes les
xterne
tables dans expressiontable.
Notes
Expressiontable peut tre :
Une table : dans ce cas, les donnes utiliser dans cette requte proviennent tous de cette
table
Plusieurs tables : dans ce cas une jointure simpose. Pour exprimer cette jointure, on
peut :

Lister les tables et spcifier les conditions de jointure dans la clause where. Exemple :
afficher les nom et prnom des tudiants avec leur libell de filire.
Utiliser lopration INNER JOIN qui Fusionne les enregistrements de deux tables
lorsqu'un champ commun contient des valeurs identiques.

Syntaxe
FROM table1 INNER JOIN table2 ON table1.champ1 oprcomp table2.champ2
L'opration INNER JOIN comprend les lments suivants :
lment
Description
table1, table2
Noms des tables depuis lesquelles les enregistrements sont fusionns.
champ1, champ2 Noms des champs relis entre eux. S'ils ne sont pas numriques, les champs
doivent avoir le mme type de donnes et contenir des donnes de nature
identique, mais leurs noms peuvent tre diffrents.
Oprcomp
Tout oprateur de comparaison relationnelle tel que "=","<", ">", "<=", ">=", ou
"<>". "=," "<," ">," "<=," ">=," ou "<>." Mais gal est le plus utilis.
Pour avoir dans le jeu de rsultats, toutes les occurrences de lune des tables et seulement celles de lautre
table pour lesquelles les champs joints sont gaux, on effectue une jointure externe gauche avec
loprateur LEFT JOIN ou une jointure externe droite avec loprateur RIGHT JOIN.
Une jointure LEFT JOIN ou RIGHT JOIN peut tre imbrique dans une jointure INNER JOIN mais il est
impossible d'imbriquer une jointure INNER JOIN dans une jointure LEFT JOIN ou RIGHT JOIN
La clause FROM est requise et doit figurer la suite de toute instruction SELECT.
Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 20 sur 33

Filire : MMI

L'ordre des noms de tables dans expressiontable est sans importance.

Clause WHERE

Indique quels enregistrements des tables cites dans la clause FROM sont affects par linstruction
SELECT .
Syntaxe
SELECT listechamp
FROM expressiontable
WHERE critre
Une instruction SELECT contenant une clause WHERE se compose des lments suivants :
lment
Listechamp

Description
Nom du ou des champs extraire avec leurs alias de nom de champ,
prdicats de slection (ALL, DISTINCT, DISTINCTROW, ou TOP)
ou autres options d'instruction SELECT.
expressiontable Nom de la ou des tables contenant les donnes extraire.
Critre
Expression que les enregistrements doivent satisfaire pour tre inclus
dans le rsultat de la requte.
Une clause WHERE peut contenir jusqu' 40 expressions lies par des oprateurs logiques comme And et
Or.
Lorsque vous entrez un nom de champ contenant un espace ou un signe de ponctuation, placez ce nom
entre crochets ([ ]).
Si vous spcifiez l'argument critre, vous devez indiquer les littraux date entre deux caractres #.
Lorsque vous utilisez des valeurs littrales de type caractre ou texte, encadrez les de griffes (")
LES OPERATEURS SQL
Quelques dfinitions
Expression
Toute combinaison d'oprateurs, de constantes, de valeurs littrales, de fonctions et de noms de champs
(colonnes), de contrles et de proprits dont l'valuation fournit une valeur unique. Vous pouvez utiliser
les expressions en tant que paramtres pour un grand nombre de proprits et d'arguments d'action ; pour
dfinir des contrles calculs dans des formulaires, des tats et des pages d'accs aux donnes ; pour
dfinir des critres (conditions de recherche) ou dfinir des champs calculs dans des requtes ; et pour
fixer des conditions dans des macros. Dans un projet Microsoft Access, les expressions vous permettent de
dfinir des contraintes de validation.
Oprateur
Symbole ou mot, tel que > et Ou, qui indique l'opration effectuer sur un ou plusieurs lments.
Microsoft Access possde plusieurs classes d'oprateurs, qui sont les oprateurs arithmtiques, logiques,
de comparaison et de concatnation.
Critres

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 21 sur 33

Filire : MMI

Ensemble de conditions limitatives, par exemple = Danemark (c'est--dire gal Danemark) ou


>30000, utilises lors de la cration d'une requte ou d'un filtre pour afficher un jeu spcifique
d'enregistrements.
Les oprateurs
Oprateur Between...And
Dtermine si la valeur d'une expression est comprise dans un intervalle de valeurs donn. Vous pouvez
utiliser cet oprateur l'intrieur d'une instruction SQL
Syntaxe
<Expression> [Not] Between <valeur1> And <valeur2>
La syntaxe de l'oprateur Between...And comprend les lments suivants :
lment
Description
<expression>
Expression qui identifie le champ contenant les donnes que vous voulez valuer.
valeur1, valeur2 Expressions auxquelles vous dsirez confronter expression.
Remarques
Si la valeur de expression est comprise entre valeur1et valeur2 (incluses), l'oprateur Between...And
renvoie True ; sinon il renvoie False. Vous pouvez ajouter l'oprateur logique Not pour valuer la
condition contraire (autrement dit, savoir si expression se situe hors de l'intervalle dfini par valeur1et
valeur2).
Oprateur In
Dtermine si la valeur d'une expression est gale l'une des valeurs comprises dans une liste donne.
Syntaxe
<expression> [Not] In(<valeur1>,< valeur2>, . . .,<valeur n>)
Remarques
La syntaxe de l'oprateur In comprend les lments suivants :
lment
Description
expression
Expression qui identifie le champ contenant les donnes que vous voulez valuer.
valeur1, valeur2 Expression ou liste d'expressions que vous dsirez confronter <expression>.
Si on trouve <expression> dans la liste des valeurs, l'oprateur In renvoie la valeur True, dans le cas
contraire, il renvoie False. Vous pouvez ajouter l'oprateur logique Not pour valuer la condition contraire
(autrement dit, savoir si <expression> ne figure pas dans la liste de valeurs communique.
Par exemple, vous pouvez utiliser l'oprateur In pour dterminer quelles commandes sont expdies vers
un ensemble de rgions donnes.
SELECT *
FROM
WHERE [Rgion livraison] In ('zou','Collines','atlantique')
Oprateur Like
Compare une expression chane avec un modle dans une expression SQL.
Syntaxe
<expression> Like <modle>
Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 22 sur 33

Filire : MMI

La syntaxe de l'oprateur Like comprend les lments suivants :


lment
Description
expression
Expression SQL utilise dans une clause WHERE.
modle
Chane ou chane de caractres constante laquelle expression est compare.
Remarques
Vous pouvez utiliser l'oprateur Like pour rechercher dans un champ des valeurs correspondant au modle
que vous spcifiez. Pour modle, vous pouvez spcifier la valeur complte, par exemple, Like "Martin"),
ou vous pouvez utiliser des caractres gnriques pour rechercher un intervalle de valeurs (par exemple
Like "Ma*").
Dans une expression, vous pouvez utiliser l'oprateur Like pour comparer une valeur de champ avec une
expression de chane. Par exemple, si vous spcifiez Like "C*" dans une requte SQL, la requte renvoie
toutes les valeurs de champ commenant par la lettre C. Dans une requte Paramtre, vous pouvez
demander l'utilisateur de prciser un modle de chane rechercher.
Dans l'exemple suivant, une requte renvoie les donnes commenant par la lettre P, suivie d'une lettre
comprise entre A et F puis de trois chiffres :
Like "P[A-F]###"
Le tableau suivant vous montre comment utiliser Like pour valuer des expressions avec diffrents
modles.
Type d'occurrence
Modle Occurrence (renvoie True) Aucune occurrence (renvoie False)
Plusieurs caractres
a*a
aa, aBa, aBBBa
aBC
* ab*
abc, AABB, Xab
aZb, bac
Caractre spcial
a[*]a
a*a
aaa
Plusieurs caractres
ab*
abcdefg, abc
cab, aab
Caractre isol
a?a
aaa, a3a, aBa
aBBBa
Chiffre isol
a#a
a0a, a1a, a2a
aaa, a10a
Intervalle de caractres [a-z]
f, p, j
2, &
Hors d'un intervalle
[!a-z]
9, &, %
b, a
Autre qu'un chiffre
[!0-9]
A, a, &, ~
0, 1, 9
Combinaison
a[!b-m]# An9, az0, a99
abc, aj0
Les caractres gnriques
L'astrisque (*), le point d'interrogation (?), le signe dise (#), le point d'exclamation (!), le trait d'union (-)
et les crochets ([ ]) sont des caractres gnriques. Vous pouvez utiliser ces caractres dans des requtes et
des expressions pour inclure tous les enregistrements, noms de fichier ou autres lments dont l'intitul
commence par certains caractres ou correspond une squence particulire. Vous pouvez galement
utiliser les caractres gnriques et les caractres correspondants pour affiner une recherche dans le cadre
d'une instruction SQL.
Symbole Exemple
Utilisation
*

wh* trouve what, white et why


*at trouve cat, bat et what

Reprsente un nombre quelconque de caractres et peut tre


plac en tout point de la chane de caractres.

b?ll trouve ball, bell et bill

Reprsente un seul caractre.

1#3 trouve 103, 113, 123

Reprsente un seul chiffre.

[]

b[ae]ll trouve ball et bell mais Reprsente un seul caractre parmi ceux indiqus entre
pas bill
crochets.

b[!ae]ll trouve bill et bull mais Reprsente tout caractre ne figurant pas entre crochets.
Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 23 sur 33

Filire : MMI

pas bell ni ball


-

b[a-c]d trouve bad, bbd et bcd

Reprsente l'un des caractres de la plage indique.

Remarque
Les caractres * (astrisque), ? (point d'interrogation), # (dise), [ (crochet ouvrant) peuvent tre
considrs comme des caractres ordinaires dans une expression uniquement s'ils sont entours de
crochets.

Clause GROUP BY

La clause GROUP BY combine en un seul enregistrement les enregistrements comportant des valeurs
identiques dans la liste des champs spcifis. Une valeur de synthse est cre pour chaque enregistrement
si vous incluez une fonction d'agrgation SQL, par exemple Sum ou Count, dans l'instruction SELECT.
Syntaxe
SELECT listechamp
FROM table
WHERE critre
[GROUP BY grouplistechamp]
Une instruction SELECT contenant une clause GROUP BY se compose des lments suivants :
lment
listechamp

Description
Noms du ou des champs extraire avec leurs alias de nom de champ,
fonctions d'agrgation SQL, prdicats de slection (ALL, DISTINCT
ou TOP) ou autres options d'instruction SELECT.
Table
Nom de la table contenant les enregistrements extraire. Pour plus
d'informations, reportez-vous la rubrique relative la clause FROM.
Critre
Critres de slection. Si l'instruction contient une clause WHERE, SQL
regroupe les valeurs aprs avoir appliqu les conditions WHERE aux
enregistrements.
listechampgroupe Noms des champs (10 au maximum) utiliss pour regrouper les
enregistrements. L'ordre des noms de champs dans listechampgroupe
dtermine les niveaux de regroupement, du plus lev au plus bas.
Notes
La clause GROUP BY est facultative.
Les valeurs de synthse sont omises si l'instruction SELECT ne contient aucune fonction d'agrgation
SQL.
Les valeurs Null des champs GROUP BY sont regroupes et ne sont pas omises. Toutefois, les valeurs
Null ne sont values dans aucune fonction d'agrgation SQL.
Utilisez la clause WHERE pour exclure les lignes que vous ne souhaitez pas regrouper
Tous les champs de la liste de champs SELECT doivent tre inclus dans la clause GROUP BY ou, sous
forme d'arguments, dans une fonction d'agrgation SQL.
Les fonctions d'agrgation
Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 24 sur 33

Filire : MMI

Fonctions First et Last


Renvoient la valeur dun champ du premier ou du dernier enregistrement contenu dans le jeu de rsultats
renvoy par une requte.
Syntaxe
First(<expression>)
Last(<expression>)
L'argument <expression> reprsente une expression de chane qui identifie le champ contenant les
donnes que vous souhaitez utiliser ou une expression qui excute un calcul sur les donnes contenues
dans ce champ. Les oprandes associs <expression> peuvent comprendre le nom d'un champ de table,
une constante ou une fonction (qui peut tre soit intrinsque, soit dfinie par l'utilisateur, l'exclusion de
toute autre fonction d'agrgation SQL).
Fonction Avg
Calcule la moyenne arithmtique d'un ensemble de valeurs contenues dans un champ spcifi dans une
requte.
Syntaxe
Avg(<expression>)
L'argument <expression> reprsente une expression de chane qui identifie le champ contenant les
donnes numriques dont vous souhaitez calculer la moyenne ou une expression qui excute un calcul sur
la base des donnes contenues dans ce champ. Les oprandes associs <expression> peuvent
comprendre le nom d'un champ de table, une constante ou une fonction (qui peut tre soit intrinsque, soit
dfinie par l'utilisateur, l'exclusion de toute autre fonction d'agrgation SQL).
Remarques
La moyenne calcule par Avg est la moyenne arithmtique (la somme des valeurs divise par le nombre de
valeurs). Vous pouvez utiliser Avg, par exemple, pour calculer le cot moyen du transport des
marchandises.
La fonction Avg n'intgre aucun champ Null ses calculs.
Fonction Count
Calcule le nombre d'enregistrements renvoys par une requte.
Syntaxe
Count(<expression>)
L'argument <expression> reprsente une expression de chane qui identifie le champ contenant les
donnes dont vous souhaitez obtenir le nombre ou une expression qui excute un calcul sur les donnes
contenues dans ce champ. Les oprandes associs <expression> peuvent comprendre le nom d'un champ
de table ou une fonction (qui peut tre soit intrinsque, soit dfinie par l'utilisateur, l'exclusion de toute
autre fonction d'agrgation SQL). Vous pouvez compter toutes sortes de donnes, y compris les donnes
de type text.
Remarques
Vous pouvez utiliser la fonction Count pour compter le nombre d'enregistrements prsents dans une
requte sous-jacente. Par exemple, vous pouvez utiliser la fonction Count pour compter le nombre de
commandes expdies vers un pays donn.

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 25 sur 33

Filire : MMI

Bien que largument <expression> puisse excuter un calcul sur un champ, la fonction Count ne fait que
dnombrer les enregistrements. Le type des valeurs contenues dans les enregistrements est sans
importance.
La fonction Count ne compte pas les enregistrements possdant des champs Null sauf si largument
<expression> est remplac par le caractre gnrique astrisque (*). Si vous utilisez un astrisque, la
fonction Count calcule le nombre total des enregistrements en incluant ceux qui contiennent des champs
Null. Count(*) s'excute beaucoup plus rapidement que Count([nom_de_colonne]). L'astrisque doit tre
entr sans apostrophes (' ').
Si <expression> identifie plusieurs champs, la fonction Count ne compte un enregistrement que si au
moins un de ses champs nest pas Null. Si tous les champs spcifis sont Null, l'enregistrement n'est pas
comptabilis. Les noms des champs doivent tre spars par une perlute (&).
Fonction Sum
Renvoie la somme d'une srie de valeurs contenues dans un champ spcifi dans une requte.
Syntaxe
Sum(<expression>)
L'argument <expression> reprsente une expression de chane qui identifie le champ contenant les
donnes numriques dont vous souhaitez calculer la somme ou une expression qui excute un calcul sur la
base des donnes contenues dans ce champ. Les oprandes associs <expression> peuvent comprendre
le nom d'un champ de table, une constante ou une fonction (qui peut tre soit intrinsque, soit dfinie par
l'utilisateur, l'exclusion de toute autre fonction d'agrgation SQL).
Remarques
La fonction Sum totalise les valeurs contenues dans un champ. Par exemple, vous pouvez utiliser la
fonction Sum pour dterminer le cot total des frais de transport.
La fonction Sum ignore les enregistrements contenant des champs Null.
Fonctions Min et Max
Renvoient la valeur minimale ou maximale d'une srie de valeurs contenues dans un champ spcifi dans
une requte.
Syntaxe
Min(<expression>)
Max(<expression>)
L'argument <expression> reprsente une expression de chane qui identifie le champ contenant les
donnes que vous souhaitez valuer ou une expression qui excute un calcul sur les donnes contenues
dans ce champ. Les oprandes associs <expression> peuvent comprendre le nom d'un champ de table,
une constante ou une fonction (qui peut tre soit intrinsque, soit dfinie par l'utilisateur, l'exclusion de
toute autre fonction d'agrgation SQL).
Remarques
Vous pouvez utiliser les fonctions Min et Max pour dterminer les valeurs les plus basses et les plus
leves contenues dans un champ en fonction du mode dagrgation spcifi. Par exemple, vous pouvez
utiliser ces fonctions pour renvoyer les cots de transport des marchandises les plus bas et les plus levs.
Si aucune agrgation n'est spcifie, toute la table est utilise.

Clause HAVING

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 26 sur 33

Filire : MMI

Spcifie les enregistrements regroups afficher dans une instruction SELECT dote d'une clause
GROUP BY. Une fois que GROUP BY a regroup les enregistrements, HAVING affiche tous les
enregistrements qui ont t regroups par la clause GROUP BY et qui rpondent aux critres de la clause
HAVING.
Syntaxe
SELECT listechamp
FROM table
WHERE critreslection
GROUP BY listechampgroupe
[HAVING critregroupe]
Une instruction SELECT contenant une clause HAVING se compose des lments suivants :
lment
listechamp

Description
Noms du ou des champs extraire avec leurs alias de nom de champ, fonctions
d'agrgation SQL, prdicats de slection (ALL, DISTINCT ou TOP) ou autres
options d'instruction SELECT.
Table
Nom de la table contenant les enregistrements extraire. Pour plus d'informations,
reportez-vous la rubrique relative la clause FROM.
critreslection Critres de slection. Si l'instruction contient une clause WHERE, le moteur de base
de donnes Microsoft Jet regroupe les valeurs aprs avoir appliqu les conditions
WHERE aux enregistrements.
listechampgroupe Noms des champs (10 au maximum) utiliss pour regrouper les enregistrements.
L'ordre des noms de champs dans listechampgroupe dtermine les niveaux de
regroupement, du plus lev au plus bas.
critregroupe
Expression qui dtermine quels sont les enregistrements regroups afficher.
Notes
La clause HAVING est facultative.
HAVING est similaire WHERE, qui dtermine quels sont les enregistrements slectionner. Une fois
que GROUP BY a regroup les enregistrements, HAVING dtermine quels sont les enregistrements qui
seront affichs.
Une clause HAVING peut contenir jusqu' 40 expressions lies par des oprateurs logiques comme And et
Or.

Clause ORDER BY

Trie, par ordre croissant ou dcroissant, les enregistrements rsultants d'une requte en fonction du ou des
champs spcifis.
Syntaxe
SELECT listechamp
FROM table
WHERE critresslection
[ORDER BY champ1 [ASC | DESC ][, champ2 [ASC | DESC ]][, ...]]]
Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 27 sur 33

Filire : MMI

Une instruction SELECT contenant une clause ORDER BY se compose des lments suivants :
lment
listechamp

Description
Noms du ou des champs extraire avec leurs alias de nom de champ,
fonctions d'agrgation SQL, prdicats de slection (ALL, DISTINCT,
ou TOP) ou autres options d'instruction SELECT.
Table
Nom de la table contenant les enregistrements extraire. Pour plus
d'informations, reportez-vous la rubrique relative la clause FROM.
critreslection Critres de slection. Si l'instruction contient une clause WHERE, le
moteur de base de donnes Microsoft Jet trie les valeurs aprs avoir
appliqu les conditions WHERE aux enregistrements.
champ1,
Noms des champs sur lesquels doit porter le tri.
champ2
Notes
La clause ORDER BY est facultative. Mais si vous n'incluez pas ORDER BY, les donnes sont affiches
sans tre tries.
L' ordre de tri par dfaut est l'ordre croissant (de A Z et de 0 9). Dans les deux exemples suivants, les
employs sont tris sur leur nom :
SELECT Name, FirstName
FROM Employs
ORDER BY FirstName;
SELECT Name, FirstName
FROM Employs
ORDER BY FirstName ASC;
Pour effectuer un tri par ordre dcroissant (de Z A et de 9 0), ajoutez le mot rserv DESC la fin de
chaque champ que vous souhaitez trier par ordre dcroissant. Dans les deux exemples suivants, les
employs sont slectionns, puis tris par ordre dcroissant :
SELECT Name, Salaris
FROM Employs
ORDER BY Salaris DESC, Name;
Si vous spcifiez un champ contenant des donnes de type Memo ou OLE Object dans la clause ORDER
BY, une erreur se produit. Le moteur de base de donnes Microsoft Jet ne peut pas trier des champs
contenant ces types de donnes.
ORDER BY est gnralement le dernier lment d'une instruction SQL.
Vous pouvez inclure des champs supplmentaires dans une clause ORDER BY. Les enregistrements sont
tris tout d'abord en fonction du premier champ spcifi aprs ORDER BY. Ensuite, les enregistrements
pour lesquels ce champ contient des valeurs identiques sont tris en fonction de la valeur du second champ
spcifi, et ainsi de suite.
IV - SOUS-REQUETES SQL
Une sous-requte se compose d'une instruction SELECT imbrique dans une instruction SELECT,
SELECT...INTO, INSERT...INTO, DELETE ou UPDATE, ou encore dans une autre sous-requte.

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 28 sur 33

Filire : MMI

Syntaxe
Vous pouvez utiliser trois variantes de syntaxe pour crer une sous-requte :
comparaison [ANY | ALL | SOME] (instructionsql)
expression [NOT] IN (instructionsql)
[NOT] EXISTS (instructionsql)
Une sous-requte comprend les lments suivants :
lment
Description
comparaison
Expression et oprateur de comparaison qui compare l'expression avec les
rsultats de la sous-requte.
expression
Expression que l'on recherche dans le jeu de rsultats de la sous-requte.
instructionsql
Instruction SELECT respectant le format et les rgles conventionnelles des autres
instructions SELECT. Elle doit tre encadre par des parenthses.
Notes
Vous pouvez utiliser une sous-requte au lieu d'une expression, dans la liste de champs d'une instruction
SELECT ou dans une clause WHERE ou HAVING. Dans une sous-requte, vous utilisez une instruction
SELECT pour fournir un jeu d'une ou plusieurs valeurs spcifiques valuer dans l'expression de la clause
WHERE ou HAVING.
Utilisez les prdicats ANY ou SOME (l'effet est identique) pour rechercher par comparaison les
enregistrements de la requte principale en correspondance avec n'importe quel enregistrement de la sousrequte. Dans l'exemple suivant, la requte renvoie tous les produits (products) dont le prix unitaire
(UnitPrice) est suprieur au prix de n'importe quel produit vendu avec une remise (discount) de 25 pour
cent ou davantage.
SELECT * FROM Products
WHERE UnitPrice > ANY
(SELECT UnitPrice FROM OrderDetails
WHERE Discount >= .25);
Utilisez le prdicat ALL pour rechercher par comparaison les enregistrements de la requte principale en
correspondance avec tous les enregistrements de la sous-requte. Si dans l'exemple prcdent, vous avez
remplac ANY par ALL, la requte ne renvoie que les produits dont le prix unitaire est suprieur aux prix
de tous les produits vendus avec une remise de 25 pour cent ou davantage. La recherche est plus
restrictive.
Utilisez le prdicat IN pour rechercher les enregistrements de la requte principale pour lesquels on trouve
des enregistrements avec une valeur identique dans la sous-requte. Dans l'exemple suivant, la requte
renvoie tous les produits vendus avec une remise de 25 pour cent ou davantage.
SELECT * FROM Products
WHERE ProductID IN
(SELECT ProductID FROM OrderDetails
WHERE Discount >= .25);
Inversement, vous pouvez utiliser NOT IN pour rechercher les enregistrements de la requte principale
pour lesquels on ne trouve aucun enregistrement avec une valeur identique dans la sous-requte.
Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 29 sur 33

Filire : MMI

Utilisez le prdicat EXISTS (avec le mot rserv facultatif NOT) dans des comparaisons vrai/faux pour
dterminer si la sous-requte renvoie des enregistrements.
Vous pouvez galement utiliser des alias de nom de table dans une sous-requte, pour faire rfrence des
tables rpertories dans une clause FROM situe hors de la sous-requte. Dans l'exemple suivant, la
requte renvoie les noms des employs dont les salaires sont suprieurs ou gaux au salaire moyen de
l'ensemble des employs ayant la mme qualit. L'alias affect la table Employs est "T1" :
SELECT Name
First name, Title, Salaris
FROM Employs AS T1
WHERE Salaris >=
(SELECT Avg(Salaris)
FROM Employs
WHERE T1.Title = Employs.Title) Order by Title;
Dans l'exemple prcdent, le mot rserv AS est facultatif.
Certaines sous-requtes sont autorises dans les requtes croises mais uniquement comme prdicats
(ceux de la clause WHERE). Les sous-requtes ne sont pas autorises dans les requtes croises pour ce
qui concerne les sorties (dans la liste de SELECT).

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 30 sur 33

Filire : MMI

EXERCICE
Soit la base de donnes GESCO contenant les relations suivantes :
Etudiant (Numat , Nom, Prnom, Codfil, Libfil, Effectif)
Avoir_ Note (Numat, Codmat, Date, Libmat, Coefficient, Codfil, Note)
Professeur (Numprof, Nom, Prnom, Adresse)
Enseigner (Numprof, Nomprof, Prnomprof, Codmat, Libmat, Codfil)
1 Mettez en 3me forme normale, les relations qui ne le sont pas sachant que :
Le coefficient dune matire dpend de la filire dans laquelle elle est enseigne,
Une matire dans une filire est enseigne par un et un seul professeur
2 Aprs avoir mis les relations en 3 me forme normale, crivez en langage algbrique et en SQL les
requtes suivantes :

Afficher les nom et prnom de tous les tudiants,

Afficher le n matricule, le code de la matire et les notes de tous les tudiants,

Afficher les n des professeurs qui enseignent dans la filire dont le code est BF1,

Afficher le n matricule, le code de la matire et les notes des tudiants qui ont une note
suprieure 11,

Afficher les numro matricule des tudiants qui ont une note infrieure 10 dans la matire dont le
code est ALG

Afficher les numro des professeurs qui enseignent dans la filire dont le code est APIG2

Afficher le code de toutes les matires dont le coefficient en FCG2 est gal 2

Afficher le nom et le code de la filire de ltudiant dont le matricule est 001

Afficher les nom et les prnoms des professeurs qui enseigne la matire dont le code est ANG,

Afficher les codes de toutes les matires enseignes par le professeur dont le nom est DU PONT,

Afficher les nom et prnom des tudiants qui ont eu 12 dans la matire dont le code est ANG,

Afficher le n matricule et le nom de tous les tudiants qui ont une note au moins dans une matire
dont le coefficient est suprieur 2 dans leur filire.

Afficher le n matricule de tous les tudiants qui ont eu au moins 13 dans la matire dont le libell
est FRANAIS.

Afficher leffectif de la filire de ltudiant dont le prnom est GUTTEMBERT,

Par GBO Herv

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 31 sur 33

Filire : MMI

Afficher les nom et prnom des tudiants qui ont une note suprieur ou gal 12 dans la matire

dont le libell est ANGLAIS.

Afficher les nom et prnom des professeurs et les libells des matires quils enseignent.

Afficher les libells des matires enseignes par le professeur dont le nom est GODRO et les
libells des filires dans lesquelles il les enseigne,
Afficher le nom et le libell de la filire de tous les tudiants qui ont eu la note 15 dans une matire

dont le coefficient dans la filire est suprieur 2,


Afficher toutes les notes attribues par le professeur dont le nom est MAGENGO et les noms des

tudiants auxquels ces notes ont t attribues,


Afficher les noms des professeurs et les notes qu'ils ont attribues ltudiant dont le prnom est

JOLIETTE ainsi que les libells des matires,

Afficher les nom et prnom des tudiants qui ont compos dans toutes les matires,

Afficher les nom et prnom des tudiants qui n'ont compos dans aucune matire,

Afficher pour chaque tudiant ayant compos au moins une fois, son nom et son prnom, les notes
obtenues et les libells ainsi que les coefficients des matires, les nom et prnoms des professeurs
ayant attribu ces notes.

NB : Pour chaque relation cre, prsenter ses enregistrements dans un tableau

EXEMPLES D'ENREGISTREMENTS

MATIERES
Codmat
FRA
ANG
ALG
IF

LibMat
Franais
Anglais
Algorithme
Info Fond

Par GBO Herv

FILIERES
CodFil
BF1
Apig2
SB1
Fcg2

Libfil

Effectif
re

Bq et finance 1 AN
Info de gest 1 re AN
Secrt bureautique 1re AN
Compta gest 2me AN

Tl : 95564920 /97188083/90912453

24
31
30
75

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 32 sur 33

COEFFICIENT

Filire : MMI

ENSEIGNER

Cod fil

Cod mat

coef

BF1
BF1
BF1
APIG2
APIG2
APIG2
SB1
SB1
SB1
FCG2
FCG2
FCG2

FRA
ANG
IF
FRA
ANG
ALG
FRA
ANG
IF
FRA
ANG
IF

2
3
3
1
2
4
4
3
2
2
2
3

Numprof
001
001
002
002
002
002
003
003
003
003

Codmat
IF
ANG
IF
ALG
FRA
FRA
IF
ANG
ANG
FRA

Codfil
BF1
APIG2
SB1
APIG2
BF1
SB1
FCG2
SB1
BF1
APIG2

PROFESSEUR
Numprof
001
002
003

Nom
DJANGONI
MAGENGO
DUPONT

Prnom
Mandelai
Guttembert
Dohmi

Adresse
Cotonou
Porto
Dohmikro

ETUDIANT

NUMAT
001
002
003
004
005
006
007
008

Nom
Magengo
Jolie
Grand
PETIT
GROS
BLANC
MAHIGH
GROS

Par GBO Herv

Prnom
Guttenbert
Joliette
Petit
Marteau
Cailloux
Lenoir
Bith
Schard

Codfil
APIG2
SB1
BF1
APIG2
FCG2
FCG2
APIG2
APIG2

Tl : 95564920 /97188083/90912453

e-mail : gapherve@yahoo.fr

Bases de donnes

Page 33 sur 33

Filire : MMI

Avoir_Note
NUMAT
001
001
001
002
002
002
003
003
004
004
007
007

Par GBO Herv

Codmat
FRA
ANG
ALG
FRA
ANG
IF
FRA
IF
ALG
FRA
ALG
ANG

Date
01-02-00
02-02-00
03-02-00
01-02-00
05-02-00
02-02-00
02-02-00
06-05-01
03-02-01
07-02-00
03-02-00
02-02-00

Tl : 95564920 /97188083/90912453

Note
14
17
15
07
12
12
15
13
12
10
03
12

e-mail : gapherve@yahoo.fr