Documente Academic
Documente Profesional
Documente Cultură
DOrganisation &
Exploitation des
donnes
1
S.Serrhini
Introduction
2
Objectifs
Contenu du cours
Organisation du cours
Supports
valuation
S.Serrhini
Introduction
3
OBJECTIFS :
Introduction
CONTENU DU COURS :
I. Modles et langages :
Conception dun schma conceptuel et
relationnel
Langage de manipulation et dinterrogation
des donnes
5
Introduction
SUPPORTS :
Thorie :
syllabus S.SERRHINI
(version papier + en ligne sur EV)
copies transparents
Laboratoires :
cahier de laboratoire
(Au fur et mesure sur lE.V.)
S.Serrhini
6 Introduction
EVALUATION :
Thorie :
examen crit en juin/septembre
Interrogations ???
Laboratoires :
valuation continue
S.Serrhini
Le niveau
Organisationnel
MRD
7
S.Serrhini
9
M.C.D. Vers le M.R.D.
Pour passer dun M.C.D. de type Entit-Association
un Modle Relationnel de Donnes (MRD),
il faut appliquer 5 Rgles:
Association N M : Prospecte
Association 1 1 : Correspond
S.Serrhini
Rgle 1 :
Transcription des entits
11
Proprits Attributs
MCD MRD
S.Serrhini
Rgle 1 :
12
Transcription des entits
Cl primaire:
Dans une table relationnelle, il ne peut y avoir deux
lignes identiques.
Rgle 2 :
associations N M
13
Associations N M Prospecte
DEPARTEMENT REPRESENTANT
1000 Bruxelles 500 Cuypers Eric
1070 Anderlecht 501 Gravelle Stephane
4000 Lige
5300 Andenne
1000 Bruxelles 500 Cuypers Eric
1070 Anderlecht 500 Cuypers Eric
4000 Lige 501 Gravelle Stephane
5300 Andenne 501 Gravelle Stephane
14
associations N M
Associations N M
REPRESENTANT DEPARTEMENT
1,N 1,N
NumReprsentant Prospecter
NumDpartement
Nom
MCD Nom
MRD
REPRESENTANT PROSPECTER DEPARTEMENT
1 N
NumReprsentant 1
#NumReprsentant N NumDpartement
Nom #NumDpartement Nom
S.Serrhini
Rgle 3 :
15
Associations porteuses de proprits
Associations porteuses de proprits. Concerne
COMMANDE PRODUIT
C1 1/1/2004 P1 Disquette 5 Euro
C2 15/6/2004 P2 Clavier 25 Euro
P3 CD 10 Euro
Proprit
C1 P1 4
C1 P2 1 Unique
C2 P2 2
S.Serrhini
Rgle 3 :
16
Associations porteuses de proprits
Associations porteuses de proprits
PRODUIT
COMMANDE
1,N Concerner 0,N
Rfrence
NumCommande Quantit
Dsignation
Date
Prix
CONCERNER PRODUIT
COMMANDE
1 N
N 0
#NumCommande Rfrence
NumCommande
#Rfrence Dsignation
Date
Quantit Prix
S.Serrhini
Rgle 4 :
17
Associations 1 N
Association 1 N Effectuer
CLIENT COMMANDE
100 DUPONT Alain C1 01/1/2004
101 DURAND Eric C2 15/6/2004
102 MARTIN Nadine C3 12/8/2004
C4 20/9/2004
100 DUPONT Alain C1 01/1/2004
100 DUPONT Alain C2 15/6/2004
101 DURAND Eric C3 12/8/2004
101 DURAND Eric C4 20/9/2004
Rgle 4 :
18
Associations 1 N
Cl trangre:
Un attribut est dit Cl trangre dans une table lorsquil
est cl primaire dans une autre.
Pour lidentifier on lui ajoute un signe distinctif # .
Rgle 4 :
19
Associations 1 N
Associations 1 N.
CLIENT COMMANDE
0,N 1,1
Effectuer
NumClient NumCommande
Nom Date
Prnom
MCD ...
MRD
CLIENT
COMMANDE
1
NumClient
NumCommande
Nom N Date
Prnom
#NumClient
...
S.Serrhini
Rgle 5 :
20 Associations 1 1
Associations 1 1 Correspond
COMMANDE FACTURE
C1 01/1/2004 F1 2/1/2004
C2 15/6/2004 F2 16/6/2004
C1 1/1/2004 F1 2/1/2004
C2 15/6/2004 F2 16/6/2004
C1 1/1/2004 F1 F1 2/1/2004 C1
C2 15/6/2004 F2 F2 16/6/2004 C2
Cls trangres
S.Serrhini
Rgle 5 :
21
Associations 1 1
Associations 1 1.
MCD
MRD
FACTURE COMMANDE
1 1
NumFacture NumCommande
Date Date
#NumCommande 1
1 #NumFacture
S.Serrhini
Tableau comparatif
22
MCD MRD
Identifiant Cl primaire
Proprit Attribut/champ
Entit Relation/table
Relation/table (pas
Association
toujours)
Occurrence Occurrence
S.Serrhini
MRD : Exercice 1
23
MRD : Exercice 1
24
NumClient Correspondre
NumFacture Rfrence
Nom Date Dsignation
Prnom Prix
0,N
Adresse 0,1
CodePostal Concerner
Ville
1,N Quantit
0,N COMMANDE 6 entitsProspecter6 relations
1,N 1,N
Effectuer NumCommande
1,1 Date
REPRESENTANT DEPARTEMENT
1,1
1,N NumReprsentant NumDpartement
Obtenir Nom Nom
S.Serrhini
25
MRD : Exercice 1
NumCommande
Date
REPRESENTANT DEPARTEMENT
NumReprsentant NumDpartement
Nom Nom
S.Serrhini
MRD : Exercice 1
26
NumCommande
Date
REPRESENTANT DEPARTEMENT
NumReprsentant NumDpartement
Nom Nom
S.Serrhini
27
MRD : Exercice 1
29
MRD : Exercice 1
CLIENT
FACTURE PRODUIT
NumClient
Nom
NumFacture Rfrence
Prnom
Date Dsignation
Adresse
Prix
CodePostal
Ville
COMMANDE
NumCommande
Date PROSPECTER DEPARTEMENT
REPRESENTANT
NumReprsentant #NumReprsentant
NumDpartement
Nom #NumDpartement
Nom
S.Serrhini
30
MRD : Exercice 1
PROSPECTER (#NumReprsentant,
#NumDpartement);
S.Serrhini
MRD : Exercice 1
31
MRD : Exercice 1
32
FACTURE
COMMANDE
NumCommande NumFacture
Date Date
CONCERNER
CLIENT PRODUIT
#NumCommande
#NumCommande
NumClient #Rfrence
Date Rfrence
Nom Quantit
Dsignation
Prnom Prix
Adresse
CodePostal
Ville
REPRESENTANT PROSPECTER DEPARTEMENT
MRD : Exercice 1
33
CONCERNER (#NumCommande,
#Rfrence,
Quantit);
S.Serrhini
34 MRD : Exercice 1
NumClient Correspondre
NumFacture Rfrence
Nom
Prnom Deux associations 1 n
Date Dsignation
Prix
0,1
0,N
Adresse
CodePostal Concerner
Ville
1,N Quantit
0,N COMMANDE
Prospecter
1,N 1,N
Effectuer NumCommande
1,1 Date
REPRESENTANT DEPARTEMENT
1,1
1,N NumReprsentant NumDpartement
Obtenir Nom Nom
S.Serrhini
35
MRD : Exercice 1
COMMANDE FACTURE
COMMANDE
NumCommande NumFacture
Date Date
#NumClient CONCERNER
#NumReprsentant
CLIENT PRODUIT
#NumCommande
NumClient Date
#Rfrence Rfrence
Nom Quantit Dsignation
Prnom Prix
Adresse
CodePostal
Ville
REPRESENTANT PROSPECTER DEPARTEMENT
MRD : Exercice 1
36
NumClient
Nom
Correspondre
Une association
NumFacture Rfrence 11
Date Dsignation
Prnom Prix
0,1
0,N
Adresse
CodePostal Concerner
Ville
1,N Quantit
0,N COMMANDE
Prospecter
1,N 1,N
Effectuer NumCommande
1,1 Date
REPRESENTANT DEPARTEMENT
1,1
1,N NumReprsentant NumDpartement
Obtenir Nom Nom
S.Serrhini
37 MRD : Exercice 1
38 MRD : Exercice 1
Cl Primaire
Intgrit dentit
S.Serrhini
39 MRD : Exercice 1
Cl Etrangre
Intgrit de rfrence
S.Serrhini
40 MRD : Exercice 1
Cl Primaire composite
Noms diffrents Intgrit dentit
S.Serrhini
41 MRD : Exercice 1
Socotra
42
DATE
Date
OUVRIERS CHANTIERS
1,n
NumRegistre NumChantier PHASES
Nom 1,n NomChantier
Prnom EST_OCCUPE 1,n Rue NumPhase
1,n
EST_COMPOSE 0,n
Rue CodePostal Libell
HeuresPrestes
CodePostal Ville DurePrvue Catgorie
Ville MatreOuvrage
Spcialit Montant
DateNaissance Dure
DateEngagement
1,1
0,n
NECESSITER
CONCEVOIR
Date Dbut
Date Fin 1,n
ARCHITECTES
0,n
Num_ordre
Nom
MATERIEL Prnom
Rfrence Rue
Type CodePostal
PoidsMax Ville
HautMax Tlphone
VitMax Mail
S.Serrhini
43
Chapitre IV :
SQL
S.Serrhini
44
Chapitre IV
Une collection de
donnes
S.G.B.D
(Systme de Gestion de Base de Donnes)
Permet lutilisateur dexploiter les
donnes
S.Serrhini
45
Base de Donnes
Clients
Clients
Ordre dAchats
Commandes
S.Serrhini
SQL: Introduction
46
HISTORIQUE :
Annes 70 : SEQUEL (IBM)
1981 : 1er SGBD sous SQL
1986 : normalisation SQL/86
1989 : SQL/89
1992 : SQL/92 ou SQL2
Aujourdhui : SQL3 (orient objet)
S.Serrhini
SQL: Introduction
47
SQL: Introduction
48
LDD :
COMMANDES FONCTIONS
CREATE DOMAIN Cration dun domaine
CREATE TABLE Cration dune table
SQL:
Quest-ce quun SGBD ?
49
1. Dfinition :
SQL:
Quest-ce quun SGBD ?
50
Niveau physique:
gestion sur mmoires secondaires, fiabilit, accs aux rseaux,
Niveau logique:
dfinition des donnes(LDD), Manipulation des donnes
consultation + mises jour des donnes (LMD), aspects
scuritaires, intgrits,
Niveau externe:
intgration avec langage de program., outils daide de saisie,
S.Serrhini
SQL:
Quest-ce quun SGBD ?
51
Insertion
COMMANDES
Mise jour
DU LMD
Destruction
Recherche
S.Serrhini
SQL:
Quest-ce quun SGBD ?
52
SQL:
53
Quest-ce quun SGBD ?
Optimisation :
Choisir une bonne organisation physique
Concurrence daccs :
Plusieurs utilisateurs doivent pouvoir accder en
mme temps aux mmes donnes
S.Serrhini
SQL:
54
Algbre Relationnelle
SQL:
Algbre Relationnelle
55
OPERATEURS OPERATEURS
UNAIRES BINAIRES
Slection Union
Projection Diffrence
Produit cartsien
(intersection, jointure)
S.Serrhini
Algbre Relationnelle
56
SQL:
Permet de manipuler et de retrouver des donnes
dune base de donnes.
Les requtes sont Diffrents dun langage de
programmation puisquil nest pas utilis pour faire
des traitements complexes.
S.Serrhini
Algbre Relationnelle
57
Avantages dSQL:
Facile dutilisation
Offre un accs facile et efficace aux donnes.
S.Serrhini
Algbre Relationnelle
58
Dfinition Requte :
R1 R2 Q = Rsultat
Requte Q
De R1 et R2
S.Serrhini
SQL:
Algbre Relationnelle
59
MODELE RELATIONNEL:
REALISER JOUER
S.Serrhini
SQL:
Algbre Relationnelle
60
MODELE RELATIONNEL:
SQL:
Algbre Relationnelle
61
SELECTION :
SQL:
Algbre Relationnelle
62
SQL:
Algbre Relationnelle
63
SELECTION : exemple 1
Rechercher les acteurs dont le prnom est Jean :
SQL:
64
Algbre Relationnelle
SELECTION : exemple 2
Rechercher les acteurs dont le numro est > ou = 3 :
SQL:
Algbre Relationnelle
65
PROJECTION : dfinition
SQL:
Algbre Relationnelle
66
PROJECTION : exemple 1
Afficher le nom de tous les acteurs :
SQL:
67
Algbre Relationnelle
SELECTION/PROJECTION :
Rechercher les titres et numros des films sortis en 2004:
SQL:
Algbre Relationnelle
68
oprations composes
!
S.Serrhini
SQL:
69
Algbre Relationnelle
UNION : dfinition
SQL:
Algbre Relationnelle
70
UNION : condition
SQL:
Algbre Relationnelle
71
UNION : exemple 1
NActeur Nom Prnom NRalisateur Nom Prnom
1 Gabin Jean 11 Moix Yann
2 Defrance Ccile 21 Chabat Alain
5 Poelvoorde Benot 31 Chatiliez Etienne
N Nom Prnom
1 Gabin Jean Acteurs
2 Defrance Ccile
U
5 Poelvoorde Benot
11 Moix Yann Ralisateurs
21 Chabat Alain
31 Chatiliez Etienne
S.Serrhini
SQL:
72
Algbre Relationnelle
UNION : exemple 2
N Nom Prnom
1 Gabin Jean
2
5
11
Defrance
Poelvoorde
Moix
Ccile
Benot
Yann
!
21 Chabat Alain
5 Poelvoorde Benot
S.Serrhini
SQL:
73
Algbre Relationnelle
DIFFERENCE : dfinition
Syntaxe : R1 - R2
S.Serrhini
SQL:
Algbre Relationnelle
74
DIFFERENCE : condition
R1 R2
Union-compatibilit des tables
R1 R2
S.Serrhini
SQL:
Algbre Relationnelle
75
DIFFERENCE : exemple 1
NActeur Nom Prnom NRalisateur Nom Prnom
1 Gabin Jean 11 Moix Yann
2 Defrance Ccile 21 Chabat Alain
5 Poelvoorde Benot 5 Poelvoorde Benot
N Nom Prnom
Acteurs
1 Gabin Jean
2 Defrance Ccile
Ralisateurs
S.Serrhini
SQL:
Algbre Relationnelle
76
INTERSECTION: dfinition
Syntaxe : R1 R2
S.Serrhini
SQL:
Algbre Relationnelle
77
INTERSECTION: remarques
SQL:
78
Algbre Relationnelle
INTERSECTION: exemple 1
NActeur Nom Prnom NRalisateur Nom Prnom
1 Gabin Jean 11 Moix Yann
2 Defrance Ccile 21 Chabat Alain
5 Poelvoorde Benot 5 Poelvoorde Benot
N Nom Prnom
5 Poelvoorde Benot
S.Serrhini
SQL:
Algbre Relationnelle
79
Syntaxe : R1 X R2
S.Serrhini
SQL:
80
Algbre Relationnelle
FILMS REALISE
NFilm Titre Anne NFilm NRalisateur
1 Gladiateur 2002 2 15
2 Le roi Arthur 2004 5 18
3 Podium 2004 4 18
S.Serrhini
SQL:
81
Algbre Relationnelle
PRODUIT CARTESIEN: exemple1
NFilm Titre Anne NFilm NRalisateur
1 Gladiateur 2002 2 15
1 Gladiateur 2002 5 18
1 Gladiateur 2002 4 18
3 Podium 2004 2 15
3 Podium 2004 5 18
3 Podium 2004 4 18
S.Serrhini
SQL:
82
Algbre Relationnelle
PRODUIT CARTESIEN:
UTILITE ?
S.Serrhini
SQL:
83
Algbre Relationnelle
JOINTURE: dfinition
SQL:
84
Algbre Relationnelle
JOINTURE dite naturelle :
SQL:
85
Algbre Relationnelle
JOINTURE: exemple :FILMS |X| REALISE
FILMS REALISE
NFilm Titre Anne NFilm NRalisateur
1 Gladiateur 2002 2 15
2 Le roi Arthur 2004 5 18
3 Podium 2004 4 18
S.Serrhini
SQL:
86
Algbre Relationnelle
JOINTURE: exemple
FILMS.NFilm = REALISE.NFilm
S.Serrhini
SQL:
87
Algbre Relationnelle
JOINTURE: exemple
NFilm Titre Anne NFilm NRalisateur
1 Gladiateur 2002 2 15
1 Gladiateur 2002 5 18
1 Gladiateur 2002 4 18
3 Podium 2004 2 15
3 Podium 2004 5 18
3 Podium 2004 4 18
S.Serrhini
SQL:
88
Algbre Relationnelle
JOINTURE: exemple
Table rsultat :
SQL
90
Slection de base
Projection
Slection
SQL
91
Slection de base
Projection
100 Dupont Alain 12, Rue des 1020 Bruxelles 02/2186675 0475/324455
Alouettes
110 Durand Eric 132, Av Louise 1050 Bruxelles 02/2165544 0477/876543 02/2167890
SQL
92
Slection de base
Slection
Num Nom Prnom Adresse CodePos Localit Tl GSM Fax
100 Dupont Alain 12, Rue des 1020 Bruxelles 02/2186675 0475/324455
Alouettes
110 Durand Eric 132, Av Louise 4000 Lige 02/2165544 0477/876543 02/2167890
SQL
Slection de base
93
La combinaison Slection/Projection
Num Nom Prnom Adresse CodePost Localit Tl GSM Fax
100 Dupont Alain 12, Rue des 1020 Bruxelles 02/2186675 0475/324455
Alouettes
110 Durand Eric 132, Av Louise 4000 Lige 02/2165544 0477/876543 02/21678
90
SQL
94
Slection de base
Syntaxe
SELECT Clause_de_slection
PROJECTION
FROM Nom_Table [AS Alias]
[WHERE [Condition] SELECTION
;
Fin de la requte
S.Serrhini
SQL
95
Slection de base
SELECT
Obligatoire
FROM
WHERE Facultatif
SQL
Slection de base
96
SQL
Slection de base
97
Exemple :
Obtenir les noms, prnoms et numros de tlphone
de tous les clients.
Opration PROJECTION
SQL
98
Slection de base
Rsultat :
NomClient PrenomClient NumTel
Nicolay Caroline
Lebon Nicolas
Gravelle Stephane
Laclasse Toni
Pucette Camille
Legrand Jacques
Mossou Pierre
S.Serrhini
SQL
Slection de base
99
Exemple :
Obtenir les noms, prnoms et numros de tlphone
de tous les clients Bruxellois.
Opration SELECTION
SQL
100 Slection de base
Rsultat :
NomClient PrenomClient NumTel
Nicolay Caroline
Lebon Nicolas
Gravelle Stephane
Legrand Jacques
SQL
Slection de base
10
1
LocaliteClient
Bruxelles
Bruxelles
Lige
Lige
Bruxelles
Bruxelles
Andenne
Il est inutile de voir apparatre plusieurs Andenne
Andenne
Bruxelles
Lige
S.Serrhini
SQL
102
Slection de base
SELECT LocaliteClient
FROM Client ;
SQL
103
Slection de base
SQL
Slection de base
104
LocaliteClient
Andenne
Bruxelles
Lige
S.Serrhini
SQL
Slection de base
105
NumClient 140
150
Lige
Lige
ET 160
170
Bruxelles
Bruxelles
SQL
106
SELECT RefProduit
FROM Produit
WHERE Stock <= 10
AND catgorie = mobilier ;
RefProduit
32
S.Serrhini
SQL
107
SELECT RefProduit
FROM Produit
WHERE Stock <= 10
AND catgorie = mobilier ;
SQL
109
des constantes
la constante doit tre de type compatible avec le type
de lattribut considr.
des expressions
WHERE Prixvente > 2*Prixachat
S.Serrhini
SQL
110
EFFRIN Bruxelles
FANOUILLET Bruxelles
FRAULIRET Lige
GARMON Bruxelles
FROM Representant
LOYEN Bruxelles
BERNAR Bruxelles
OR LocaliteRep = Lige ;
S.Serrhini
SQL
111
EFFRIN Bruxelles
FRAULIRET Lige
DEVREUX Lige
WHERE LocaliteRep IN
LOYEN Bruxelles
BERNAR Bruxelles
SQL
112
NomClient
Leroy
Lebon
Legrand
FROM Client
WHERE NomClient LIKE L%;
SQL
S.Serrhini
113
SELECT NomClient
FROM Client NomClient
Roberts
WHERE NomClient LIKE __b*%;
Lebon
S.Serrhini
SQL
114
NomClient
Nicolay
FROM Client
WHERE NomClient LIKE %y ;
S.Serrhini
SQL
NomClient
Leroy
SELECT *
11 Manteau 76,00 30 Textile
FROM Produit 20
21
Imprimante
Ecran Plat
120,67
100,00
12
10
Informatique
Informatique
BETWEEN 10 AND 60
23 USB 128 34,89 60 Informatique
SQL
117
Valeur NULL
Il existe des valeurs qui :
ne sont pas connues (fax de certains clients)
nexistent pas pour certains tuples
(un produit qui na jamais t command)
SQL associe un flag chaque attribut
Il spcifie si lattribut a ou non t initialis
(-1 absence de valeur 0 prsence dune valeur).
Un attribut qui na pas t initialis prend la valeur
NULL = valeur indtermine.
S.Serrhini
SQL
119
NULL 21
22
Ecran Plat
USB 256
100,00
45,89
10
50
Informatique
Informatique
23 USB 128 34,89 60 Informatique
24 Souris 12,00 180 Informatique
25 Clavier 44,00 128 Informatique
30 Chaise 32,00 90 mobilier
31 Table 123,00 40 mobilier
32 Bureau 400,00 10 mobilier
33 Salon 1.200,00 50 mobilier
34 Meuble Cuisine 229,00 90 mobilier
35 Lit 1 Personne 300,00 23 mobilier
S.Serrhini
SQL
120
SQL
121
Jointure
SQL
122
Jointure
CLIENT COMMANDE
Rechercher les numro, nom et prnom des clients qui ont pass
des commandes.
SQL
124
Jointure
Premire tape
Le moteur SQL ralise le produit cartsien des tables
de la clause FROM.
SELECT ..
FROM Client, Commande;
SQL
125
Jointure
SQL
126
Jointure
SQL
127
Jointure
Deuxime tape :
SQL limine de cette table X les tuples qui ne
correspondent pas la clause WHERE.
SELECT
FROM X
WHERE Client.NumClient = Commande.NumClient;
Assure la jointure entre les deux tables
Sur le NumClient qui doit tre de part et dautre
de valeur gale
de type compatible (Le nom peut tre diffrent)
S.Serrhini
SQL
128
Jointure
SQL
129
----- Jointure
---
Troisime tape :
SQL
130
Jointure Interne
Rechercher les numro, nom et prnom des clients qui ont pass
des commandes.
SQL
Types de Jointures
131
Auto-jointure
Jointure Externe
S.Serrhini
SQL
132
Auto-Jointures
SQL
134
Auto-Jointures
SQL
Auto-Jointures
135
Nomclient LocaliteClient
Nomclient LocaliteClient
Dupont Bruxelles
SELECT C1.NomClient, C1LocaliteClient Durand Bruxelles
SQL
136
Auto-Jointures
Lister tous les clients y compris ceux qui nont rien command.
Afficher les nom et date de commande . NomClient
Dupont
DateCommande
10/02/2003
Dupont 15/02/2003
SELECT Client.NomClient, Dupont 18/03/2003
Roberts 30/09/2003
ON (Client.NumClient = Commande.NumClient); Leroy 18/03/2003
Lebon 25/09/2003
Gravelle 14/06/2003
Gravelle 25/08/2003
et leurs commandes. Gravelle 30/09/2003
S.Serrhini
SQL
138
Jointures Externes
NomClient DateCommande
Dupont 10/02/2003
Dupont 15/02/2003
Dupont 18/03/2003
Dupont 21/06/2003
Roberts 20/06/2003
Roberts 30/09/2003
Leroy 18/03/2003
Lebon 25/09/2003
Gravelle 14/06/2003
Gravelle 18/07/2003
Gravelle 25/08/2003
Gravelle 30/09/2003
S.Serrhini
SQL
139
Jointures Externes
La syntaxe des jointures externes est identique celle des
jointures internes.
Pour extraire la liste des clients, y compris ceux qui nont rien
command, il faut utiliser la jointure externe.
SQL
140
Jointures Externes
NomClient DateCommande
Dupont 10/02/2003
SELECT Client.NomClient, Dupont 15/02/2003
Dupont 18/03/2003
Commande.DateCommande Dupont 21/06/2003
Durand
FROM Client LEFT JOIN Commande Roberts 20/06/2003
Roberts 30/09/2003
ON (Client.NumClient = Commande.NumClient); Nicolay
Gys
Leroy 18/03/2003
Lebon 25/09/2003
Gravelle 14/06/2003
SELECT Client.NomClient, Gravelle 18/07/2003
Gravelle 25/08/2003
Commande.DateCommande Gravelle 30/09/2003
Cuypers
FROM Commande RIGHT JOIN Client Boreman
SQL
Jointures Externes
141
SQL
Oprateurs ensemblistes
143
SQL
144
Oprateur UNION
Rechercher les nom et numro de tlphone des clients
Si ce dernier est inconnu, afficher **** .
ATTENTION lunion-compatibilit
SELECT NomClient, NumTel
FROM Client
WHERE NumTel IS NOT NULL
UNION De mme
SELECT NomClient, **** type!!
FROM Client
WHERE NumTel IS NULL;
SQL
S.Serrhini
SQL
147
Oprateur UNION
UNION
Ralise lUNION des rsultats de deux requtes.
SQL
Oprateur EXCEPT
148
SQL
Oprateur EXCEPT
149
SQL
150
Oprateur EXCEPT
EXCEPT
SQL
151
Oprateur EXCEPT
Rsultat
NumCommande DateCommande localiteRep
3 18/03/2003 Andenne
5 20/06/2003 Andenne
7 30/09/2003 Andenne
8 25/09/2003 Lige
9 14/06/2003 Lige
10 18/07/2003 Lige
11 25/08/2003 Lige
12 30/09/2003 Lige
S.Serrhini
Oprateurs ensemblistes :
153
INTERSECT
Rechercher le nom et le prnom de tous les
reprsentants qui ont un tlphone et un GSM.
Avec Oprateur :
SELECT NomRep, PrnomRep
FROM Reprsentant
WHERE Representant.Tl IS NOT NULL
INTERSECT
SELECT NomRep, PrnomRep
FROM Representant
WHERE Representant.GSM IS NOT NULL;
S.Serrhini
Oprateurs ensemblistes :
INTERSECT
154
Sans Oprateur :
SELECT NomRep, PrnomRep
FROM Reprsentant
WHERE Representant.Tl IS NOT NULL
AND Representant.GSM IS NOT NULL;
S.Serrhini
Numriques
Caractres
Temps et dates
Intervalles
Jupe 750,00
Pantalon
2.280,00
Pull
Chaussures 3.500,00
Imprimante 1.448,04
USB 256
1.000,00
2.294,50
Souris 2.160,00
FROM Produit; Clavier 5.632,00
Chaise 2.880,00
Table 4.920,00
Bureau 4.000,00
Salon 60.000,00
NomProduit
Dans la clause Where: Manteau
Chaussures
Rechercher les produits dont la valeur du stock
Imprimante
au prix de vente est suprieure 1000. USB 256
USB 128
Souris
Table
WHERE (Stock*PrixVente) > 1000;
Bureau
Salon
Meuble Cuisine
Lit 1 Personne
Les expressions numriques
S.Serrhini
159
AVG() Moyenne
SUM() Somme
Min() Minimum
MAX() Maximum
COUNT() Compter
S.Serrhini
FROM Produit
WHERE catgorie = mobilier ;
160
S.Serrhini
FROM Commande;
SELECT Count(RefProduit)
10 Jupe 50 Textile
11 Manteau 76,00 30 Textile
FROM Produit
12 Pantalon 34,95 Textile
13 Pull 25,00 Textile
Rsultat:
21 Ecran Plat 100,00 10 Informatique
22 USB 256 45,89 50 Informatique
23 USB 128 34,89 60 Informatique
24 Souris 12,00 180 Informatique
Expr1000
25 Clavier 44,00 128 Informatique
6 30 Chaise 32,00 90 mobilier
31 Table 123,00 40 mobilier
32 Bureau 400,00 10 mobilier
33 Salon 1.200,00 50 mobilier
34 Meuble Cuisine 229,00 90 mobilier
35 Lit 1 Personne 300,00 23 mobilier
S.Serrhini
DUPONT
DURAND
SELECT UPPER(NomClient) ROBERTS
GYS
LEROY
LEBON
GRAVELLE
CUYPERS
BOREMAN
LACLASSE
PUCETTE
LEGRAND
MOSSOU
S.Serrhini
roberts
FROM Client; nicolay
gys
leroy
lebon
gravelle
cuypers
boreman
laclasse
pucette
legrand
mossou
S.Serrhini
Longueur
Spcifie la partie
dans la table commande 2
retourner
do est extraite la partie. 3
FROM Commande; 7
8
2003
2003
9 2003
10 2003
La fonction YEAR(), sous MySql, permet 11 2003
La fonction EXTRACT(MONTH()) 12 9
NumCommande Expr1001
NomClient NumTel
ou Leroy 04/3305847
Mossou
SELECT Nicolay
Pucette
NomClient,NumTel Roberts 02/2214578
FROM Client
ORDER BY 1; Entier identifiant la position de lobjet
du tri dans la clause de slection.
Tri des rsultats S.Serrhini
174
Trier les clients par code postal et, pour CodePostalClient NomClient
1020 Dupont
chacun de ceux-ci, par ordre 1030 Lebon
Doit tre spcifi alors que ASC est par dfaut Cuypers
Boreman
S.Serrhini
NomProduit Stock
Afficher les produits ainsi que le stock Pantalon
Pull
Trier le rsultat par stock. Bureau 10
Ecran Plat 10
Imprimante 12
SELECT NomProduit, Stock Lit 1 Personne 23
Manteau 30
FROM Produit Table 40
Fonctions de groupements
177
Fonctions de groupements
178
Fonctions de groupements
179
Fonctions de groupements
180
17
Fonctions de groupements
181
Catgorie NombreProduit
Informatique 6
mobilier 6
Textile 5
S.Serrhini
Fonctions de groupements
182
sans catgorie 31
32
Table
Bureau
123,00
400,00
40
10
mobilier
mobilier
33 Salon 1.200,00 50 mobilier
34 Meuble Cuisine 229,00 90 mobilier
35 Lit 1 Personne 300,00 23 mobilier
S.Serrhini
Fonctions de groupements
183
Informatique 6
mobilier 6
Textile 4
Fonctions de groupements
184
La clause GROUP BY
Fonctions de groupements
185
186
Fonctions de groupements
170 9
170 10
170 11
170 12
S.Serrhini
Fonctions de groupements
188
Fonctions de groupements
189
Le rsultat de la requte :
NomClient Expr1001
Dupont 4
Gravelle 4
Lebon 1
Roberts 2
S.Serrhini
Fonctions de groupements
190
50
Informatique 73,3333333333333
FROM Produit
GROUP BY Catgorie
HAVING AVG(Stock) > =50;
S.Serrhini
Fonctions de groupements
192
La clause HAVING :
Permet de fixer une condition qui sera value pour chaque groupe
Ceux qui ne satisfont pas la condition sont exclus du rsultat.
Fonctions de groupements
193
FROM Concerne
23
Fonctions de groupements
194
FROM Concerne 23 12
Requtes Imbriques
195
Requtes Imbriques
196
SELECT NumCommande
NumCommande
FROM Concerne 5
197
NumClient
100
Requtes Imbriques
198
SELECT NumClient
Requte Externe
100
FROM Commande
WHERE NumCommande
120
IN (SELECT NumCommande
170
Requtes Imbriques
200
FROM Concerne 4
10
S.Serrhini
Requtes Imbriques
201
NumClient
Requtes Imbriques
202
NomClient
Dupont
SELECT NomClient
FROM Client
Roberts
Requtes Imbriques
203
SELECT NomClient
FROM Client
NomClient
Dupont
WHERE NumClient
IN (SELECT NumClient
Roberts
FROM Commande
Gravelle
WHERE NumCommande
IN (SELECT NumCommande
FROM Concerne
WHERE RefProduit = 12));
Requtes Imbriques
S.Serrhini
204
Souris 180
>
Meuble Cuisine 90
(SELECT AVG(Stock)
FROM Produit);
S.Serrhini
Requtes Imbriques
205
Requtes Imbriques
207
Durand Eric
Requtes Imbriques
208
Requtes Imbriques
209
FROM Client
Dupont Alain
Durand Eric
WHERE LocaliteClient
Roberts Pierre
Nicolay Caroline
= ( Bruxelles ); Lebon
Gravelle
Nicolas
Stephane
Legrand Jacques
Requtes ACTION
210
Requtes ACTION
211
INSERT
INSERT sert insrer des ranges dans une table de
base de donnes. Il peut sagir de :
Requtes ACTION
212
INSERT
Requtes ACTION
INSERT
213
100 23
24
USB 128
Souris
34,89
12,00
60
180
Informatique
Informatique
25 Clavier 44,00 128 Informatique
Indtermin 30 Chaise 32,00 90 mobilier
31 Table 123,00 40 mobilier
32 Bureau 400,00 10 mobilier
Textile 33 Salon 1.200,00 50 mobilier
34 Meuble Cuisine 229,00 90 mobilier
35 Lit 1 Personne 300,00 23 mobilier
S.Serrhini
Requtes ACTION
214
INSERT
RefProduit NomProduit PrixProduit Stock Catgorie
Produit
11 Manteau 76,00 30 Textile
12 Pantalon 34,95 Textile
Cardigan,
14 Chaussures 70,00 50 Textile
20 Imprimante 120,67 12 Informatique
NULL,
22 USB 256 45,89 50 Informatique
23 USB 128 34,89 60 Informatique
Requtes ACTION
215
INSERT
linsertion dune seule range partielle.
La syntaxe est INSERT INTO.
Il faut spcifier prcisment les noms des colonnes (on
peut omettre des colonnes) et des valeurs.
Requtes ACTION
INSERT
216
Requtes ACTION
217
INSERT
RefProduit NomProduit PrixProduit Stock Catgorie
10 Jupe 15,00 50
(RefProduit,NomProduit,
12 Pantalon 34,95 Textile
13 Pull 25,00 Textile
PrixProduit) 14
20
Chaussures
Imprimante
70,00
120,67
50
12
Textile
Informatique
Requtes ACTION
218
INSERT
linsertion du rsultat dune requte:
Syntaxe :
INSERT INTO Table1 (champ1,champ2,)
SELECT (Val1, Val2,)
FROM Table2
WHERE [condition] ; facultatif
Requtes ACTION
S.Serrhini
219 UPDATE
MISE JOUR
Commande
UPDATE
S.Serrhini
Requtes ACTION
UPDATE
220
Syntaxe :
UPDATE NomTable
SET champ1 = Val1,
champ2=Val2,
WHERE < Condition> ;
S.Serrhini
Requtes ACTION
221
UPDATE
Exemple:
Augmenter de 5% le prix des produits de la
catgorie textile :
UPDATE Produit
SET prix=prix*1.05
WHERE catgorie= textile ;
S.Serrhini
Requtes ACTION
DELETE
222
Commande
DELETE
Syntaxe :
DELETE FROM NomTable
WHERE <Condition> ;
S.Serrhini
Requtes ACTION
223
DELETE
Exemple:
Supprimer les produits en rupture de stock.
Requtes
ACTION
224
Recommandation :
225
Requtes ACTION