Table
Vue
S´equence
Index
Synonyme
Le langage SQL
Langage de D´efinition de Donn´ees
Ines BAKLOUTI
Ecole Sup´erieure Priv´ee d’Ing´enierie et de Technologies
Table
Vue
S´equence
Index
Synonyme
Plan
1 Table
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
2 Vue
Cr´eation et modification de vue
Suppression de vue
3 S´equence
Cr´eation de s´equence
Modification de s´equence
Utilisation de s´equence
Suppression de s´equence
4 Index
Cr´eation d’index
Suppression d’index
5 Synonyme
Cr´eation et supression de synonyme
2/46
Table
Vue
S´equence
Index
Synonyme
Introduction
SQL = Structured Query Language
un langage de d´efinition de donn´ees (LDD),
un langage de manipulation de donn´ees (LMD),
un langage d’interrogation de donn´ees (LID),
un langage de contrˆole de donn´ees (LCD)
DDL = Data Definition Language (Langage de D´efinition de
Donn´ees LDD)
Cr´eation d’une structure de donn´ees (Create)
Modification de la structure d’un objet de la base de donn´ees (Alter)
Suppression d’une structure de donn´ees(Drop )
3/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Plan
1 Table
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
2 Vue
Cr´eation et modification de vue
Suppression de vue
3 S´equence
Cr´eation de s´equence
Modification de s´equence
Utilisation de s´equence
Suppression de s´equence
4 Index
Cr´eation d’index
Suppression d’index
5 Synonyme
Cr´eation et supression de synonyme
4/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Cr´eation de table
Syntaxe
CREATE TABLE [schema.]<nom table>
(<nom colonne> type [DEFAULT expr],
<nom colonne> type [DEFAULT expr],
. . . . . .
) ;
Exemple
CREATE TABLE Etudiants (Netudiant number, nom varchar2(10), prenom varchar2(10)) ;
DESCRIBE (ou DESC) Etudiants ; –pour voir la description de la table
5/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Cr´eation de table
Types de donn´ees
6/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Cr´eation de table `a partir d’une sous-int´errogation
Syntaxe
CREATE TABLE [schema.]<nom table>
(<nom colonne> type [DEFAULT expr],
<nom colonne> type [DEFAULT expr],
. . . . . .
) AS sous interrogation ;
Exemple
CREATE TABLE emp as select * from employees where department id=20 ;
SELECT * FROM emp ;
7/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
Il existe cinq types de contraintes :
NOT NULL
UNIQUE
CHECK
PRIMARY KEY
FOREIGN KEY
Il existe deux niveaux de d´efinition de contraintes :
contrainte au niveau colonne : contrainte d’int´egrit´e incluse dans la
d´efinition de la colonne
contrainte au niveau table : contrainte d’int´egrit´e incluse dans la
d´efinition de la table
syntaxe : CREATE TABLE [schema.]table (nom colonne type
[DEFAULT expr] [contrainte niveau colonne], ...
[contrainte niveau colonne][,...]) ;
On peut d´efinir une contrainte :
lors de la cr´eation de la table
apr`es la cr´eation de la table
8/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte NOT NULL
La contrainte NOT NULL ne peut ˆetre d´efinie qu’au niveau de la
colonne, pas au niveau de la table
Exemple
CREATE TABLE Fournisseurs (fournisseur id number(10) NOT NULL, nom varchar2(20)
NOT NULL, contact varchar2(50)) ;
CREATE TABLE Fournisseurs (fournisseur id number(10) CONSTRAINT nn fournisseurs
NOT NULL, nom varchar2(20) NOT NULL, contact varchar2(50)) ;
9/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte UNIQUE
Une contrainte d’int´egrit´e de type unique exige que chaque valeur
dans une colonne ou dans un ensemble de colonnes soit unique.
Une contrainte unique autorise la valeur NULL `a moins que vous
d´efinissiez des contraintes NOT NULL.
Exemple
Au niveau colonne :
CREATE TABLE Fournisseurs (fournisseur id number(10) UNIQUE, nom
varchar2(20) not null, contact varchar2(50)) ;
CREATE TABLE Fournisseurs (fournisseur id number(10) CONSTRAINT
uq fournisseurs UNIQUE, nom varchar2(20) not null, contact varchar2(50)) ;
Advertisement
Au niveau table :
CREATE TABLE Fournisseurs (fournisseur id number(10), nom varchar2(20) not null,
contact varchar2(50), CONSTRAINT uq fournisseurs UNIQUE(fournisseur id)) ;
10/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte CHECK
La contrainte Check d´efinit une condition que chaque ligne de la
table doit v´erifier
Les expressions suivantes ne sont pas autoris´ees :
appels de fonction telle que SYSDATE
interrogations qui font r´ef´erence `a d’autres valeurs dans d’autres
lignes.
Exemple
Au niveau colonne :
CREATE TABLE Fournisseurs (fournisseur id number(10) CHECK (fournisseur id
between 10 and 1000), nom varchar2(20) not null, contact varchar2(50)) ;
CREATE TABLE Fournisseurs (fournisseur id number(10) CONSTRAINT
ck fournisseurs CHECK (fournisseur id between 10 and 1000), nom varchar2(20) not
null, contact varchar2(50)) ;
Au niveau table :
CREATE TABLE Fournisseurs (fournisseur id number(10), nom varchar2(20) not null,
contact varchar2(50), CONSTRAINT ck fournisseurs CHECK (fournisseur id between
10 and 1000)) ;
11/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte PRIMARY KEY
Une contrainte cl´e primaire cr´ee une cl´e primaire pour la table
Une seule cl´e primaire peut ˆetre cr´e´ee par table
La cl´e primaire peut ˆetre constitu´ee d’une ou plusieurs colonnes.
Aucune des colonnes faisant partie de la cl´e primaire ne peut ˆetre
NULL
Exemple
Au niveau colonne :
CREATE TABLE Fournisseurs (fournisseur id number(10) PRIMARY KEY, nom
varchar2(20) not null, contact varchar2(50)) ;
CREATE TABLE Fournisseurs (fournisseur id number(10) CONSTRAINT
pk fournisseurs PRIMARY KEY, nom varchar2(20) not null, contact varchar2(50)) ;
Au niveau table :
CREATE TABLE Fournisseurs (fournisseur id number(10), nom varchar2(20) not null,
contact varchar2(50), CONSTRAINT pk fournisseurs PRIMARY
KEY(fournisseur id)) ;
CREATE TABLE Etudiants(nom varchar2(30), prenom varchar2(30), date naiss date,
CONSTRAINT pk etudiants PRIMARY KEY (nom,prenom)) ;
12/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte FOREIGN KEY
Syntaxe
Au niveau table :
CREATE TABLE <nom table>
(<col1> type null/not null,
<col2> type null/not null,
...,
CONSTRAINT <fk table colonne> FOREIGN KEY (col1, col2, ... coln) REFERENCES
<table parente> (col1, col2, ... coln)
ON DELETE {CASCADE|SET NULL|SET DEFAULT|RESTRICT}
ON UPDATE {CASCADE|SET NULL|SET DEFAULT|RESTRICT}
) ;
Au niveau colonne :
CREATE TABLE <nom table>
(<col1> type null/not null CONSTRAINT <fk table colonne> REFERENCES <table parente>
(col) ON DELETE {CASCADE|SET NULL|SET DEFAULT|RESTRICT}
ON UPDATE {CASCADE|SET NULL|SET DEFAULT|RESTRICT},
<col2> type null/not null,
...,
) ;
13/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte FOREIGN KEY
FOREIGN KEY : d´efinit la colonne dans la table fille au niveau
contrainte de table
REFERENCES : identifie la table et la colonne dans la table parente
Notez Bien
Cr´eer les tables parentes avant les tables filles
Supprimer les tables filles avant les tables parentes
14/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte FOREIGN KEY : mot cl´e ON DELETE
Les options possibles avec le mot cl´e ON DELETE :
CASCADE : supprime les lignes d´ependantes dans la table fille
lorsqu’une ligne de la table parente est supprim´ee
SET NULL : convertit les valeurs des cl´es ´etrang`eres d´ependantes en
valeurs NULL. Cette contrainte ne peut ˆetre ex´ecut´ee que si toutes
les colonnes de cl´e ´etrang`ere de la table cible acceptent des
valeurs NULL.
SET DEFAULT place la valeur par d´efaut (qui suit ce param`etre)
dans la ligne de la table ´etrang`ere en cas d’effacement d’une valeur
correspondant `a la cl´e (option n’est pas prise en charge dans oracle)
RESTRICT indique une erreur en cas d’effacement d’une valeur
correspondant `a la cl´e (option n’est pas prise en charge dans oracle)
15/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte FOREIGN KEY : mot cl´e ON UPDATE
Les options possibles avec le mot cl´e ON UPDATE (option n’est pas prise
en charge dans oracle) :
CASCADE : met `a jour les lignes d´ependantes dans la table fille
lorsqu’une ligne de la table parente est mise `a jour
SET NULL : convertit les valeurs des cl´es ´etrang`eres d´ependantes en
valeurs NULL. Cette contrainte ne peut ˆetre ex´ecut´ee que si toutes
les colonnes de cl´e ´etrang`ere de la table cible acceptent des
valeurs NULL.
SET DEFAULT place la valeur par d´efaut (qui suit ce param`etre)
dans la ligne de la table ´etrangere en cas de mise a jour d’une valeur
correspondant `a la cl´e
RESTRICT indique une erreur en cas de mise `a jour d’une valeur
correspondant `a la cl´e
16/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte FOREIGN KEY
Exemple 1
CREATE TABLE Fournisseurs ( fournisseur id number(10) not null PRIMARY KEY, nom
varchar2(50) not null, contact varchar2(50)) ;
CREATE TABLE Produits (produit id number(10) not null, fournisseur id number(10) not null,
CONSTRAINT fk produits FOREIGN KEY (fournisseur id ) REFERENCES Fournisseurs
(fournisseur id ) ON DELETE cascade) ;
Exemple 2
CREATE TABLE Fournisseurs ( fournisseur id number(10) not null, nom varchar2(50) not null,
contact varchar2(50),CONSTRAINT pk fournisseur PRIMARY KEY (fournisseur id ,nom)) ;
CREATE TABLE Produits (produit id number(10) not null, fournisseur id number(10) not null,
nom varchar2(50) not null, CONSTRAINT fk produits FOREIGN KEY (fournisseur id , nom)
REFERENCES Fournisseurs (fournisseur id ,nom)) ;
17/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Modification de table
L’instruction ALTER TABLE : permet de modifier la structure de la table
colonne :
ajouter une colonne (ADD)
modifier une colonne existante (MODIFY) –propri´et´e d’oracle
supprimer une colonne (DROP)
contrainte :
ajouter une contrainte (ADD CONSTRAINT)
Advertisement
supprimer une contrainte (DROP CONSTRAINT)
18/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Modification de table
Ajouter une colonne
Syntaxe
ALTER TABLE <nom table> ADD (<column> type [DEFAULT expr] [,
<column> type][DEFAULT expr],...) ;
Exemple
ALTER TABLE Fournisseurs ADD( adresse varchar2(50), telephone
number(8) NOT NULL) ;
19/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Modification de table
Modifier une colonne
La modification d’une colonne peut concerner :
le type de donn´ees,
la taille,
la valeur par d´efaut d’une colonne (affecte uniquement les nouvelles
insertions dans la table)
Syntaxe
ALTER TABLE <nom table> MODIFY (<column> type [DEFAULT
expr] [, <column> type][DEFAULT expr],...) ;
Exemple
ALTER TABLE Fournisseurs Modify(adresse varchar2(100), telephone
number(13)) ;
20/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Modification de table
Supprimer une colonne
Syntaxe
ALTER TABLE <nom table> DROP (column1, column2, ...) ;
Exemple
ALTER TABLE Fournisseurs DROP (adresse, telephone) ;
21/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Modification de table
Ajouter une contrainte
Syntaxe
ALTER TABLE <nom table> ADD [CONSTRAINT <nom contrainte>] type contrainte
(<nom colonne>) ;
Exemples
ALTER TABLE Fournisseurs ADD CONSTRAINT uq fournisseurs UNIQUE(fournisseur id) ;
ALTER TABLE Fournisseurs ADD CONSTRAINT ck fournisseurs CHECK (fournisseur id
between 10 and 1000) ;
ALTER TABLE Fournisseurs ADD CONSTRAINT pk fournisseurs PRIMARY KEY
(fournisseur id) ;
ALTER TABLE Produits add constraint fk produits FOREIGN KEY (fournisseur id, nom)
REFERENCES Fournisseurs(fournisseur id, nom) ;
Pour ajouter une contrainte NULL/NOT NULL on utilise l’option MODIFY
Exemple :
ALTER TABLE Fournisseurs MODIFY contact CONSTRAINT nn fournisseurs contact NOT
NULL ;
22/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Modification de table
Supprimer une contrainte
Syntaxe
ALTER TABLE <nom table> DROP CONSTRAINT
<nom contrainte> ;
Exemple
ALTER TABLE Fournisseurs DROP CONSTRAINT ck fournisseurs ;
ALTER TABLE Fournisseurs DROP CONSTRAINT pk fournisseurs
23/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Modification de table
Activer/D´esactiver une contrainte
Syntaxe
ALTER TABLE <nom table> ENABLE | DISABLE CONSTRAINT
<nom contrainte> ;
Exemple
CREATE TABLE T1(a1 number PRIMARY KEY, b1 varchar2(10)) ;
CREATE TABLE T2(a2 varchar2(10) PRIMARY KEY, b2 number CONSTRAINT fk T2 REFERENCES T1(a1)) ;
ALTER TABLE T1 ADD CONSTRAINT fk T1 FOREIGN KEY (b1) REFERENCES T2(a2) ;
=⇒Pour ins´erer des lignes dans ces deux tables il faut d´esactiver l’une des contraintes FOREIGN KEY :
ALTER TABLE T1 DISABLE CONSTRAINT fk T1 ;
=⇒ Ins´erer les lignes dans T1 et T2 :
INSERT INTO T1 VALUES(1,’a’) ;
INSERT INTO T1 VALUES(2,’b’) ;
INSERT INTO T2 VALUES(’b’,1) ;
=⇒ Activer la contrainte fk T1 :
ALTER TABLE T1 ENABLE CONSTRAINT fk T1 ;
La v´erification des valeurs ins´er´ees se fait lors de l’activation de la contrainte fk T1
24/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Suppression de table
Syntaxe
DROP TABLE <nom table> ;
Remarque
Il existe aussi la commande TRUNCATE qui permet de vider la table.
Syntaxe :
TRUNCATE TABLE nom table ;
25/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
Renommage de table
Syntaxe
RENAME <ancien nom> TO <nouveau nom> ;
Exemple
RENAME Fournisseurs TO LesFournisseurs ;
26/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation et modification de vue
Suppression de vue
Plan
1 Table
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
2 Vue
Cr´eation et modification de vue
Suppression de vue
3 S´equence
Cr´eation de s´equence
Modification de s´equence
Utilisation de s´equence
Suppression de s´equence
4 Index
Cr´eation d’index
Suppression d’index
5 Synonyme
Cr´eation et supression de synonyme
27/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation et modification de vue
Suppression de vue
Vue
Une vue est une table logique sur une ou plusieurs autres tables ou
vues,
Advertisement
Seule la d´efinition de la vue (requˆete) est enregistr´ee dans la base, et
pas les donn´ees de la vue,
Limite l’acces a la base de donn´ees,
Facilite la cr´eation des requˆetes complexes,
Pr´esente les mˆemes donn´ees sous diff´erentes formes,
Il existe deux types de vues :
vue simple :
utilise une seule table
ne contient ni fonction ni groupe de donn´ees
permet d’ex´ecuter des instructions LMD (UPDATE, DELETE,
INSERT)
vue complexe :
utilise plusieurs tables
contient des fonctions ou des groupes de donn´ees
ne permet pas des instructions LMD (UPDATE, DELETE, INSERT)
28/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation et modification de vue
Suppression de vue
Cr´eation et modification de vue
Syntaxe
CREATE [OR REPLACE ] [FORCE|NOFORCE] VIEW <nom vue> [(alias [, alias], . . . )]
AS SELECT <requˆete> [WITH CHECK OPTION [CONSTRAINT <nom contrainte>]]
[WITH READ ONLY [CONSTRAINT <nom contrainte>]] ;
FORCE : cr´ee la vue que les tables existent ou non
alias : indique les noms des expressions s´electionn´ees par la requˆete de la vue. Le nombre
d’alias doit ˆetre ´egal au nombre d’expressions s´electionn´ees
WITH CHECK OPTION : n’autorise l’insertion et la mise `a jour des lignes que pour les
lignes auxquelles la vue peut acc´eder (v´erifient les conditions de la clause WHERE)
CONSTRAINT : donne un nom de contrainte aux restrictions WITH CHECK OPTION et
WITH READ ONLY (messages d’erreur mieux compr´ehensibles)
WITH READ ONLY : aucune op´eration LMD ne peut ˆetre ex´ecut´ee.
Notez Bien
Pour pouvoir ins´erer dans une vue, la vue doit comprendre au moins les colonnes sur lesquelles on
a une contrainte NOT NULL
29/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation et modification de vue
Suppression de vue
Cr´eation et modification de vue
Exemple
CREATE TABLE Fournisseurs (fournisseur id number(10) PRIMARY KEY, nom
varchar2(20) not null, contact varchar2(50), code region number(3)) ;
1 CREATE OR REPLACE VIEW vue1 Fournisseurs 10 (numero,nom,region) AS SELECT
fournisseur id, nom, code region from fournisseurs where code region=10 ;
2 CREATE OR REPLACE VIEW vue2 Fournisseurs 10 (numero,nom,region) AS SELECT
fournisseur id, nom, code region from fournisseurs where code region=10 WITH CHECK
OPTION CONSTRAINT ck 10 ;
INSERT INTO vue2 Fournisseurs 10 VALUES (100, ’Daniel’,100) ;
=⇒ORA-01402 : vue WITH CHECK OPTION - violation de clause WHERE
INSERT INTO vue2 Fournisseurs 10 VALUES (100, ’Daniel’,10) ;
=⇒1 ligne(s) ins´er´ee(s).
3 CREATE OR REPLACE VIEW vue3 Fournisseurs 10 (numero,nom,region) AS SELECT
fournisseur id, nom, code region from fournisseurs where code region=10 WITH READ
ONLY ;
30/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation et modification de vue
Suppression de vue
Suppression de vue
Syntaxe
DROP VIEW <nom vue> ;
Exemple
DROP VIEW vue3 Fournisseurs 10 ;
31/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de s´equence
Modification de s´equence
Utilisation de s´equence
Suppression de s´equence
Plan
1 Table
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
2 Vue
Cr´eation et modification de vue
Suppression de vue
3 S´equence
Cr´eation de s´equence
Modification de s´equence
Utilisation de s´equence
Suppression de s´equence
4 Index
Cr´eation d’index
Suppression d’index
5 Synonyme
Cr´eation et supression de synonyme
32/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de s´equence
Modification de s´equence
Utilisation de s´equence
Suppression de s´equence
S´equence
Une s´equence :
G´en`ere automatiquement des num´eros uniques
Est Partageable entre plusieurs utilisateurs et ´eventuellement entre
plusieurs tables
Permet de cr´eer une valeur de cl´e primaire
33/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de s´equence
Modification de s´equence
Utilisation de s´equence
Suppression de s´equence
Cr´eation de s´equence
Syntaxe
CREATE SEQUENCE <nom sequence>
[INCREMENT BY <pas>]
[START WITH <valeur>]
[{MAXVALUE <valeur max> | NOMAXVALUE}]
[{MINVALUE <valeur min> | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE <cache> | NOCACHE}]
INCREMENT BY : d´efinit l’intervalle entre les num´eros (pas d’incr´ementation)
START WITH : premier num´ero de la s´equence
MAXVALUE | NOMAXVALUE : valeur maximale
MINVALUE | NOMINVALUE : valeur minimale
CYCLE | NOCYCLE : la s´equence peut continuer `a g´en´erer ou non des valeurs si la valeur
maximale (ou minimale) est atteinte (la valeur par d´efaut NOCYCLE)
CACHE | NOCACHE : nombre de valeurs pr´e-allou´ees et conserv´ees en m´emoire (la valeur
par d´efaut est cache=20)
34/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de s´equence
Modification de s´equence
Utilisation de s´equence
Suppression de s´equence
Cr´eation de s´equence
Exemples
CREATE SEQUENCE sequence1 increment by 1 start with 1
maxvalue 5 ;
CREATE SEQUENCE sequence2 increment by 5 start with 10
maxvalue 100 NOCACHE NOCYCLE ;
CREATE SEQUENCE sequence3 increment by 1 start with 1
maxvalue 20 CACHE 10 CYCLE
CREATE SEQUENCE sequence4 increment by 5 start with -10
minvalue -20 maxvalue 5 cache 2 cycle ;
Notez Bien
La valeur du cache doit etre inf´erieur ou ´egale au nombre de valeurs d’un
cycle
35/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de s´equence
Modification de s´equence
Utilisation de s´equence
Suppression de s´equence
Modification de s´equence
Syntaxe
ALTER SEQUENCE <nom sequence>
[INCREMENT BY <pas>]
[START WITH <valeur>]
[{MAXVALUE <valeur max> | NOMAXVALUE}]
[{MINVALUE <valeur min> | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE <cache> | NOCACHE}]
Exemple
ALTER SEQUENCE sequence1 maxvalue 10 cycle ;
36/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de s´equence
Modification de s´equence
Utilisation de s´equence
Advertisement
Suppression de s´equence
Utilisation de s´equence
L’utilisation d’une s´equence se fait par des ”pseudo-colonnes” CURRVAL et NEXTVAL. On
parle de pseudo-colonne car cela se manipule un peu comme une colonne de table, mais ce
n’est pas une colonne de table.
CURRVAL : retourne la valeur courante de la s´equence
NEXTVAL : incr´emente la s´equence et retourne la nouvelle valeur
Exemple
CREATE TABLE Tseq(a number, b varchar2(5)) ;
CREATE SEQUENCE seq increment by 5 start with -10 minvalue -20 maxvalue 5 cache 2
cycle ;
INSERT INTO Tseq values (seq.nextval, ’a’)
SELECT * FROM Tseq ;
SELECT seq.currval FROM dual ;
37/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation de s´equence
Modification de s´equence
Utilisation de s´equence
Suppression de s´equence
Suppression de s´equence
Syntaxe
DROP SEQUENCE <nom sequence> ;
Exemple
DROP SEQUENCE seq ;
38/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation d’index
Suppression d’index
Plan
1 Table
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
2 Vue
Cr´eation et modification de vue
Suppression de vue
3 S´equence
Cr´eation de s´equence
Modification de s´equence
Utilisation de s´equence
Suppression de s´equence
4 Index
Cr´eation d’index
Suppression d’index
5 Synonyme
Cr´eation et supression de synonyme
39/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation d’index
Suppression d’index
Index
Un index est un objet de la base de donn´ees qui permet d’acc´el´erer
la recherche des lignes. Il contient deux champs :
la cl´e d’index
l’adresse du bloc de donn´ees contenant la cl´e
Un index peut ˆetre cr´e´e juste apr`es la cr´eation d’une table ou sur
une table contenant d´ej`a des lignes
Un index peut porter sur plusieurs colonnes : la cl´e d’acc`es sera la
concat´enation des diff´erentes colonnes
Les index sont ind´ependants logiquement et physiquement des tables
qu’ils indexent
40/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation d’index
Suppression d’index
Cr´eation d’index
La cr´eation d’index peut ˆetre :
Automatique : un index unique est cr´ee automatiquement lors de la d´efinition d’une
contrainte PRIMARY KEY ou contrainte UNIQUE
Manuelle : un index non unique peut ˆetre cr´ee manuellement (cl´es d’index peuvent
ˆetre dupliqu´ees)
Syntaxe
CREATE [UNIQUE] INDEX <nom index> ON <nom table>(col1, col2,...)
Exemple
CREATE UNIQUE INDEX idx fournisseurs ON Fournisseurs (contact) ;
=⇒des valeurs dupliqu´ees ne sont pas permise dans la colonne contact mˆeme si il y a pas une
contrainte UNIQUE sur cette colonne
Remarque
Il est possible de renommer un index
Syntaxe :
ALTER INDEX <ancien nom> RENAME TO <nouveau nom> ;
41/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation d’index
Suppression d’index
Cr´eation d’index
Cr´eez index si :
La colonne doit ˆetre souvent utilis´ee dans la clause WHERE ou une
condition de jointure
La colonne contient un grand nombre de valeurs NULL
Deux ou plusieurs colonnes sont souvent utilis´ees conjointement dans une
clause WHERE ou une condition de jointure
La table est de grande taille et la plupart des requˆetes doivent extraire
moins de 2 `a 4% des lignes
Ne pas cr´eez index si :
La table est de petite taille
La table est souvent mise `a jour
Les colonnes ne sont pas souvent utilis´ees comme condition dans une
requˆete
La plupart des requˆetes sont pr´evues pour extraire un tr`es grand
pourcentage de lignes
42/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation d’index
Suppression d’index
Supression d’index
Syntaxe
DROP INDEX <nom index> ;
Exemple
DROP INDEX idx fournisseurs
43/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation et supression de synonyme
Plan
1 Table
Cr´eation de table
Modification de table
Suppression de table
Renommage de table
2 Vue
Cr´eation et modification de vue
Suppression de vue
3 S´equence
Cr´eation de s´equence
Modification de s´equence
Utilisation de s´equence
Suppression de s´equence
4 Index
Cr´eation d’index
Suppression d’index
5 Synonyme
Cr´eation et supression de synonyme
44/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation et supression de synonyme
Synonyme
Un synonyme est un alias sur un Objet de la base ou Sch´ema, une
sorte de raccourcis.
L’objet peut ˆetre une table, une vue, une s´equence, une proc´edure,
une fonction, un package, etc
Le synonyme peut ˆetre publique ou priv´e.
publique : accessible `a partir de tous sch´ema et utilisateurs
priv´e il sera accessible uniquement `a partir du sch´ema dans lequel il a
´et´e cr´e´e
Cr´eer des synonymes pour :
masquer le vrai nom des objets et leur localisations
simplifier les noms des objets
´eviter le pr´e-fixage dans les requˆetes avec le nom de son propri´etaire
45/46
Table
Vue
S´equence
Index
Synonyme
Cr´eation et supression de synonyme
Cr´eation et supression de synonyme
Cr´eation :
Syntaxe
CREATE [OR REPLACE] [PUBLIC] SYNONYM
<nom synonyme> FOR [sch´ema.]<nom objet> ;
Supression
Syntaxe
DROP SYNONYM <nom synonyme> ;
46/46