SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
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).
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
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
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.
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#
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 
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 
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.
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:
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
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
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
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.
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:
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 ;
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
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
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,
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
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
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
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.
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> ;
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
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;
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.
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.
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

Mais conteúdo relacionado

Mais procurados

Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETLLilia Sfaxi
 
Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...
Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...
Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...ATPENSC-Group
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+ziedCours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+ziedWajdi Ben Helal
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Exercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrigeExercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrigeWajihBaghdadi1
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfsalah fenni
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfFadouaBouafifSamoud
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniShellmates
 

Mais procurados (20)

Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETL
 
Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...
Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...
Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+ziedCours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
 
TP 1 ACCESS
TP 1 ACCESSTP 1 ACCESS
TP 1 ACCESS
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI
 
Exercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrigeExercices sur-python-turtle-corrige
Exercices sur-python-turtle-corrige
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdf
 
TP 2 ACCESS
TP 2 ACCESSTP 2 ACCESS
TP 2 ACCESS
 
01 correction-td smia-s2-info2
01 correction-td smia-s2-info201 correction-td smia-s2-info2
01 correction-td smia-s2-info2
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Chapitre 01 - Notions de base
Chapitre 01 - Notions de baseChapitre 01 - Notions de base
Chapitre 01 - Notions de base
 
Cours de c
Cours de cCours de c
Cours de c
 
Système d'exploitation
Système d'exploitationSystème d'exploitation
Système d'exploitation
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdf
 
Récursivité
RécursivitéRécursivité
Récursivité
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
Python
PythonPython
Python
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
 

Destaque

Séries de-révision-4-eco
Séries de-révision-4-ecoSéries de-révision-4-eco
Séries de-révision-4-ecoLassaad Saidi
 
Exercices pascal tous les chapitres
Exercices pascal tous les chapitresExercices pascal tous les chapitres
Exercices pascal tous les chapitresborhen boukthir
 
Résumé javascript bac info
Résumé javascript bac infoRésumé javascript bac info
Résumé javascript bac infoborhen boukthir
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmationborhen boukthir
 
Cours tic complet
Cours tic completCours tic complet
Cours tic completsofixiito
 
éNoncés+corrections bac2008
éNoncés+corrections bac2008éNoncés+corrections bac2008
éNoncés+corrections bac2008Morom Bil Morom
 
Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)salah fenni
 
Ch5 base de données
Ch5   base de donnéesCh5   base de données
Ch5 base de donnéesWael Ismail
 
Polycop td access 2007 facturation
Polycop td access 2007  facturationPolycop td access 2007  facturation
Polycop td access 2007 facturationgkaterynne
 
Sujet bac info 2012 g1, g2 et g3 avec correction
Sujet bac info 2012 g1, g2 et g3 avec correctionSujet bac info 2012 g1, g2 et g3 avec correction
Sujet bac info 2012 g1, g2 et g3 avec correctionborhen boukthir
 
Support de cours ACCESS
Support de cours ACCESSSupport de cours ACCESS
Support de cours ACCESSChingongou ­
 

Destaque (20)

Séries de-révision-4-eco
Séries de-révision-4-ecoSéries de-révision-4-eco
Séries de-révision-4-eco
 
Exercices pascal tous les chapitres
Exercices pascal tous les chapitresExercices pascal tous les chapitres
Exercices pascal tous les chapitres
 
TP 3 ACCESS
TP 3 ACCESSTP 3 ACCESS
TP 3 ACCESS
 
Résumé javascript bac info
Résumé javascript bac infoRésumé javascript bac info
Résumé javascript bac info
 
Cours php bac info
Cours php bac infoCours php bac info
Cours php bac info
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmation
 
Correction
CorrectionCorrection
Correction
 
Cours tic complet
Cours tic completCours tic complet
Cours tic complet
 
éNoncés+corrections bac2008
éNoncés+corrections bac2008éNoncés+corrections bac2008
éNoncés+corrections bac2008
 
Mes devoirs 4 si
Mes devoirs 4 siMes devoirs 4 si
Mes devoirs 4 si
 
Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)
 
Ch5 base de données
Ch5   base de donnéesCh5   base de données
Ch5 base de données
 
Formation HTML pour Bac Informatique
Formation HTML pour Bac InformatiqueFormation HTML pour Bac Informatique
Formation HTML pour Bac Informatique
 
Polycop td access 2007 facturation
Polycop td access 2007  facturationPolycop td access 2007  facturation
Polycop td access 2007 facturation
 
Resumer sur les tris
Resumer sur les trisResumer sur les tris
Resumer sur les tris
 
Résumer arithmétique
Résumer arithmétiqueRésumer arithmétique
Résumer arithmétique
 
Sujet bac info 2012 g1, g2 et g3 avec correction
Sujet bac info 2012 g1, g2 et g3 avec correctionSujet bac info 2012 g1, g2 et g3 avec correction
Sujet bac info 2012 g1, g2 et g3 avec correction
 
DCT1 4SI
DCT1  4SIDCT1  4SI
DCT1 4SI
 
bac info : série récursivité
bac info : série récursivitébac info : série récursivité
bac info : série récursivité
 
Support de cours ACCESS
Support de cours ACCESSSupport de cours ACCESS
Support de cours ACCESS
 

Semelhante a Cours complet Base de donne Bac

Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de donnéesAbdoulaye Dieng
 
analysez-des-donnees-avec-excel documen.pdf
analysez-des-donnees-avec-excel documen.pdfanalysez-des-donnees-avec-excel documen.pdf
analysez-des-donnees-avec-excel documen.pdfLeonLovensky
 
Formation access
Formation accessFormation access
Formation accessbouyahia76
 
INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3PGambette
 
Cours Big Data Chap6
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6Amal Abid
 
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDBSGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDBRomain Cambien
 
Comment alimenter une liste déroulante dans Word avec une liste Excel ?
Comment alimenter une liste déroulante dans Word avec une liste Excel ?Comment alimenter une liste déroulante dans Word avec une liste Excel ?
Comment alimenter une liste déroulante dans Word avec une liste Excel ?Votre Assistante
 
Jabes 2008 - Atelier 4 : périodiques en ligne, signalement et accès. Présenta...
Jabes 2008 - Atelier 4 : périodiques en ligne, signalement et accès. Présenta...Jabes 2008 - Atelier 4 : périodiques en ligne, signalement et accès. Présenta...
Jabes 2008 - Atelier 4 : périodiques en ligne, signalement et accès. Présenta...ABES
 
Réalisation d'un mashup de données avec DSS de Dataiku - Première partie
Réalisation d'un mashup de données avec DSS de Dataiku - Première partieRéalisation d'un mashup de données avec DSS de Dataiku - Première partie
Réalisation d'un mashup de données avec DSS de Dataiku - Première partieGautier Poupeau
 

Semelhante a Cours complet Base de donne Bac (20)

09coursaccess
09coursaccess09coursaccess
09coursaccess
 
coursaccess.pdf
coursaccess.pdfcoursaccess.pdf
coursaccess.pdf
 
Cours access
Cours accessCours access
Cours access
 
Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de données
 
analysez-des-donnees-avec-excel documen.pdf
analysez-des-donnees-avec-excel documen.pdfanalysez-des-donnees-avec-excel documen.pdf
analysez-des-donnees-avec-excel documen.pdf
 
Formation access
Formation accessFormation access
Formation access
 
INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3
 
PHP #6 : mysql
PHP #6 : mysqlPHP #6 : mysql
PHP #6 : mysql
 
Cours listesdiapo
Cours listesdiapoCours listesdiapo
Cours listesdiapo
 
Cours listes
Cours listesCours listes
Cours listes
 
Le langage sql
Le langage sqlLe langage sql
Le langage sql
 
Le langage sql
Le langage sqlLe langage sql
Le langage sql
 
Cours Big Data Chap6
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6
 
Sgbdr
SgbdrSgbdr
Sgbdr
 
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDBSGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
 
Comment alimenter une liste déroulante dans Word avec une liste Excel ?
Comment alimenter une liste déroulante dans Word avec une liste Excel ?Comment alimenter une liste déroulante dans Word avec une liste Excel ?
Comment alimenter une liste déroulante dans Word avec une liste Excel ?
 
Cours3 gdm sql
Cours3 gdm sqlCours3 gdm sql
Cours3 gdm sql
 
Jabes 2008 - Atelier 4 : périodiques en ligne, signalement et accès. Présenta...
Jabes 2008 - Atelier 4 : périodiques en ligne, signalement et accès. Présenta...Jabes 2008 - Atelier 4 : périodiques en ligne, signalement et accès. Présenta...
Jabes 2008 - Atelier 4 : périodiques en ligne, signalement et accès. Présenta...
 
Résumer informatique
Résumer informatiqueRésumer informatique
Résumer informatique
 
Réalisation d'un mashup de données avec DSS de Dataiku - Première partie
Réalisation d'un mashup de données avec DSS de Dataiku - Première partieRéalisation d'un mashup de données avec DSS de Dataiku - Première partie
Réalisation d'un mashup de données avec DSS de Dataiku - Première partie
 

Último

SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 

Último (20)

SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 

Cours complet Base de donne Bac

  • 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