Вы находитесь на странице: 1из 20

14/11/2013

Les bases de donnes sont omniprsentes :


coles, Universits :
Donnes sur les tudiants
Id, nom, prnom, classe, section, cycle, anne
Donnes sur les formations
matire, intervenant (enseignant), public, salle
Donnes sur les rsultats
matire, intervenant (enseignant), pondration, rsultat

Prpar par : Pr Amal BATTOU Entreprises


fichiers clients, fournisseurs, commandes
facturation,
gestion de stock, inventaire.

Gnie Technique de Management Anne universitaire 2013-2014

Bibliothques :
Donnes sur les lecteurs Dfinition :
Id, nom, prnom, statistiques, montant d
Une base de donnes est un ensemble structur de donnes
Donnes sur les livres
Titre, ISBN, auteur, genre, code, emplacement, emprunts, collection, enregistres sur des supports accessibles par lordinateur pour
diteurs
satisfaire simultanment plusieurs utilisateurs de faon
Donnes sur les auteurs
Livres, adresse, nom, prnom, slective et en un temps opportun.
Exemple :

1
14/11/2013

Donnes structures : les informations contenues dans une base


de donnes sont rparties en enregistrements , chaque
enregistrement ayant une structure bien dfinie

Donnes non redondantes : Une mme information ne sera pas


rpte plusieurs fois dans la base de donnes.

Donnes cohrentes : Il ne doit pas tre permis denregistrer dans


une base des informations incohrentes entre elles

Donnes accessibles directement selon de multiples critres

Indpendance des programmes et des donnes : La base de 3 niveaux : Interne, Conceptuel et Externe
donnes doit tre indpendante des programmes qui y ont accs,
on doit pouvoir utiliser diffrents programme pour traiter Niveau interne
diffremment ces donnes sans avoir toucher ces donnes Physique, systme
Relve principalement de ladministrateur(BD/Systme)

Scurit des donnes stockes : la base de donnes doit Niveau conceptuel


permettre un systme scuris permettant de grer les droits Vue globale de la BD Modle conceptuel
daccs aux informations par les utilisateurs. Relve principalement des concepteurs

Niveau externe
Vue dun utilisateur particulier
Modle conceptuel incomplet
Relve principalement des oprateurs

2
14/11/2013

Organisation dune bases de donnes


4 composantes principales : Donnes intgres
Donnes Logiciel Vue unifie du systme mme si ce dernier est en fait un
Matriel Utilisateurs regroupement de fichiers

Donnes partages
Systme de gestion de
Application
base de donnes
Peuvent tre accdes par plusieurs utilisateurs (mme
simultanment !)

Globalement
Application Les utilisateurs ont une vue diffrente de la base de donne
Administrateur de la BD vue complte
Base de
donnes Ressources humaines employs, tches, etc...
Fichier Acheteur produits, pices, factures, etc.
Application Fichier

Composantes de stockage de masse Programmeurs dapplication


Disques durs Dveloppent les logiciels qui accdent la BD
RAID (Redundant Array of Independent Disks)
Copies de sauvegarde Utilisateurs finaux
Tolrance aux pannes Utilisent les logiciels
Intgrit des donnes
Administrateurs
Composantes de traitement Grent les donnes
Processeur(s)
Mmoire vive (RAM)

3
14/11/2013

Nombre dutilisateurs
1 Mono-utilisateur BD personnelle Systme de gestion de bases de donnes
Partage difficile des donnes
Outils de dveloppement dapplications
Dveloppement et entretien peu coteux
2+ --> Multi-utilisateur API (Application Programming Interface)

Systmes multi-utilisateurs VBA-Access


Centralis Outils daide la conception
Terminaux et ordinateur central connect sur la BD
Rseau Outils daide la rdaction de rapports
BD sur 1 ordinateur, SGBD sur chaque ordinateur
utilisateur Gestionnaire de transactions
Distribu
Rpliqu ou rparti

Systme de Gestion de Bases de


Donnes
Un Systme de Gestion de Bases de Donnes (S.G.B.D.) Un SGBD est un intermdiaire entre les utilisateurs et les fichiers
reprsente un ensemble coordonn de logiciels qui permet de physiques
dcrire, manipuler, traiter les ensembles de donnes formant la
base. Il doit galement assurer la scurit et la confidentialit des Un SGBD facilite
donnes dans un environnement o de nombreux utilisateurs ayant - la gestion de donnes, avec une reprsentation intuitive simple sous forme
des besoins varis peuvent interagir simultanment sur ces de table par exemple
donnes. - la manipulation de donnes. On peut insrer, modifier les donnes et les
structures sans modifier les programmes qui manipulent la base de donnes

Base de donnes
Programme 1
SGBD BD
Fichier 1
SGBD
Programme 2
Fichier 2
Fichier 3 Programme 3

4
14/11/2013

Objectif SGBD
Indpendance physique : La manipulation des donnes doit tre Administration centralise des donnes : Des visions diffrentes des
faciliter en travaillant directement sur le schma logique. On peut donnes (entre autres) se rsolvent plus facilement si les donnes sont
insrer, supprimer, modifier des donnes directement sur limage administres de faon centralise.
logique. Le SGBD va soccuper de faire le travail sur les fichiers Cohrence des donnes. Les donnes sont soumises un certain
physiques. nombre de contrainte dintgrit qui dfinissent un tat cohrent de la
Indpendance logique : Un mme ensemble de donnes peut tre vu base. Elles doivent pouvoir tre exprimes simplement et vrifies
diffremment par des utilisateurs diffrents. Toutes ces visions automatiquement chaque insertion, modification ou suppression de
personnelles des donnes doivent tre intgrs dans une vision globale. donnes, par exemple :
Manipulations des donnes par des non informaticiens. Il faut
lge dune personne suprieur zro
pouvoir accder aux donnes sans savoir programmer ce qui signifie
des langages quasi naturels . Salaire suprieur zro
Efficacit des accs aux donnes : Ces langages doivent permettre Etc
dobtenir des rponses aux interrogations en un temps raisonnable . Ds que lon essaie de saisir une valeur qui ne respecte pas cette
Il doivent donc tre optimiss et, entre autres, il faut un mcanisme contrainte, le SGBD le refuse.
permettant de minimiser le nombre daccs disques. Tout ceci, bien sur,
de faon compltement transparente pour lutilisateur.

Objectif SGBD
Non redondance des donnes : Afin dviter les problmes lors des Description des donnes : codification structuration, grce un Langage
mises jour, chaque donne ne doit tre prsente quune seule fois de Description de Donnes (LDD)
dans la base. Manipulation et restitution des donnes (insertion, mise jour,
Partageabilit des donnes : Il sagit de permettre plusieurs interrogation)
utilisateurs daccder aux mmes donnes au mme moment. Si ce Mise en oeuvre laide dun Langage de Manipulation de Donnes
problme est simple rsoudre quand il sagit uniquement (LMD)
dinterrogations et quand on est dans un contexte mono-utilisateur,
S.Q.L. (Structures Query Langage) : Langage standard
cela nest plus le cas quand il sagit de modifications dans un
contexte multi-utilisateurs. Il sagit alors de pouvoir : Contrle (partage, intgrit, confidentialit, scurit)
Permettre deux (ou plus) utilisateurs de modifier la mme Schma = structure + contraintes
donne en mme temps ; Formule logique (E.g. Nom character 20, non NULL; age integer
Assurer un rsultat dinterrogation cohrent pour un utilisateur between 0 and 120; debit <= credit).
consultant une table pendant quun autre la modifie. But: protger les donnes

5
14/11/2013

Modles de SGBD
SGBD Hirarchique:
Oprateurs/Utilisateurs
Utilisent les applications conues par les concepteurs
Les donnes sont reprsentes dans la base sous forme de structure
Entrent, modifient, suppriment et consultent les donnes arborescente.
Concepteurs Manipulation des donnes (balayage ascendant/descendant).
De bases de donnes : conoivent les modles de donnes et
crent la structure de la base de donnes
Dapplications : dveloppent des programmes qui grent les bases SGBD rseau:
de donnes
Administrateurs (DBA) Les donnes sont reprsentes dans la base sous forme dun graphe
Grent le systme, les utilisateurs (oprateurs et concepteurs), les quelconque.
objets et les privilges Les programmes:
ne sont pas indpendants de la structure logique de la base
doivent indiquer le chemin daccs aux donnes
utilisent un langage complexe pour travailler avec leurs donnes.

Modles de SGBD

SGBD relationnel: Constitue de tables reprsentant des objets ou des associations


fond sur la thorie mathmatique des relations; entre objets
reprsentation trs simple des donnes (tables);
langage non procdural (dclaratif), puissant et simple demploi TABLE CLIENT
SQL est un standard parmi ces langages NOCLIENT NOM PRENOM
dominent le march:
KOI01 Koivu Saku
Exemples : Oracle, DB2, SQLServer, Access, DBase, Paradox,
DEL01 Delisle Pierre
etc.
KOI02 Koivu Hanna
SGBD Objet:
enregistre les donnes sous forme dobjets TABLE COMPTE-CLIENT
TABLE COMPTE
E. g. O2 NOCOMPTE NOCLIENT
NOCOMPTE SOLDE
23150 KOI01
23150 8 450 000
23150 KOI02
24140 175
24140 DEL01
24140 KOI02

6
14/11/2013

Une table est compose de


La valeur de la cl primaire doit tre
Colonnes Unique dans chaque table
Analogue un champ dun enregistrement dans un fichier De longueur fixe
de donnes De longueur raisonnable
Portent un nom unique lintrieur dune table Non modifiable
Peuvent faire partie de plusieurs tables (pour les lier)
Bonnes ou mauvaises cl primaires ?
Ranges Numro dassurance sociale ?
Analogue un enregistrement dans un fichier de donnes Nom + Prnom ?
Identifies par une cl unique (cl primaire) compose Numro de tlphone ?
dune ou plusieurs colonnes

Lien logique entre les tables Avantages


Une range dune table peut avoir un lien logique nomm relation Redondance minimise : seules les cls primaires sont dupliques
avec une ou plusieurs ranges dune ou de plusieurs autres tables Facilit de programmation et dexploitation
Structure base sur la logique mathmatique
Relation reprsente par une cl trangre
Possde son propre langage normalis : SQL
Portabilit
Cl trangre
Constitue dune ou de plusieurs colonnes Exemples
Reprsente la relation entre deux ranges Access
Correspond toujours une cl primaire Oracle
Ex : NOCLIENT est la cl primaire de la TABLE CLIENT et une SQL Server
cl trangre de la table COMPTE-CLIENT

7
14/11/2013

SQL (Structured Query Language) ou langage de requtes


structur est un langage destin interroger et manipuler
les SGBDR
Origine
1975 : QUEL
1976 : Structured English QUEry Langage (SEQUEL) par
IBM
1981 : SQL par IBM
Le langage SQL est devenu Standard ANSI en 86 et ISO
en 87
Plusieurs rvisions: SQL1 en 1989, SQL2 en 1992 en ,
SQL3 en 1999 et SQL2003

Fonctions de base : CREATE; ALTER; DROP


Langage de dfinition de donnes (LDD)
Cration et manipulation de schmas Crer les tables de la base de donnes
CREATE TABLE
Gestion d'index
attributs et types de donnes associs
Gestion des droits
contraintes
etc
Modifier les tables de la base de donnes
Langage de manipulation de donnes (LMD) ALTER TABLE
Interrogation attributs (ajouter; supprimer; modifier)
Mise a jour contraintes (ajouter; supprimer)

Effacer les tables de la base de donnes


DROP TABLE
31
32

8
14/11/2013

CREATE TABLE <nom_table> (


<nom_attribut > <type_donnes>
[ DEFAULT <valeur_dfault> ]
[CONSTRAINT <nom_contrainte> <contrainte_attribut >],
<nom_attribut > <type_donnes> [ DEFAULT <valeur_dfault> ]
[ CONSTRAINT <nom_contrainte> <contrainte_attribut > ] ,
<nom_attribut > <type_donnes> [ DEFAULT <valeur_dfault> ]
[ CONSTRAINT <nom_contrainte> <contrainte_attribut > ] ,
.......,
[CONSTRAINT <nom_contrainte > <contrainte_table >],
[CONSTRAINT <nom_contrainte > <contrainte_table >],
...);

33 34

Intervalle de validit : restreint les valeurs valides quun attribut peut prendre
lintrieur dun domaine.

ex: Coureur (idCoureur, nomCoureur, prenomCoureur, sexeCoureur,


ageCoureur, nomPhoto,)

Lage des skieurs doit tre entre 4 et 18 ans.


ageCoureur INTEGER CONSTRAINT chk_ageCoureur
CHECK (ageCoureur BETWEEN (4 AND 18)),

Longueur valide : restreint le nombre de caractres que la valeur de lattribut peut


avoir lintrieur du domaine.
ex: Le nombre de caractres du nom des skieurs ne doit pas dpasser 20.
nomCoureur VARCHAR (20),

35 36

9
14/11/2013

restreint les valeurs valides quun attribut peut prendre lintrieur dun Contrainte de non nullit: lattribut pour lequel on spcifie cette contrainte ne peut pas
domaine. prendre la valeur NULL, il doit tre toujours renseign.

ex: Course (idCourse, nomCourse, dateCourse, sexeCourse, ) ex: Coureur (idCoureur, nomCoureur, prenomCoureur, sexeCoureur,
ageCoureur, nomPhoto,)
Une course de ski doit tre en exclusivit pour les filles ou pour les garons.
Le nom dun skieur doit tre connu lors de linscription.
Contrainte dfinie au niveau de lattribut nomCoureur VARCHAR (20) NOT NULL,
sexeCourse CHAR(1) NOT NULL CONSTRAINT chk_sexeCourse
Contrainte d'unicit: lattribut (ou le groupe dattributs) doit avoir une valeur unique dans
CHECK (sexeCourse IN ('F', 'M')), toute la table.

Contrainte dfinie au niveau de la table ex: Categorie (idCategorie, nomCategorie)


sexeCourse CHAR(1) NOT NULL, Le nom dune catgorie dage des skieurs doit tre unique.
..., nomCategorie VARCHAR(20) CONSTRAINT unq_nomCategorie UNIQUE,
CONSTRAINT chk_course_sexeCourse CHECK (sexeCourse IN ( 'F','M') ),

37 38

Chaque relation doit avoir une cl primaire unique. Cl primaire compose


Cl primaire simple
ex: Resultat (idCoureur, idCourse, dossard, position)
ex: Coureur (idCoureur, nomCoureur, prenomCoureur, sexeCoureur,
ageCoureur, nomPhoto,) Contrainte dfinie au niveau de la table
Contrainte dfinie au niveau de lattribut CREATE TABLE Resultat (
CREATE TABLE Coureur (
idCoureur INTEGER not null,
idCoureur INTEGER CONSTRAINT pk_coureur PRIMARY KEY,
idCourse INTEGER not null,
..);
.,
CONSTRAINT fk_coureur_resultat FOREIGN KEY (idCoureur)
Contrainte dfinie au niveau de la table REFERENCES Coureur (idCoureur),
CREATE TABLE Coureur ( CONSTRAINT fk_course_resultat FOREIGN KEY (idResultat)
idCoureur INTEGER, REFERENCES Resultat (idResultat),
, CONSTRAINT pk_resultat PRIMARY KEY (idCoureur, idCourse) );
CONSTRAINT pk_coureur PRIMARY KEY (idCoureur) );

39 40

10
14/11/2013

Aucun attribut cl primaire ou aucun attribut faisant partie de la cl primaire compose ne


Applicable la cl trangre; permet de maintenir la
peuvent avoir la valeur nulle (NULL). consistence entre les enregistrements des deux relations.
Cl primaire simple
Contrainte dfinie au niveau de lattribut Clause REFERENCE
ex: CREATE TABLE Coureur (
idCoureur INTEGER NOT NULL CONSTRAINT pk_coureur PRIMARY KEY,
...);
ex: Club (idClub, nomClub, villeClub, fondCourse)
Cl primaire compose
Coureur(idCoureur, nomCoureur, prenomCoureur,.,idClub)
Contrainte dfinie au niveau de lattribut
ex: CREATE TABLE Resultat (
CREATE TABLE Coureur (
idCoureur INTEGER NOT NULL .,
idCourse INTEGER NOT NULL, idClub INTEGER CONSTRAINT fk_coureur_club
..,
CONSTRAINT fk_coureur_resultat FOREIGN KEY (idCoureur) FOREIGN KEY (idClub) REFERENCES
REFERENCES Coureur (idCoureur), Club(idClub)
CONSTRAINT fk_course_resultat FOREIGN KEY (idResultat) );
REFERENCES Resultat (idResultat),
CONSTRAINT pk_resultat PRIMARY KEY (idCoureur, idCourse) );

41 42

Exemple :
ON DELETE RESTRICT: Prvient leffacement dun enregistrement dans une table
parent sil est rfrenc par au moins un enregistrement dans une table enfant. Club (idClub, nomClub, villeClub, fondCourse)
Coureur (idCoureur, nomCoureur, prenomCoureur, sexeCoureur, ageCoureur,
ON DELETE CASCADE: Permet, avec leffacement dun enregistrement dans une table nomPhoto,, idClub)
parent, leffacement en cascade de tout enregistrement rfrenc dans la table enfant
correspondante. CREATE TABLE Club(
idClub INTEGER CONSTRAINT pk_club PRIMARY KEY,
nomClub VARCHAR(20) NOT NULL,
ON DELETE SET NULL: Permet, lorsquun enregistrement dans une table parent est ..
effac, la modification automatique de la valeur de la cl trangre de tous les );
enregistrements correspondants dans les tables enfants pour la valeur nulle avant deffacer CREATE TABLE Coureur(
lenregistrement dans la table parent. idCoureur INTEGER CONSTRAINT pk_coureur PRIMARY KEY,
nomCoureur VARCHAR(20) NOT NULL,
prenomCoureur VARCHAR(20) NOT NULL,
ON DELETE SET DEFAULT: Permet, lorsquun enregistrement dans une table parent est sexeCoureur CHAR(1) NOT NULL, CONSTRAINT chk_sexecoureur
effac, la modification automatique de la valeur de la cl trangre de tous les CHECK (sexeCoureur IN( 'F','M') ),
enregistrements correspondants dans les tables enfants pour sa valeur par dfaut avant nomPhoto VARCHAR(20),
deffacer lenregistrement dans la table parent. .,
idClub INTEGER CONSTRAINT fk_coureur_club REFERENCES Club(idClub)
ON DELETE CASCADE );
ON DELETE NO CHECK: Permet, lorsquun enregistrement dans une table parent est
effac, quaucune action ne soit prise pour assurer le maintien de lintgrit rfrentielle.
43 44

11
14/11/2013

Contrainte dfinie toujours au niveau de lattribut: Les fonctions :


NOT NULL
Ajouter un attribut
Contraintes dfinies toujours au niveau de la table: Supprimer un attribut
Toute contrainte qui implique deux ou plusieurs attributs de la
mme table Modifier un attribut
Ajouter une contrainte
Contraintes dfinies au niveau de la table ou au niveau
Supprimer une contrainte
de lattribut:
PRIMARY KEY; FOREIGN KEY, UNIQUE, CHECK

45 46

Syntaxe Oracle: Permet de supprimer une table.


ALTER TABLE <nom_table> Syntaxe:
ADD <definition_attribut>
MODIFY <definition_attribut>
DROP COLUMN <nom_attribut> DROP TABLE <nom_table>;
ADD CONSTRAINT <definition_contrainte>
DROP CONSTRAINT <nom_contrainte>
ex : DROP TABLE Coureur ;
ex: ALTER TABLE Coureur
ADD adresse VARCHAR(20);

ALTER TABLE Coureur


MODIFY adresse VARCHAR(30);

47 48

12
14/11/2013

Fonctions utilises : La clause INSERT INTOVALUES permet dinsrer de


nouvelles lignes dans la table.
Insertion de donnes dans les tables
Syntaxe lors de linsertion dune ligne avec des valeurs pour tous les
INSERT INTOVALUES attributs de la table (n = nombre des attributs de la table)

INSERT INTOSELECT INSERT INTO <nom_table> VALUES (valeur1, valeur2,valeurn );

Mise jour de donnes dans les tables Syntaxe lors de linsertion dune ligne avec des valeurs pour un certain
nombre dattributs de la table (j < n )
UPDATESET INSERT INTO <nom_table><attribut1, attribut2,,attributj ) VALUES
(valeur1, valeur2,valeurj );
Suppression des enregistrements
Note: Les donnes de type texte ou date doivent tre entre ' '.
DELETE

49 50

Insrer les valeurs ci-dessous dans la table Resultat: Lors de la cration des tables de la base de donnes:
Resultat
1. Crer les tables parent
2. Crer les tables enfant
idCoureur IdCourse Dossard Position Lors de linsertion des donnes dans les tables:
(INTEGER) (INTEGER) (INTEGER) (VARCHAR(3))
2 3 8 012
1. Insrer des donnes dans les tables parent
3 3 12 017 2. Insrer des donnes dans les tables enfant
INSERT
3 INTO Resultat
7 VALUES
null (2, 3, null
8, '012');
INSERT INTO Resultat VALUES (3, 3, 12, '017');
Lors de la suppression des tables de la base de donnes:
INSERT INTO Resultat(idCoureur, idCourse) VALUES (3, 7); 1. Supprimer les tables enfant
OU 2. Supprimer les tables parent
INSERT INTO Resultat VALUES (3, 7, NULL, NULL);

51 52

13
14/11/2013

Structure Exemple 1 :
SELECT liste_d_attributs Participant(numeroP
Participant(numeroP,
numeroP, nomP,
nomP, prenomP,
prenomP, adresseP)
adresseP)
FROM liste_de_tables
WHERE conditions; Select * from participant;

SELECT : indique la liste des attributs constituant le rsultat * remplace tous les tuples;
FROM : indique le (les) tables utiles la requte Cette requte retourne tous les tuples de la table
WHERE : indique les conditions que doivent satisfaire les tuples de participant
la base pour faire partie du rsultat
53

Exemple 2 :
SQL ne supprime pas les doublons
Select numeroP, nomP Exemple :
from participant
Select prenomP from participant;
where prenomP = 'Salah';

Cette requte retourne le numro et le nom de tous les


participants ayant pour prnom 'Salah'

14
14/11/2013

Requte SELECT: doublons


Il est possible de trier les donnes l'aide de la clause
Pour viter d'avoir des tuples identiques en utilise le mot cl ORDER BY suivie de la liste des attributs servant
DISTINCT
comme critre de tri
Exemple :
Exemple :
Select DISTINCT(prenomP)
Select *
from participant
from participant
ORDER BY nomP, prenomP

Dans la clause WHERE on spcifie une condition portant sur Exemples:


les attributs des relations mentionnes par la clause FROM
select NomP
Les oprateurs utiliss:
from Inscrit
AND, OR et NOT where droitinscription BETWEEN 100 and 1000;
Les oprateurs de comparaison (<,>,<=,>=, <>)
select NomP
BETWEEN pour les intervalles
from Participant
IN pour un ensemble de valeurs Where prenomP IN ('Ali','Amine','Hend');

15
14/11/2013

Requte SELECT: chaine de caractre


SQL ne distingue pas entre les minuscules et
Exemples :
majuscules pour les mots cls. Ceci n'est pas vrai pour
Select *
les valeurs, 'Tunisie' est diffrente de 'TUNISIE' from colloque
SQL fournit des options pour les recherches par motif where nomC LIKE '%a';

l'aide de la clause LIKE Tous les colloques dont le nom finit par 'a'
Select *
'%' dsigne n'importe qu'elle chane de caractres
from colloque
'_' dsigne une lettre
where nomC LIKE '__a%';

Tous les colloques dont la quatrime lettre est 'a'

Les requtes SQL dcrites dans cette section Colloque (nomC, universiteC, adresseC, dateC)
permettent de manipuler simultanment plusieurs Participant(numeroP, nomP, prenomP, adresseP)
tables et d effectuer les oprations de : Organisateur (numeroP#, telephone, nomC#)

jointure, Conferencier (numeroP#, institition)


Expose (titre, resume)
union,
Inscrit (numeroP#, nomC#, droitinscription)
intersection,
Programme(nomC#, numeroP#, titre#)

16
14/11/2013

Une jointure permet d'exprimer des requtes portant sur des Dans l'ambigut (deux attributs ayant le mme nom),
on met le nom du table comme prfixe
donnes rparties sur plusieurs tables
Comme ce n'est pas pratique de recopier intgralement
Exemple: Donner le nom et prnom de tous les participants d'un
le nom d'une table, on peut dfinir et utiliser des
colloque donne synonymes
Select NomP, PrenomP Exemple:
from Inscrit, Participant Select NomP, PrenomP
from Inscrit as I, Participant as P
where Inscrit.NumeroP = Participant. NumeroP
where I.NumeroP = P.NumeroP and
and NomC=Nom du Colloque'; NomC=nom du Colloque';

Exemple:
On peut faire intervenir plus que deux tables
Exemple: Donner des couples de colloques organiss par la mme
Select NomP, PrenomP, DateC universit
from Inscrit I, Participant P, colloque C
Select C1.NomC, C2.NomC
where I.NumeroP = P.NumeroP and
I.NomC = C.NomC; from colloque C1, colloque C2
Where C1.Universite = C2.Universite

17
14/11/2013

Le rsultat dune requte sert comme condition dans la Conditions portant sur des relations
deuxime requte
Exemple:
Ces types de requtes peuvent porter sur plusieurs
tables Select numeroP
from inscrit
where nomC In ( select nomC
from Colloque
where Universite = IbnZohr);
On peut utiliser = la place de IN si on est sr que
la sous requte ramne une seule ligne

Agrgation : exemple
Les fonctions d'agrgation permettent de faire des oprations - Select count (NomC)
sur une slection de champ
From colloque;
Elles effectuent un calcul sur un ensemble de valeurs et
retournent une valeur unique
-Select sum (droitinscription)
Les fonctions d'agrgation les plus rpandues From inscrit
COUNT : nombre de lignes, ou de valeurs non nulles
MAX : calcule la valeur maximale d'une colonne Where NumeroP = 100;
MIN : calcule la valeur minimale d'une colonne
AVG : calcule la moyenne dune colonne
-Select count(numStation), AVG (tarif), MAX (tarif),
SUM : calcule la somme sur une colonne
MIN (tarif)
Les fonctions d'agrgation sont souvent utilises avec la clause From Station;
GROUP BY de l'instruction SELECT

18
14/11/2013

Construit des groupes en associant les lignes partageant On peut ajouter une condition sur le groupe
la mme valeur pour une ou plusieurs colonnes
Exemple:
Exemple: Select universite, count (NomC)
Select universite, count (NomC) From colloque
from colloque Group by universite
Group by universite; Having count (NomC) >= 3;

La clause UPDATE permet de modifier les lignes La clause DELETE permet de supprimer des lignes
dune table. dune table.
Syntaxe: Syntaxe:
UPDATE <nom_table>
SET <nom_attribut> = <expression> DELETE FROM <nom_table>
[ WHERE <critre> ] [ WHERE <critre> ] ;

ex: UPDATE Coureur ex: DELETE FROM Club


SET nomPhoto = bolduc.gif
WHERE idCoureur = 1; WHERE idClub = 2;

75 76

19
14/11/2013

Donnez les commandes SQL permettant dinsrer les deux lignes


suivantes dans la table Livre.
Donnez les commandes SQL permettant de crer les tables ci-dessous:
Livre (idLivre, nomLivre, ISBN, etatLivre, nombrePages) idLivre nomLivre ISBN etatLivre nombrePages
Pret (idPret, datePret, dateRetour, duree) 1 IntroSQL 101201 bon NULL
DetailPret (idPret, idLivre) 2 ACCESS 261653 bon 849
3 SI 345670 Moyen 270
Note: Prenez en considration les informations suivantes lors de la 4 Merise 876539 mauvais NULL
creation des tables:
ISBN doit tre form de 6 chiffres; il est unique. Slectionner les livres dont le nombre de page est inconnu
Ltat du livre peut tre bon, moyen ou mauvais. Slectionner les livres dont ltat est bon
La dure du prt est toujours de 14 jours. Mettez jour les tables:
La date du prt par dfaut est la date du jour. Livre:
La date de retour doit toujours tre plus grande que la date de prt.
Ajoutez le nombre de pages (230) pour le livre dont
Linformation sur le nombre de pages dun livre nest pas obligatoire.
lidentificateur est idLivre = 1
Effacez le livre dont lidentificateur est idLivre=1
77 78

Exercices (suite)
Prt:
Augmentez la dure de prt de 3 jours
Supprimer le livre dont l tat est mauvais
Donner la liste des livres qui doivent tre retourn
aujourdhui
Donner la liste des livres dont le dlais de prt est
dpass

20