Wided BOUCHELLIGUA
2007/2008
Chapitre I
Prsentation du SGBD Oracle
Objectifs
Dfinir les fonctionnalits dOracle
Connatre larchitecture fonctionnelle dOracle
Les objets manipuls dans Oracle
Introduction
Dbut des annes 70, le modle relationnel fait son apparition [E. F. Codd], IBM
San Jose
Concepts pour :
la dfinition des donnes
la manipulation des donnes
concepts additionnels (optimisation, maintenance, dfinition des droits)
Oracle developp par Oracle Corporations, cest un ensemble dapplications crit en
C puis en java (80%)
Principales tapes :
1970 : The relational model (CODD, ACM)
1974 : dbut des projets R (IBM) et INGRES (Berkeley)
1981 : commercialisation de SQL/DS et INGRES
1986 : normalisation de SQL1
1984 Oracle version PC (Dos, Windows 3.X, 95, 98, NT, 2000)
Langage de dveloppement sous Oracle : Pro* (pro.C, pro.cobol, pro.fortran,
pro.pascal)
L4G pl / SQL (SQL plus, Developper 2000, Designer 2000)
UN SGBD Oracle est caractris par :
La portabilit : une application dveloppe sous Oracle peut tre support par une
varit de plateformes matrielle (Oracle peut fonctionner sur toutes les gammes de
machine) et logiciels (sur la majorit des SX)
La compatibilit : Oracle est membre dans les compagnies de Normalisation AFNOR,
ISO, IEEE
Le langage SQL t normalis en 86.
La connectablit : Oracle est ouvert sur plusieurs autres SGBD
ISIMG
-2-
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
Fonctionnalit dOracle
Oracle possde les fonctionnalits dun SGBD Relationnel qui sont :
a) Dfinition et Manipulation de donnes : Oracle dispose dun langage de
dfinition de donnes LDD permettant la dfinition des objets dun base de
donnes (table, vue, index, trigger, cluster, etc.). Il dispose aussi dun langage
de Manipulation de donnes LMD permettant la consultation de donne
travers la commande SELECT, linsertion des donnes (commande Insert) et la
suppression (commande DELETE)
b) Cohrence des donnes : Oracle fonctionne avec le concept de la
transaction ; c--d une unit logique indivisible
c) Confidentialit : Oracle dispose des moyens de scurit des donnes en
protgeant les donnes contre tout accs interdit. Oracle dispose dun langage
de contrle de donnes LCD permettant dattribuer les droits daccs ou de les
retirer.
d) Intgrit des donnes : Oracle dispose dun mcanisme permettant la
dfinition des contraintes sur les donnes de la base.
CI
Cl primaire : primary key
Cl trangre : Foreign key
De valeur : not-null
Condition : check
Unicit : unique
e) Gestion daccs concurrent : Oracle gre tout accs simultans, il permet
lutilisation multi-utilisateurs et une base de donne repartie.
ISIMG
-3-
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
Outils de dveloppement
Pro*
Develpper 2000
Outils dadministration
SQL DBA
Outils de Modulisation
Designer 2000
Connexion SQLnet / SQL star
ISIMG
-4-
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
Chapitre II
Le Langage SQL
1. Historique du langage
En 1970, SQL (Standard Query Language, en franais langage de requtes
structures) est n la suite des travaux mathmatiques de Codd (Directeur de
recherche du centre IBM San-Jos), travaux qui ont fond les bases de donnes
relationnelles. Suite ces recherches plusieurs langages sont apparus :
IBM Sequel (Structured English Query Language) en 1977
IBM Sequel/2
IBM System/R
IBM DB2
En 1982, SQL fut lanc commercialement par IBM. SQL a subit 3 normalisations :
SQL1 en 1986 (version minimale)
SQL1 en 1989 (+ intgrit)
SQL2 en 1992
SQL3 en 1999
Aujourd'hui SQL constitue le point d'entre obligatoire sur une Base de Donne
relationnelle.
2. Principes du langage
SQL est un langage non procdural. Il se diffre d'un langage de programmation
avec le fait qu'il n'a pas de structure de contrle et aussi car il manipule des
ensembles.
Une requte en SQL a un format relativement simple. Il est constitu en gros de 3
lments essentiels :
Une premire partie SELECT qui permet de dterminer les attributs qui vont nous
servir comme rsultats de la requte.
Une partie FROM qui indique dans quelles tables on va chercher les informations.
Une partie WHERE qui va permettre d'inclure des conditions.
ISIMG
-5-
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
ISIMG
-6-
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
ISIMG
-7-
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
Syntaxe
Commentaires
Alphanumrique
CHAR(n)
Alphanumrique VARCHAR2(n)
Numrique
Number(n,[d])
Numrique
INTEGER
Numrique
SMALLINT
Numrique
FLOAT
Temps
DATE
Temps
TIME
Temps
TIMESTAMP
Date et heure
ISIMG
-8-
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
La contrainte rfrentielle qui pose la contrainte sur le fait qu'un attribut doit
exister dans une autre table. La syntaxe est donc :
REFERENCES <table rfrence> [ <attribut rfrenc > ]
La contrainte gnrale : sa syntaxe est : CHECK <condition>. La condition
peut tre simple (exemple : CHECK BETWEEN 1 and 10) ou alors on peut
tre une condition avec un ordre SELECT.
Exemple : On veut crer la table des commandes comportant 3 attributs : le numro
de commande qui doit tre unique et non nul (sinon une commande ne peut tre
identifie) la date de commande et le numro de fournisseur.
Create table COMMANDE (numcom NUMBER (5) PRIMARY KEY,
Datecom DATE, Numfou NUMBER(5) REFERENCES FOURNISSEUR) ;
-9-
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
4. Dclaration de domaine
Les domaines sont utiliss lors de la dfinition des attributs de table. Voici la syntaxe
d'un domaine :
Create Domain <nom_domaine> As <type de donne>
[default <valeur>] [check <condition> ]
Exemple :
Create Domain acquisition As DATE
Default CURRENT_DATE
Ici CURRENT_DATE est une variable qui donne la date du jour.
ISIMG
- 10 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
La dclaration de domaine sert dfinir un nouveau type de donne que l'on utilisera
lors de la dclaration d'un attribut par exemple.
6. La suppression de table
Une requte de destruction d'une table provoque :
- la destruction des informations contenues dans la table.
- la destruction du schma de la relation. (Aucune requte ne pourra tre effectuer
sur cette table dans le futur)
La syntaxe :
Drop Table < nom de table >
ISIMG
- 11 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
- 12 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
Voici sa syntaxe :
Update < nom de table >
Set {< nom attribut > = valeur }
Where < condition de recherche >
Exemple : On veut augmenter le salaire de Perrin de 10%.
Update < EMPLOYES >
Set { sala = 1.1*sala }
Where nomemp = " Perrin "
3. Suppression de tuples
Pour supprimer un tuple dans une table on utilise la commande DELETE.
Voici sa syntaxe :
Delete From < nom table >
Where < condition de recherche >
Exemple : On veut enlever l'employ Lewinski de la table des PRIMES.
Delete From PRIMES
Where nomemp = " Lewinski "
ISIMG
- 13 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
2. Dfinition
On dfinit une vue par une table virtuelle, c'est--dire dont les donnes ne sont pas
stockes dans une table de la base de donnes, et dans laquelle il est possible de
rassembler des informations provenant de plusieurs tables. On parle de "vue" car il
s'agit simplement d'une reprsentation des donnes dans le but d'une exploitation
visuelle. Le contenu de cette vue est dfini par une requte SQL.
3. Dclaration
Voil la syntaxe pour dclarer une vue :
Create View < nom vue > [{<liste des attributs>}] As <requte SQL>
[With Check Option]
La clause facultative with check option permet de dfinir, lors de la mise jour de
donnes via la vue, que la (les) conditions de la clause where doit tre vrifie. Si
elle n'est pas prsente, aucune vrification ne sera faite.
Avec cette clause, on peut insrer des lignes, mettre jour des colonnes, par
l'intermdiaire d'une vue, si les conditions du where sont respectes ( voir dans le
G)
Pour dtruire une vue :
Drop view <nom de vue >
ISIMG
- 14 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
4. Exemple
Create view EMPLOYES10 As
Select noemp, nomemp, fonction
From EMPLOYES
Where nodep = 10
Ici on cre une vue pour pouvoir faire des requtes uniquement sur les employs du
dpartement 10. Donc ensuite on peut effectuer des requtes sur cette vue
exactement de la mme manire qu'avec une table.
5. Avantages
Grces aux vues on a de nombreux avantages :
Perception plus proche des besoins des utilisateurs.
D-normalisation de la structure de la base de donnes sans
introduire de la redondance.
Meilleure indpendance logique des programmes par rapport aux
donnes.
Limiter les accs aux donnes.
Simplification des requtes utilisateurs.
ISIMG
- 15 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
ISIMG
- 16 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
ISIMG
- 17 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
Ville
30
Dveloppement Marseille
35
Dveloppement Nice
45
Analyse
Toulon
50
Maintenance
Paris
60
Recherche
Toulouse
Le rsultat de la requte :
nodep nomdep
30
Dveloppement
35
Dveloppement
45
Analyse
50
Maintenance
60
Recherche
Pour slectionner tous les attributs de la table on peut utiliser le caractre '*' :
Exemple :
Select *
From DEPARTEMENT ;
ISIMG
- 18 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
ISIMG
- 19 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
EMPLOYES
Noemp nomemp fonction
comm nodep
01
Legros
Programmeur 02
60
02
Perrin
Ingnieur
08
30
03
Manitou Ouvrier
01
30
04
James
Ouvrier
01
45
05
Smith
Ouvrier
01
30
06
Lewitski Stagiaire
02
60
07
Martin
12
50
Ouvrier
nomemp
nodep
03
Manitou
30
05
Smith
30
Oprateurs arithmtiques :
+
*
/
^
ISIMG
- 20 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
sala
comm
sala+comm
Manitou
140000
7850
147850
James
140000
1000
141000
Smith
145000
500
145500
Martin
140000
3000
143000
Comparateurs de comparaison :
=
!= ou <> (diffrent)
<
>
<= (infrieur ou gale)
>= (suprieur ou gale)
ISIMG
- 21 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
ISIMG
- 22 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
Select *
From EMPLOYES
Where noresp IS NULL;
Fonctions numriques prdfinies :
ABS (c'est la valeur absolue)
GREATEST (exemple : GREATEST(sala, comm) qui sert savoir laquelle des
valeurs d'un ensemble est la plus grande.
LEAST (pour connatre la valeur la plus basse, on l'utilise de la mme faon
que GREATEST)
ISIMG
fonction
noresp datemb
sala
comm nodep
01
Legros Programmeur
02
60
02
Perrin
Ingnieur
08
11/08/82 200000
500
30
03
Manitou
Ouvrier
01
30
04
James
Ouvrier
01
45
05
Smith
Ouvrier
01
13/12/85 145000
500
30
06
Lewitski
Stagiaire
02
29/12/86 30000
600
60
07
Martin
Ouvrier
12
50
- 23 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
Le rsultat :
noemp
nomemp
fonction
sala
03
Manitou
Ouvrier
140000
05
Smith
Ouvrier
145000
02
Perrin
Ingnieur
200000
On pourra aussi trier avec plusieurs critres. Par exemple on veut slectionner les
employs en les triant par salaire dcroissant et par ordre alphabtique des noms.
C'est dire que pour ceux qui auront le mme salaire ils seront classs dans l'ordre
alphabtique.
Select noemp, nomemp, fonction, sala
From EMPLOYES
Order by sala desc, nomemp asc ;
Le rsultat :
noemp
nomemp
fonction
sala
02
Perrin
Ingnieur
200000
01
Legros
Programmeur
150000
05
Smith
Ouvrier
145000
04
James
Ouvrier
140000
03
Manitou
Ouvrier
140000
07
Martin
Ouvrier
140000
06
Lewitski
Stagiaire
30000
5. Requtes multi-relations
Les requtes multi-relations reprsentent en fait les jointures. Une jointure sert
lier des champs de diffrentes tables, mettre une relation entre eux. Il faut que les
champs que l'on souhaite lier soient du mme type (cf chapitre 2). Pour tenter d'tre
plus clair regardons un cas de jointure sur un exemple :
EMPLOYES
Noemp nomemp
ISIMG
fonction
noresp datemb
sala
comm nodep
01
Legros Programmeur
02
60
02
Perrin
Ingnieur
08
11/08/82 200000
500
30
03
Manitou
Ouvrier
01
30
04
James
Ouvrier
01
45
05
Smith
Ouvrier
01
13/12/85 145000
30
- 24 -
500
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
06
Lewitski
Stagiaire
02
29/12/86 30000
600
60
07
Martin
Ouvrier
12
50
DEPARTEMENT
nodep
nomdep
Ville
30
Dveloppement Marseille
35
Dveloppement
Nice
45
Analyse
Toulon
50
Maintenance
Paris
60
Recherche
Toulouse
nomemp
nomdep
02
Perrin
Dveloppement
03
Manitou
Dveloppement
04
James
Analyse
05
Smith
Dveloppement
NB : Si on avait voulu afficher aussi le nodep, il aurait fallu prciser dans quelle table
on le choisissait. Il suffisait simplement de rajouter dans la ligne du select : Select
noemp, nomemp, nomdep, DEPARTEMENT.nodep
Astuce : On pourra donner des alias aux noms de tables pour viter de taper
chaque fois le nom de la table entirement dans la requte.
Voil la requte prcdente mais avec des alias :
ISIMG
- 25 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
Exemple : On veut la moyenne des salaires des employs qui sont ouvriers.
Select AVG (sala)
From EMPLOYES
Where fonction = "ouvrier " ;
ISIMG
- 26 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
07
fonction
noresp datemb
sala
comm nodep
01
Legros Programmeur
02
60
02
Perrin
Ingnieur
08
11/08/82 200000
500
30
03
Manitou
Ouvrier
01
30
04
James
Ouvrier
01
45
05
Smith
Ouvrier
01
13/12/85 145000
500
30
06
Lewitski
Stagiaire
02
29/12/86 30000
600
60
Martin
Ouvrier
12
50
AVG (sala)
30
160667
40
140000
50
140000
60
90000
On a donc dans une colonne chaque dpartement et dans l'autre la moyenne des
salaires des employs de chaque dpartement.
NB : Il est possible de faire des groupes dans les groupes. Pour mieux comprendre,
faisons un exemple :
Exemple : On veut faire la moyenne des salaires par dpartement et par fonction au
sein de chaque dpartement et compter le nombre de personnes. Par exemple pour
comparer la moyenne des salaires des ouvriers par dpartement et de mme pour
les autres fonctions. Faisons la requte parti de la mme table EMPLOYES que
prcedemment :
Select nodep, fonction, COUNT(*), AVG (sala)
ISIMG
- 27 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
From EMPLOYES
Group by nodep, fonction ; (on les groupe d'abord par nodep puis par fonction)
On obtient donc :
nodep
fonction
COUNT(*)
AVG(sala)
30
Ingnieur
200000
30
Ouvrier
142500
40
Ouvrier
140000
50
Ouvrier
140000
60
Programmeur
150000
60
Stagiaire
30000
Pour appliquer des restrictions sur ces " sous-tables " on utilise la commande
Having qui est en gros l'quivalent du Where pour les groupes.
Voici un exemple : On veut la liste des fonctions avec leur moyenne de salaire mais
seulement si il y a plus d'une personne qui a cette fonction.
Voil la requte :
Select fonction, COUNT(*), AVG (sala)
From EMPLOYES
Group by fonction
Having count(*) > 1 ;
Voil le rsultat dans une table :
fonction COUNT(*) AVG(sala)
Ouvrier
141250
La fonction ouvrier est la seule o il y a plus d'un employ qui a cette fonction
. Requtes imbriques
On parle de requtes imbriques lorsqu'on a une requte dans la clause " where "
ou " having " c'est dire lorsque l'on fait une requte l'intrieur d'une requte; on
parle aussi de sous-requtes. Donc on utilise le rsultat de la requte imbrique
pour raliser la requte. Pour mieux comprendre rien de mieux qu'un exemple :
Exemple : On veut la liste de tous les employs ayant la mme fonction que " Martin
". Il parat donc vident que l'on ne peut avoir cette requte directement ! La requte
imbrique vient nous sauver
ISIMG
- 28 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
fonction
Manitou
Ouvrier
James
Ouvier
Smith
Ouvrier
Martin
Ouvrier
fonction
noresp datemb
sala
comm nodep
01
Legros Programmeur
02
60
02
Perrin
Ingnieur
08
11/08/82 200000
500
30
03
Manitou
Ouvrier
01
30
04
James
Ouvrier
01
45
05
Smith
Ouvrier
01
13/12/85 145000
500
30
06
Lewitski
Stagiaire
02
29/12/86 30000
600
60
07
Martin
Ouvrier
12
50
DEPARTEMENT
nodep nomdep
30
Dveloppement Marseille
35
Dveloppement Nice
45
Analyse
Toulon
50
Maintenance
Paris
60
Recherche
Select distinct nodep, distinct nomdep
From DEPARTEMENT
Where nodep in (Select nodep
From EMPLOYES
Where sala > 140000);
ISIMG
Ville
- 29 -
Toulouse
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
Dveloppement
60
Recherche
Requtes quantifies
On peut utiliser des requtes quantifies dans le cas o l'on a une requte
imbrique. Une requte imbrique, ou sous-requte, renvoie des valeurs et pour
filtrer ces valeurs on utilisera des oprateurs ; on parlera alors de requte quantifie.
Parmi ces oprateurs on a ANY, ALL et EXIST. Il est possible aussi de rajouter
cette liste l'oprateur IN mais comme on peut aussi l'utiliser dans des requtes sans
requtes imbriques nous avons prfr le dfinir en tant que simple oprateur. Voici
l'explicatif de ces oprateurs :
ANY : La condition expression > (ou <) ANY suivie d'une sous-requte teste si
l'expression est suprieure (ou infrieur) au moins un lment de l'ensemble de
valeurs fournies par la sous-requte qui ne doit comporter qu'un seul champ extrait
ALL : La condition expression > (ou <) ALL suivie d'une sous-requte teste si
l'expression est suprieure tous les lments de l'ensemble de valeurs fournies par
la sous-requte qui ne doit comporter qu'un seul champ extrait.
EXISTS : La condition EXISTS suivie d'une sous-requte a la valeur vrai si la sousrequte extrait un ensemble non vide de valeurs.
ISIMG
- 30 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
fonction
01
Legros
Programmeur 02
60
02
Perrin
Ingnieur
08
30
03
Manitou
Ouvrier
01
30
04
James
Ouvrier
01
45
05
Smith
Ouvrier
01
30
06
Lewitski
Stagiaire
02
60
07
Martin
Ouvrier
12
50
08
Trousselier Ingnieur
10
40
09
Challal
10
50
Ingnieur
comm nodep
fonction
noemp
nodep
250000
Ingnieur
Trousselier
40
210000
Ingnieur
Challal
50
ISIMG
- 31 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
From EMPLOYES
Where nodep = 30);
On obtient donc :
sala
fonction
nomemp
nodep
150000
Programmeur Legros
60
200000
Ingnieur
Perrin
30
145000
Ouvrier
Smith
30
250000
Ingnieur
Trousselier
40
210000
Ingnieur
Challal
50
Le salaire minimum dans le dpartement 30 est de 140000 donc tous les employs
qui ont un salaire strictement suprieur 140000 sont slectionn mme si ils font
partis du dpartement 30.
Exemple 3 : On voudrait la fonction, le n, le nom d'employ et le n de dpartement
des employs qui sont responsables.
On garde la mme table des employs que prcdemment.
Select fonction, noemp, nomemp, nodep
From EMPLOYES R
Where EXISTS (Select *
From EMPLOYES
Where R.noemp = noresp ) ;
Voil le rsultat :
fonction
noemp nomemp
nodep
Programmeur
01
Legros
60
Ingnieur
02
Perrin
30
Ingnieur
08
Trousselier
40
Oprations ensemblistes
Les oprations ensemblistes s'utilisent pour crer une relation, une opration entre 2
requtes. On les utilise entre 2 clauses select. En gros avec les rsultats des deux
requtes on les met en relations grce l'oprateur ensembliste. Comme oprateurs
on a :
ISIMG
- 32 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
UNION sert runir les n-uplets slectionns par les requtes. Par dfaut cet
oprateur supprime les redondances (doubles). Pour pouvoir garder les doubles on
utilise UNION ALL.
Exemple : on veut les employs qui sont ouvriers ou ceux qui appartiennent au
dpartement 30.
Select noemp
From EMPLOYES
Where Fonction = " ouvrier "
UNION
Select noemp
From EMPLOYES
Where noemp = 30;
NB: On pourra remarquer qu'ici l'UNION n'tait pas vraiment indispensable.
INTERSECT permet de renvoyer toutes les lignes communes aux requtes. Les
deux tables qui reprsentent les oprandes directs de INTERSECT doivent avoir le
mme nombre de colonnes, et les colonnes correspondantes doivent tre de types
donne compatibles. On l'utilise de la mme faon que UNION.
EXEPT permet de renvoyer les lignes du haut de la requte qui ne sont pas dans le
bas de la requte. Les deux tables qui reprsentent les oprandes directs de
EXCEPT doivent avoir le mme nombre de colonnes, et les colonnes
correspondantes doivent tre de types donne correspondantes. On l'utilise de la
mme faon que UNION.
Exemple : On souhaite avoir la liste des employs qui sont ouvriers mais qui ne font
pas partis du dpartement 30.
Select noemp
From EMPLOYES
Where Fonction = " ouvrier "
EXEPT
Select noemp
From EMPLOYES
Where noemp = 30 ;
ISIMG
- 33 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
Chapitre III
Le Contrle de donnes sur Oracle
I. Introduction
ISIMG
- 34 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
III.
Le crateur de la base peut attribuer des droits daccs et des droits de mise
jour sur sa base au profit des autres utilisateurs cre par le DBA.
Pour attribuer des prvilges sur les objets locaux aux autres utilisateurs on
utilise :
grant <prvilge> on <nom objet> to {<user name> , public}
<prvilge> peut tre :
- select : consultation des donnes de lobjet (table, vue, )
- insert crer des nouvelles donnes sur les tables
- delete : suppression des donnes de la table
- update : m. j. des donnes
- alter : m. j. de la structure dune table
- Index : crer de nouveaux index sur la table
- All
Exemple :
Grant select, insert On Article to commerciale2
ISIMG
- 35 -
Base de donnes II
Wided BOUCHELLIGUA
2007/2008
Une fois lutilisateur commerciale2 est connect sur Oracle (nom, pw) il peut
consulter, insrer des nouveaux tuples de la table Article de lutilisateur commerciale.
Commerciale 2 connect
SQL > select * from commerciale.article
SQL> insert into Commerciale.article value ( , , ,)
SQL> update Commerciale.article set pu = 6500 X opration impossible X
Le propritaire de la base peut retirer les prvilges, quil a attribu aux autres
utilisateurs :
revoke <prvilges> on <objet> from <user name>
ISIMG
- 36 -
Base de donnes II