Professional Documents
Culture Documents
Le langage SQL
(LDD : Langage de Dfinition des Donnes)
SAGAR Samya
Introduction
SAGAR Samya
Prsentation de SQL
SQL = Structured Query Language
Langage de gestion de bases de donnes relationnelles pour;
Dfinir les donnes (LDD ; Langage de Dfinition des Donnes gres)
ordres CREATE, ALTER,DROP (Cration des objets).
aux Donnes)
ordres GRANT, REVOKE (gestion des droit);
ordres COMMIT, ROLLBACK (gestion des transactions).
SAGAR Samya
SAGAR Samya
Utilisation de SQL
Interactif (SQL*Plus)
Intgr dans un programme (PLSQL)
SAGAR Samya
Oracle
SGBDR (Relationnel) qui utilise le langage SQL
Langage procdural PL/SQL (dit L 4G) propritaire
Nombreux programmes utilitaires
SQL*PLUS : SQL interactif, avec quelques ajouts
SQL*FORMS : saisir/voir des donnes avec des formulaires
SQL*REPORTWRITER : rapports imprims
...
SAGAR Samya
Oracle
Pour chaque utilisateur reconnu de la base de
donnes, un schma , aussi appel compte , est cre
SAGAR Samya
Oracle
Par dfaut, chaque utilisateur a accs toutes les
objets de mme nom
La protection des objets de la base est dcentralise;
tout objet a un utilisateur crateur, qui possde tous
les droits (consultation, modification et suppression)
sur cet objet
SAGAR Samya
Oracle_Exemple
Samya cre la table Client . La table Client est
dans le schma Samya . Pour dsigner sa table Client
Samya utilise le mot Client
Samya.Client mais elle peut le faire si elle veut
Mohamed ne peut accder la table Client de
Samya
Samya donne le droit de consultation sur sa table
Client
Mohamed .
Mohamed peut dsormais accder la table Client
de Samya (en consultation). Pour dsigner la table Client de
Samya
Mohamed doit employer le mot
Samya.Client
Mohamed
Client .
Mohamed dsignera sa table Client par Client (ou
Mohamed.Client ) et celle de Samya par Samya.Client
9
SAGAR Samya
Identificateurs
Identificateurs pour les objets manipuls
30 caractres au plus
lettres, chiffres, _, $ ou # (commence par une lettre)
pas un mot clef
10
SAGAR Samya
Tables
Relations stockes sous forme de tables composes de
lignes et de colonnes
schma (pour runir tous les objets lis un mme
thme)
Sous Oracle, le schma est remplac par le nom de
11
SAGAR Samya
Tables
Exemple de table ; DEPT
12
dept
nomD
Lieu
10
Finances
Gabs
20
Recherche
Sousse
30
Ventes
Kairouan
SAGAR Samya
Tables
Exemple de table ; EMP
13
matr
nomE
sal
com
sup
dept
1200
Med
2500
300
2200
10
2200
Mahmoud
3000
500
1780
Samya
2500
10
2200
SAGAR Samya
20
Colonnes
14
SAGAR Samya
Types de donnes
15
SAGAR Samya
16
SAGAR Samya
17
SAGAR Samya
NUMERIC(8, 2) ou DECIMAL(8, 2)
6 chiffres avant la virgule et 2 aprs
18
SAGAR Samya
VARCHAR(longueurMaximum)
chanes de caractres avec un nombre variable de caractres
(mais un nombre maximum de caractres)
' doubl
19
SAGAR Samya
Types temporels
DATE pour les dates
TIME pour les heures, minutes et secondes
TIMESTAMP pour un moment prcis :
la microseconde (un millionime de seconde)
20
SAGAR Samya
Type binaires
Ce type permet d'enregistrer des donnes telles que les
images et les sons, de trs grande taille et avec divers
formats.
BIT
Exemples :
BIT(1)
BIT(4)
Note :
Pas support par Oracle
21
SAGAR Samya
NUMBER
nombre virgule flottante avec jusqu' 38 chiffres significatifs
NUMBER(nbChiffres [, nb
-dcimales])
22
SAGAR Samya
23
SAGAR Samya
le format dpend de la
localisation de la base
24
SAGAR Samya
25
SAGAR Samya
Remarque
Voir cours Base de donnes ; semestre 1 _ 2INFO
26
SAGAR Samya
27
SAGAR Samya
Syntaxe simplfie :
Exemple :
29
SAGAR Samya
DESCRIBE
Cette
Type
CHAR(5)
VARCHAR(20)
NUMBER(9,2)
DATE
Mme si le type
donn la
cration est
DECIMAL
30
SAGAR Samya
31
SAGAR Samya
: cl primaire
: cl trangre
2 types de contraintes :
contrainte de colonne
concerne une seule colonne
elle suit la dfinition de la colonne dans un ordre CREATE TABLE
contrainte de table
concerne une ou plusieurs colonnes
elles se place au mme niveau que les dfinition des colonnes dans un ordre
CREATE TABLE ou ALTER TABLE.
32
SAGAR Samya
SAGAR Samya
Cl primaire
SAGAR Samya
null
UNIQUE
35
SAGAR Samya
36
SAGAR Samya
Cl trangre
Si une seule colonne forme la cl trangre, le plus simple est
REFERENCES table -ref [(col1)]
r_dept references
Optionnel si
colonne rfrence
est cl primaire
REFERENCES table -
SAGAR Samya
dept )
dept
SAGAR Samya
SAGAR Samya
Contrainte CHECK
CHECK(condition )
Donne une condition que les colonnes de chaque ligne
devront vrifier.
On peut ainsi indiquer des contraintes d'intgrit de
domaines.
Cette contrainte peut tre une contrainte de colonne ou
de table.
Si c'est une contrainte de colonne, elle ne doit porter que
sur la colonne en question.
41
SAGAR Samya
Exemples de contraintes
42
SAGAR Samya
43
SAGAR Samya
44
nom_unique
sal_min CHECK (sal + coalesce( comm ,0)>50)
RENAME CONSTRAINT
nom1 TO nom2
MODIFY CONSTRAINT
sal_min DISABLE
SAGAR Samya
SAGAR Samya
Contraintes diffrables
contrainte peut tre diffre la fin de la
transaction.
Si une contrainte est diffre et si elle n'est pas
vrifie au moment du commit de la transaction,
toute la transaction est invalide (rollback)
automatiquement par le SGBD.
46
SAGAR Samya
SAGAR Samya
48
SAGAR Samya
49
SAGAR Samya
50
SAGAR Samya
Exemple :
ALTER TABLE EMP DISABLE CONSTRAINT NOM_UNIQUE
SAGAR Samya
Cration et descriptions
52
SAGAR Samya
Schma
CREATE SCHEMA AUTHORIZATION
Un schma est un ensemble d'objets (tables, vues, index, autorisations,
etc...) grs ensemble.
On pourra ainsi avoir un schma li la gestion du personnel et un autre
li la gestion des clients.
Cette notion introduite par la norme SQL2 n'est pas vraiment prise en
compte par Oracle qui identifie pour le moment un nom de schma avec
un nom d'utilisateur.
Le catalogue , est un ensemble de schmas.
Un catalogue doit ncessairement comprendre un schma particulier qui
correspond au dictionnaire des donnes
.
53
SAGAR Samya
SAGAR Samya
Exemple :
alter table personne
add (email_valide char(1)
constraint personne_email_valide
check( email_valide in ('o', 'n')));
55
SAGAR Samya
MODIFY
SAGAR Samya
MODIFY
Exemples
57
SAGAR Samya
Important
rfrence par une cl trangre
sur laquelle un index a t construit
Exemple :
ALTER TABLE EMP
DROP COLUMN sal;
58
SAGAR Samya
RENAME COLUMN
59
SAGAR Samya
RENAME TO
60
TO nouveauNom
SAGAR Samya
table
employe FOR
SAGAR Samya
Vue
Une vue est une vision partielle ou particulire des
select :
les donnes de la vue sont celles retournes par le select
63
SAGAR Samya
Exemple :
SAGAR Samya
65
SAGAR Samya
66
SAGAR Samya
67
SAGAR Samya
Exemple :
update emp10
set sal = sal * 1.1;
68
SAGAR Samya
Exemple
insert into emp10 ( matr , nome
69
SAGAR Samya
SAGAR Samya
Option CHECK
Une vue peut crer des donnes qu'elle ne pourra pas
visualiser.
On peut ainsi ajouter un employ du dpartement 20 avec la vue
EMP10.
71
interdit
SAGAR Samya
72
SAGAR Samya
73
SAGAR Samya
Index
Un index utilise des techniques informatiques pour
rendre trs rapides les accs aux valeurs d'une colonne
Exemple :
select * from emp
where nomE
de lignes
SAGAR Samya
nomIndex
Exemple :
create index nomE on emp(nomE);
Suppression :
DROP INDEX
75
nomIndex
SAGAR Samya
76
SAGAR Samya
lock table;
val = select max(cle) from table;
insert into table
commit;
77
SAGAR Samya
78
SAGAR Samya
Variante 2 :
Une table par cl
Variante 3 :
Quelle colonnes dans la table des cls ?
79
SAGAR Samya
lock table_cle;
update table_cle
set cle = cle + 1;
val = select cle from table_cle;
commit;
insert into table
commit;
80
SAGAR Samya
81
SAGAR Samya
82
Oracle , DB2 et
SAGAR Samya
Exemple
83
SAGAR Samya
Remarques :
On ne peut utiliser CURRVAL
une fois dans la session de travail
NEXTVAL au moins
84
SAGAR Samya
Exemple :
USER_SEQUENCES et ALL_SEQUENCES
85
SAGAR Samya
86
IDENTITY
SAGAR Samya
Conclusion
87
SAGAR Samya