Table
Vue
Séquence
Index
Synonyme
Le langage SQL
Langage de Définition de Données
Ines BAKLOUTI
Ecole Supérieure Privée d’Ingénierie et de Technologies
Table
Vue
Séquence
Index
Synonyme
Plan
1 Table
Création de table
Modification de table
Suppression de table
Renommage de table
2 Vue
Création et modification de vue
Suppression de vue
3 Séquence
Création de séquence
Modification de séquence
Utilisation de séquence
Suppression de séquence
4 Index
Création d’index
Suppression d’index
5 Synonyme
Création et supression de synonyme
2/46
Table
Vue
Séquence
Index
Synonyme
Introduction
SQL = Structured Query Language
un langage de définition de données (LDD),
un langage de manipulation de données (LMD),
un langage d’interrogation de données (LID),
un langage de contrôle de données (LCD)
DDL = Data Definition Language (Langage de Définition de
Données LDD)
Création d’une structure de données (Create)
Modification de la structure d’un objet de la base de données (Alter)
Suppression d’une structure de données(Drop )
3/46
Table
Vue
Séquence
Index
Synonyme
Création de table
Modification de table
Suppression de table
Renommage de table
Plan
1 Table
Création de table
Modification de table
Suppression de table
Renommage de table
2 Vue
Création et modification de vue
Suppression de vue
3 Séquence
Création de séquence
Modification de séquence
Utilisation de séquence
Suppression de séquence
4 Index
Création d’index
Suppression d’index
5 Synonyme
Création et supression de synonyme
4/46
Table
Vue
Séquence
Index
Synonyme
Création de table
Modification de table
Suppression de table
Renommage de table
Création 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équence
Index
Synonyme
Création de table
Modification de table
Suppression de table
Renommage de table
Création de table
Types de données
6/46
Table
Vue
Séquence
Index
Synonyme
Création de table
Modification de table
Suppression de table
Renommage de table
Création de table à partir d’une sous-intérrogation
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équence
Index
Synonyme
Création 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éfinition de contraintes :
contrainte au niveau colonne : contrainte d’intégrité incluse dans la
définition de la colonne
contrainte au niveau table : contrainte d’intégrité incluse dans la
définition de la table
syntaxe : CREATE TABLE [schema.]table (nom colonne type
[DEFAULT expr] [contrainte niveau colonne], ...
[contrainte niveau colonne][,...]) ;
On peut définir une contrainte :
lors de la création de la table
après la création de la table
8/46
Table
Vue
Séquence
Index
Synonyme
Création de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte NOT NULL
La contrainte NOT NULL ne peut être définie 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équence
Index
Synonyme
Création de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte UNIQUE
Une contrainte d’intégrité 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 à moins que vous
définissiez 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)) ;
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équence
Index
Synonyme
Création de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte CHECK
La contrainte Check définit une condition que chaque ligne de la
table doit vérifier
Les expressions suivantes ne sont pas autorisées :
appels de fonction telle que SYSDATE
interrogations qui font référence à 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équence
Index
Synonyme
Création de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte PRIMARY KEY
Une contrainte clé primaire crée une clé primaire pour la table
Une seule clé primaire peut être créée par table
La clé primaire peut être constituée d’une ou plusieurs colonnes.
Aucune des colonnes faisant partie de la clé primaire ne peut être
NULL
Exemple
Publicité
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équence
Index
Synonyme
Création 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équence
Index
Synonyme
Création de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte FOREIGN KEY
FOREIGN KEY : définit 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éer les tables parentes avant les tables filles
Supprimer les tables filles avant les tables parentes
14/46
Table
Vue
Séquence
Index
Synonyme
Création de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte FOREIGN KEY : mot clé ON DELETE
Les options possibles avec le mot clé ON DELETE :
CASCADE : supprime les lignes dépendantes dans la table fille
lorsqu’une ligne de la table parente est supprimée
SET NULL : convertit les valeurs des clés étrangères dépendantes en
valeurs NULL. Cette contrainte ne peut être exécutée que si toutes
les colonnes de clé étrangère de la table cible acceptent des
valeurs NULL.
SET DEFAULT place la valeur par défaut (qui suit ce paramètre)
dans la ligne de la table étrangère en cas d’effacement d’une valeur
correspondant à la clé (option n’est pas prise en charge dans oracle)
RESTRICT indique une erreur en cas d’effacement d’une valeur
correspondant à la clé (option n’est pas prise en charge dans oracle)
15/46
Table
Vue
Séquence
Index
Synonyme
Création de table
Modification de table
Suppression de table
Renommage de table
Les contraintes
La contrainte FOREIGN KEY : mot clé ON UPDATE
Les options possibles avec le mot clé ON UPDATE (option n’est pas prise
en charge dans oracle) :
CASCADE : met à jour les lignes dépendantes dans la table fille
lorsqu’une ligne de la table parente est mise à jour
SET NULL : convertit les valeurs des clés étrangères dépendantes en
valeurs NULL. Cette contrainte ne peut être exécutée que si toutes
les colonnes de clé étrangère de la table cible acceptent des
valeurs NULL.
SET DEFAULT place la valeur par défaut (qui suit ce paramètre)
dans la ligne de la table étrangere en cas de mise a jour d’une valeur
correspondant à la clé
RESTRICT indique une erreur en cas de mise à jour d’une valeur
correspondant à la clé
16/46
Table
Vue
Séquence
Index
Synonyme
Création 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équence
Index
Synonyme
Création 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été d’oracle
supprimer une colonne (DROP)
contrainte :
ajouter une contrainte (ADD CONSTRAINT)
supprimer une contrainte (DROP CONSTRAINT)
18/46
Table
Vue
Séquence
Index
Synonyme
Création 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équence
Index
Synonyme
Création 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ées,
la taille,
la valeur par défaut 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équence
Index
Synonyme
Création 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équence
Index
Synonyme
Création 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équence
Index
Synonyme
Création 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> ;
Publicité
Exemple
ALTER TABLE Fournisseurs DROP CONSTRAINT ck fournisseurs ;
ALTER TABLE Fournisseurs DROP CONSTRAINT pk fournisseurs
23/46
Table
Vue
Séquence
Index
Synonyme
Création de table
Modification de table
Suppression de table
Renommage de table
Modification de table
Activer/Désactiver 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érer des lignes dans ces deux tables il faut désactiver l’une des contraintes FOREIGN KEY :
ALTER TABLE T1 DISABLE CONSTRAINT fk T1 ;
=⇒ Insérer 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érification des valeurs insérées se fait lors de l’activation de la contrainte fk T1
24/46
Table
Vue
Séquence
Index
Synonyme
Création 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équence
Index
Synonyme
Création 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équence
Index
Synonyme
Création et modification de vue
Suppression de vue
Plan
1 Table
Création de table
Modification de table
Suppression de table
Renommage de table
2 Vue
Création et modification de vue
Suppression de vue
3 Séquence
Création de séquence
Modification de séquence
Utilisation de séquence
Suppression de séquence
4 Index
Création d’index
Suppression d’index
5 Synonyme
Création et supression de synonyme
27/46
Table
Vue
Séquence
Index
Synonyme
Création et modification de vue
Suppression de vue
Vue
Une vue est une table logique sur une ou plusieurs autres tables ou
vues,
Seule la définition de la vue (requête) est enregistrée dans la base, et
pas les données de la vue,
Limite l’acces a la base de données,
Facilite la création des requêtes complexes,
Présente les mêmes données sous différentes formes,
Il existe deux types de vues :
vue simple :
utilise une seule table
ne contient ni fonction ni groupe de données
permet d’exécuter des instructions LMD (UPDATE, DELETE,
INSERT)
vue complexe :
utilise plusieurs tables
contient des fonctions ou des groupes de données
ne permet pas des instructions LMD (UPDATE, DELETE, INSERT)
28/46
Table
Vue
Séquence
Index
Synonyme
Création et modification de vue
Suppression de vue
Création et modification de vue
Syntaxe
CREATE [OR REPLACE ] [FORCE|NOFORCE] VIEW <nom vue> [(alias [, alias], . . . )]
AS SELECT <requête> [WITH CHECK OPTION [CONSTRAINT <nom contrainte>]]
[WITH READ ONLY [CONSTRAINT <nom contrainte>]] ;
FORCE : crée la vue que les tables existent ou non
alias : indique les noms des expressions sélectionnées par la requête de la vue. Le nombre
d’alias doit être égal au nombre d’expressions sélectionnées
WITH CHECK OPTION : n’autorise l’insertion et la mise à jour des lignes que pour les
lignes auxquelles la vue peut accéder (vérifient 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éhensibles)
WITH READ ONLY : aucune opération LMD ne peut être exécutée.
Notez Bien
Pour pouvoir insérer dans une vue, la vue doit comprendre au moins les colonnes sur lesquelles on
a une contrainte NOT NULL
29/46
Table
Vue
Séquence
Index
Synonyme
Création et modification de vue
Suppression de vue
Création 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érée(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équence
Index
Synonyme
Création 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équence
Index
Synonyme
Création de séquence
Modification de séquence
Utilisation de séquence
Suppression de séquence
Plan
1 Table
Création de table
Modification de table
Suppression de table
Renommage de table
2 Vue
Création et modification de vue
Suppression de vue
3 Séquence
Création de séquence
Modification de séquence
Utilisation de séquence
Suppression de séquence
4 Index
Création d’index
Suppression d’index
5 Synonyme
Création et supression de synonyme
32/46
Table
Vue
Séquence
Index
Synonyme
Création de séquence
Modification de séquence
Utilisation de séquence
Suppression de séquence
Séquence
Une séquence :
Génère automatiquement des numéros uniques
Est Partageable entre plusieurs utilisateurs et éventuellement entre
plusieurs tables
Permet de créer une valeur de clé primaire
33/46
Table
Vue
Séquence
Index
Synonyme
Création de séquence
Modification de séquence
Utilisation de séquence
Suppression de séquence
Création de séquence
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éfinit l’intervalle entre les numéros (pas d’incrémentation)
START WITH : premier numéro de la séquence
MAXVALUE | NOMAXVALUE : valeur maximale
MINVALUE | NOMINVALUE : valeur minimale
CYCLE | NOCYCLE : la séquence peut continuer à générer ou non des valeurs si la valeur
maximale (ou minimale) est atteinte (la valeur par défaut NOCYCLE)
CACHE | NOCACHE : nombre de valeurs pré-allouées et conservées en mémoire (la valeur
par défaut est cache=20)
34/46
Table
Publicité
Vue
Séquence
Index
Synonyme
Création de séquence
Modification de séquence
Utilisation de séquence
Suppression de séquence
Création de séquence
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érieur ou égale au nombre de valeurs d’un
cycle
35/46
Table
Vue
Séquence
Index
Synonyme
Création de séquence
Modification de séquence
Utilisation de séquence
Suppression de séquence
Modification de séquence
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équence
Index
Synonyme
Création de séquence
Modification de séquence
Utilisation de séquence
Suppression de séquence
Utilisation de séquence
L’utilisation d’une séquence 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équence
NEXTVAL : incrémente la séquence 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équence
Index
Synonyme
Création de séquence
Modification de séquence
Utilisation de séquence
Suppression de séquence
Suppression de séquence
Syntaxe
DROP SEQUENCE <nom sequence> ;
Exemple
DROP SEQUENCE seq ;
38/46
Table
Vue
Séquence
Index
Synonyme
Création d’index
Suppression d’index
Plan
1 Table
Création de table
Modification de table
Suppression de table
Renommage de table
2 Vue
Création et modification de vue
Suppression de vue
3 Séquence
Création de séquence
Modification de séquence
Utilisation de séquence
Suppression de séquence
4 Index
Création d’index
Suppression d’index
5 Synonyme
Création et supression de synonyme
39/46
Table
Vue
Séquence
Index
Synonyme
Création d’index
Suppression d’index
Index
Un index est un objet de la base de données qui permet d’accélérer
la recherche des lignes. Il contient deux champs :
la clé d’index
l’adresse du bloc de données contenant la clé
Un index peut être créé juste après la création d’une table ou sur
une table contenant déjà des lignes
Un index peut porter sur plusieurs colonnes : la clé d’accès sera la
concaténation des différentes colonnes
Les index sont indépendants logiquement et physiquement des tables
qu’ils indexent
40/46
Table
Vue
Séquence
Index
Synonyme
Création d’index
Suppression d’index
Création d’index
La création d’index peut être :
Automatique : un index unique est crée automatiquement lors de la définition d’une
contrainte PRIMARY KEY ou contrainte UNIQUE
Manuelle : un index non unique peut être crée manuellement (clés d’index peuvent
être dupliquées)
Syntaxe
CREATE [UNIQUE] INDEX <nom index> ON <nom table>(col1, col2,...)
Exemple
CREATE UNIQUE INDEX idx fournisseurs ON Fournisseurs (contact) ;
=⇒des valeurs dupliquées ne sont pas permise dans la colonne contact même 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équence
Index
Synonyme
Création d’index
Suppression d’index
Création d’index
Créez index si :
La colonne doit être souvent utilisée 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ées conjointement dans une
clause WHERE ou une condition de jointure
La table est de grande taille et la plupart des requêtes doivent extraire
moins de 2 à 4% des lignes
Ne pas créez index si :
La table est de petite taille
La table est souvent mise à jour
Les colonnes ne sont pas souvent utilisées comme condition dans une
requête
La plupart des requêtes sont prévues pour extraire un très grand
pourcentage de lignes
42/46
Table
Vue
Séquence
Index
Synonyme
Création d’index
Suppression d’index
Supression d’index
Syntaxe
DROP INDEX <nom index> ;
Exemple
DROP INDEX idx fournisseurs
43/46
Table
Vue
Séquence
Index
Synonyme
Création et supression de synonyme
Plan
1 Table
Création de table
Modification de table
Suppression de table
Renommage de table
2 Vue
Création et modification de vue
Suppression de vue
3 Séquence
Création de séquence
Modification de séquence
Utilisation de séquence
Suppression de séquence
4 Index
Création d’index
Suppression d’index
5 Synonyme
Création et supression de synonyme
44/46
Table
Vue
Séquence
Index
Synonyme
Création et supression de synonyme
Synonyme
Un synonyme est un alias sur un Objet de la base ou Schéma, une
sorte de raccourcis.
L’objet peut être une table, une vue, une séquence, une procédure,
une fonction, un package, etc
Le synonyme peut être publique ou privé.
publique : accessible à partir de tous schéma et utilisateurs
privé il sera accessible uniquement à partir du schéma dans lequel il a
été créé
Créer des synonymes pour :
masquer le vrai nom des objets et leur localisations
simplifier les noms des objets
éviter le pré-fixage dans les requêtes avec le nom de son propriétaire
45/46
Table
Vue
Séquence
Index
Synonyme
Création et supression de synonyme
Création et supression de synonyme
Création :
Syntaxe
CREATE [OR REPLACE] [PUBLIC] SYNONYM
<nom synonyme> FOR [schéma.]<nom objet> ;
Supression
Syntaxe
DROP SYNONYM <nom synonyme> ;
46/46