Le langage SQL

Programming, Databases · course

Browse all bases de données documents

Table

Vue

S´equence

Index

Synonyme

Le langage SQL

Langage de D´efinition de Donn´ees

Ines BAKLOUTI

[email protected]

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