36
Langage Définition des Données LDD DROP ALTER CREATE

Langage Définition des Données LDD DROP ALTER CREATE

Embed Size (px)

Citation preview

Page 1: Langage Définition des Données LDD DROP ALTER CREATE

Langage Définition des

Données

LDD

Langage Définition des

Données

LDD

DROPDROP

ALTERALTERCREATECREATE

Page 2: Langage Définition des Données LDD DROP ALTER CREATE

TYPES DE DONNEESTYPES DE DONNEES

Type Syntaxe Remarques / Exemple

NUMBER NUMBER [(total [ , Décimal])] Total est max égal à 38.

Salaire NUMBER(7,2)

CHAR CHAR [(longueur)] Nom CHAR(15)

VARCHAR2 VARCHAR2 [(longueur)] Le type chaîne le plus efficace sous Oracle

DATE DATE Date_Naiss DATE

RAW RAW (longueur) Géré comme le VARCHAR2, mais pas affichable.

Seq RAW(100)

LONG LONG Permet de stocker des chaînes d'une longueur max de 2 Go.

Texte LONG

LONG RAW LONG RAW Stockage de fichiers binaires comme les images, son et de la vidéo.

Longueur max est 2Go

Photo LONG RAW

Page 3: Langage Définition des Données LDD DROP ALTER CREATE

Type Syntaxe Remarques / Exemple

BLOB BLOB Binaires de type long

CLOB CLOB Caractères codées sur 2 octets

NCLOB NCLOB Caractères codés sur 4 octets

ROWID ROWID Chaîne de 18 caractère donnant l'adresse unique d'un enregistrement.

Les LOB (Large Objects) permettent le stockage de 4 Go de données dans la base, ils existent depuis la version 8 d'Oracle, il existe 3 types (BLOB, CLOB, NCLOB).

TYPES DE DONNEESTYPES DE DONNEES

Page 4: Langage Définition des Données LDD DROP ALTER CREATE

LES TABLES LES TABLES

Syntaxe formelle

CREATE TABLE [schema.]table (

{ column datatype [DEFAULT expr] [column_constraint] ... | table_constraint}

[,{ column datatype [DEFAULT expr] [column_constraint] ... | table_constraint} ]...)

[ [PCTFREE integer] [PCTUSED integer] [INITRANS integer] [MAXTRANS integer]

[TABLESPACE tablespace]

[STORAGE storage_clause] [ RECOVERABLE |

UNRECOVERABLE ]

[ PARALLEL ( [ DEGREE { integer | DEFAULT } ]

[ INSTANCES { integer | DEFAULT } ] ) | NOPARALLEL ]

[ CACHE | NOCACHE ] |

[CLUSTER cluster (column [, column]...)] ] [ ENABLE enable_clause |

DISABLE disable_clause ] ... [AS subquery]

Syntaxe formelle

CREATE TABLE [schema.]table (

{ column datatype [DEFAULT expr] [column_constraint] ... | table_constraint}

[,{ column datatype [DEFAULT expr] [column_constraint] ... | table_constraint} ]...)

[ [PCTFREE integer] [PCTUSED integer] [INITRANS integer] [MAXTRANS integer]

[TABLESPACE tablespace]

[STORAGE storage_clause] [ RECOVERABLE |

UNRECOVERABLE ]

[ PARALLEL ( [ DEGREE { integer | DEFAULT } ]

[ INSTANCES { integer | DEFAULT } ] ) | NOPARALLEL ]

[ CACHE | NOCACHE ] |

[CLUSTER cluster (column [, column]...)] ] [ ENABLE enable_clause |

DISABLE disable_clause ] ... [AS subquery]

Création Création

Page 5: Langage Définition des Données LDD DROP ALTER CREATE

LES TABLES LES TABLES

Chaque table est stockée dans un espace logique appelé TABLESPACE.

Il est possible de créer une table et de la renseigner par les résultats d’un ordre SELECT.

Les types de données sont les mêmes que les types des colonnes du SELECT

CREATE TABLE bonus1(nom,remuneration)

AS SELECT nom,salaire

FROM emp;

Une table ne peut contenir plus de 1000 colonnes (255 sous la version 7.x).

une table contient au plus 1 colonne de type LONG ou LONG RAW.

Exemple 1

CREATE TABLE employes (

emp_no NUMBER(3) CONSTRAINT pk_01 PRIMARY KEY,

nom VARCHAR2(25) NOT NULL,

prn VARCHAR2(35),

dt_nais DATE NOT NULL,

sal NUMBER(11,2) NOT NULL,

sup_no NUMBER(3) CONSTRAINT fk_01 REFERENCES superieur(sup_no)

TABLESPACE users

STORAGE (INITIAL 1M NEXT 1M MINEXTENTS 1 MAXEXTENTS 10));

Chaque table est stockée dans un espace logique appelé TABLESPACE.

Il est possible de créer une table et de la renseigner par les résultats d’un ordre SELECT.

Les types de données sont les mêmes que les types des colonnes du SELECT

CREATE TABLE bonus1(nom,remuneration)

AS SELECT nom,salaire

FROM emp;

Une table ne peut contenir plus de 1000 colonnes (255 sous la version 7.x).

une table contient au plus 1 colonne de type LONG ou LONG RAW.

Exemple 1

CREATE TABLE employes (

emp_no NUMBER(3) CONSTRAINT pk_01 PRIMARY KEY,

nom VARCHAR2(25) NOT NULL,

prn VARCHAR2(35),

dt_nais DATE NOT NULL,

sal NUMBER(11,2) NOT NULL,

sup_no NUMBER(3) CONSTRAINT fk_01 REFERENCES superieur(sup_no)

TABLESPACE users

STORAGE (INITIAL 1M NEXT 1M MINEXTENTS 1 MAXEXTENTS 10));

Caractéristiques/ExemplesCaractéristiques/Exemples

Page 6: Langage Définition des Données LDD DROP ALTER CREATE

LES TABLES LES TABLES Modification Modification

Exemple 2

CREATE TABLE employes (no_emp NUMBER, no_service NUMBER, CONSTRAINT no_emp_pk PRIMARY KEY (no_emp), CONSTRAINT no_service_fk FOREIGN KEY (no_service) REFERENCES service (no_service) TABLESPACE tbs_emp;

Remarques • L’utilisation du TABLESPACE est très importante.

• Les contraintes peuvent concernées, soit les colonnes, soit les tables.

• Les noms des contraintes permettent l’activation ou la désactivation de la contrainte.

Exemple 2

CREATE TABLE employes (no_emp NUMBER, no_service NUMBER, CONSTRAINT no_emp_pk PRIMARY KEY (no_emp), CONSTRAINT no_service_fk FOREIGN KEY (no_service) REFERENCES service (no_service) TABLESPACE tbs_emp;

Remarques • L’utilisation du TABLESPACE est très importante.

• Les contraintes peuvent concernées, soit les colonnes, soit les tables.

• Les noms des contraintes permettent l’activation ou la désactivation de la contrainte.

Caractéristiques/ExemplesCaractéristiques/Exemples

Page 7: Langage Définition des Données LDD DROP ALTER CREATE

Modification des tables ALTER TABLE

Modification des tables ALTER TABLE

Changer le type de données

d’une colonne vide

Changer le type de données

d’une colonne vide

Augmenter ou diminuer la taille d’une

colonne.

Augmenter ou diminuer la taille d’une

colonne. Ajouter et supprimer des colonnes d’une

table

Ajouter et supprimer des colonnes d’une

tableModifier la contrainte NOT NULL.

Modifier la contrainte NOT NULL.

LES TABLES LES TABLES Modification Modification

Marquer les colonnes comme

inutilisables

Marquer les colonnes comme

inutilisables

Créer ou supprimer une

contrainte

Créer ou supprimer une

contrainte

Modification de la structure des tablesModification de la

structure des tables

Page 8: Langage Définition des Données LDD DROP ALTER CREATE

LES TABLES LES TABLES Modification Modification

Syntaxe formelle

ALTER TABLE [schema.]table

[ADD { { column datatype [DEFAULT expr] [column_constraint] ...| table_constraint} |

( { column datatype [DEFAULT expr] [column_constraint] ...| table_constraint}

[, { column datatype [DEFAULT expr] [column_constraint] ...| table_constraint} ] ... ) } ]

[ MODIFY { column [datatype] [DEFAULT expr] [column_constraint] ... | (column [datatype]

[DEFAULT expr] [column_constraint] ... [, column datatype [DEFAULT expr]

[column_constraint] ...] ...) } ]

[PCTFREE integer] [PCTUSED integer]

[INITRANS integer] [MAXTRANS integer]

[STORAGE storage_clause]

[DROP drop_clause] ...

[ALLOCATE EXTENT [( [SIZE integer [K|M] ]

[DATAFILE 'filename']

[ INSTANCE integer] )]

[ PARALLEL ( [ DEGREE { integer | DEFAULT } ]

[ INSTANCES { integer | DEFAULT } ] ) | NOPARALLEL ] [ CACHE | NOCACHE ]

[ ENABLE { enable_clause | TABLE LOCK } | DISABLE { disable_clause | TABLE LOCK } ] ...

Syntaxe formelle

ALTER TABLE [schema.]table

[ADD { { column datatype [DEFAULT expr] [column_constraint] ...| table_constraint} |

( { column datatype [DEFAULT expr] [column_constraint] ...| table_constraint}

[, { column datatype [DEFAULT expr] [column_constraint] ...| table_constraint} ] ... ) } ]

[ MODIFY { column [datatype] [DEFAULT expr] [column_constraint] ... | (column [datatype]

[DEFAULT expr] [column_constraint] ... [, column datatype [DEFAULT expr]

[column_constraint] ...] ...) } ]

[PCTFREE integer] [PCTUSED integer]

[INITRANS integer] [MAXTRANS integer]

[STORAGE storage_clause]

[DROP drop_clause] ...

[ALLOCATE EXTENT [( [SIZE integer [K|M] ]

[DATAFILE 'filename']

[ INSTANCE integer] )]

[ PARALLEL ( [ DEGREE { integer | DEFAULT } ]

[ INSTANCES { integer | DEFAULT } ] ) | NOPARALLEL ] [ CACHE | NOCACHE ]

[ ENABLE { enable_clause | TABLE LOCK } | DISABLE { disable_clause | TABLE LOCK } ] ...

Page 9: Langage Définition des Données LDD DROP ALTER CREATE

LES TABLES LES TABLES Modification Modification

Syntaxe usuelle

ALTER TABLE nom_table [MODIFY(col1 type1 [NOT NULL] [, col1 type1 [NOT NULL] , …])]

[ADD(col1 type1 [NOT NULL] [, col1 type1 [NOT NULL] , …])]

[DROP col1,col2,…)]

[ADD CONSTRAINT clause_contrainte]

[SET UNUSED COLUMN nom_col]

[DROP UNUSED COLUMNS]

Exemple 1

ALTER TABLE employes

MODIFY dt_nais NULL;

Exemple 2

ALTER TABLE employes ADD (dt_rec DATE NOT NULL,adresse VARCHAR2(50));

Exemple 3

ALTER TABLE employes ADD (age NUMBER(2) NOT NULL)

DROP (dt_nais,dt_rec);

Exemple 4

ALTER TABLE employes ADD CONSTRAINT emp_sup_no CHECK (sup_no!=no);

Syntaxe usuelle

ALTER TABLE nom_table [MODIFY(col1 type1 [NOT NULL] [, col1 type1 [NOT NULL] , …])]

[ADD(col1 type1 [NOT NULL] [, col1 type1 [NOT NULL] , …])]

[DROP col1,col2,…)]

[ADD CONSTRAINT clause_contrainte]

[SET UNUSED COLUMN nom_col]

[DROP UNUSED COLUMNS]

Exemple 1

ALTER TABLE employes

MODIFY dt_nais NULL;

Exemple 2

ALTER TABLE employes ADD (dt_rec DATE NOT NULL,adresse VARCHAR2(50));

Exemple 3

ALTER TABLE employes ADD (age NUMBER(2) NOT NULL)

DROP (dt_nais,dt_rec);

Exemple 4

ALTER TABLE employes ADD CONSTRAINT emp_sup_no CHECK (sup_no!=no);

Page 10: Langage Définition des Données LDD DROP ALTER CREATE

LES TABLES LES TABLES Changement de nomChangement de nom

Syntaxe

RENAME ancien_nom TO nouveau_nom ;

Exemple

RENAME employe TO emps;

Remarque

La syntaxe est la même pour tous objets du schéma :table, vue, séquence, synonyme, …

Syntaxe

RENAME ancien_nom TO nouveau_nom ;

Exemple

RENAME employe TO emps;

Remarque

La syntaxe est la même pour tous objets du schéma :table, vue, séquence, synonyme, …

Page 11: Langage Définition des Données LDD DROP ALTER CREATE

LES TABLES LES TABLES Suppression des lignesSuppression des lignes

Syntaxe

TRUNCATE TABLE [schema.]table

[ {DROP | REUSE} STORAGE] ;

Rôle

Supprime toutes les lignes d’une table.

Préserve la structure de la table.

Commande irréversible, car ne nécessitant pas de validation.

Cette commande est du ressort du DBA.

Exemple

TRUNCATE TABLE emps;

Syntaxe

TRUNCATE TABLE [schema.]table

[ {DROP | REUSE} STORAGE] ;

Rôle

Supprime toutes les lignes d’une table.

Préserve la structure de la table.

Commande irréversible, car ne nécessitant pas de validation.

Cette commande est du ressort du DBA.

Exemple

TRUNCATE TABLE emps;

Page 12: Langage Définition des Données LDD DROP ALTER CREATE

LES TABLES LES TABLES Suppression tablesSuppression tables

Syntaxe

DROP TABLE [schema.]table

[CASCADE CONSTRAINTS] ;

Rôle

Supprime toutes les lignes d’une table.

Supprime la structure de la table.

L’espace de la table est libéré.

CASCADE CONSTRAINTS permet de supprimer la table même si l’une de ses colonnes

sont référencées par d’autres tables.

Exemple

DROP TABLE emps

CASCADE CONSTRAINTS;

Syntaxe

DROP TABLE [schema.]table

[CASCADE CONSTRAINTS] ;

Rôle

Supprime toutes les lignes d’une table.

Supprime la structure de la table.

L’espace de la table est libéré.

CASCADE CONSTRAINTS permet de supprimer la table même si l’une de ses colonnes

sont référencées par d’autres tables.

Exemple

DROP TABLE emps

CASCADE CONSTRAINTS;

Page 13: Langage Définition des Données LDD DROP ALTER CREATE

LES TABLES LES TABLES Les partitionsLes partitions

Partitionner une table revient à

Partitionner une table revient à

À diviser une grande table en plusieurs tables plus petites

À diviser une grande table en plusieurs tables plus petites

Améliorer les performances au niveau recherche pour les requêtes SQL.

Améliorer les performances au niveau recherche pour les requêtes SQL.

Prévenir contre la corruption des fichiers de la base.Prévenir contre la corruption des fichiers de la base.

Avantages des partitions

Avantages des partitions

Faciliter les sauvegardes et les restaurations de la base.Faciliter les sauvegardes et les restaurations de la base.

Page 14: Langage Définition des Données LDD DROP ALTER CREATE

LES TABLES LES TABLES Les partitionsLes partitions

Partitionnement par plage

Partitionnement par plage

Création des partitions en fonction d'une plage de valeurs d'une colonne

Création des partitions en fonction d'une plage de valeurs d'une colonne

TYPES PARTITIONS

TYPES PARTITIONS

Partitionnement par hachage

Partitionnement par hachage

Partition en fonction de valeurs générées par hachage sur une clé donnée.

Partition en fonction de valeurs générées par hachage sur une clé donnée.

Page 15: Langage Définition des Données LDD DROP ALTER CREATE

LES TABLES LES TABLES Les partitionsLes partitions

Syntaxe 1 : par plage

CREATE TABLE table(col1 type_donnée1, …, coln type_donnéen)PARTITION BY RANGE (col)(PARTITION part1 VALUES THAN (val1) TABLESPACE tbs1,… (PARTITION partn VALUES THAN (MAXVALUE) TABLESPACE tbsn);

Syntaxe 1 : par Hachage

CREATE TABLE table(col1 type_donnée1, …, coln type_donnéen)PARTITION BY HASH (col)PARTITION nSTORE IN (tbs1,tbs2,…tbsn);

Syntaxe 1 : par plage

CREATE TABLE table(col1 type_donnée1, …, coln type_donnéen)PARTITION BY RANGE (col)(PARTITION part1 VALUES THAN (val1) TABLESPACE tbs1,… (PARTITION partn VALUES THAN (MAXVALUE) TABLESPACE tbsn);

Syntaxe 1 : par Hachage

CREATE TABLE table(col1 type_donnée1, …, coln type_donnéen)PARTITION BY HASH (col)PARTITION nSTORE IN (tbs1,tbs2,…tbsn);

Page 16: Langage Définition des Données LDD DROP ALTER CREATE

LES VUES - VIEWS LES VUES - VIEWS Définition - Syntaxe Définition - Syntaxe

Table virtuelle basée sur un

SELECT

Table virtuelle basée sur un

SELECT

VUE - VIEWVUE - VIEW

Chaque appel de la vue invoque le

SELECT

Chaque appel de la vue invoque le

SELECT

Données de la vue se trouvent dans les tables

qui la sous-tendent

Données de la vue se trouvent dans les tables

qui la sous-tendent

• Cataloguer des ordres SQL complexes.

• Restreindre l'accès à certaines des colonnes d'une ou de plusieurs tables.

• Cacher la structure physique de la base de données.

• Cataloguer des ordres SQL complexes.

• Restreindre l'accès à certaines des colonnes d'une ou de plusieurs tables.

• Cacher la structure physique de la base de données.

Page 17: Langage Définition des Données LDD DROP ALTER CREATE

Syntaxe

CREATE [OR REPLACE] VIEW [schema.]view [(alias [,alias]...)]

AS subquery

[WITH CHECK OPTION [CONSTRAINT constraint]] ;

Exemple CREATE OR REPLACE VIEW vue_4145 ASSELECT no,nom,titre,salaire*4*12 "SALAIRE ANNUEL"FROM e_empWHERE service_no BETWEEN 41 AND 45;

Remarques

Le SELECT peut contenir toutes les clauses sauf : CONNECT BY/ORDERBY.

WITH CHECK OPTION permet que les UPDATE ou INSERT faits à travers la vue ne

produisent que des lignes correspondant à la définition de la vue.

Une view peut être créée par SELECTION, JOINTURE ou PROJECTION.

Syntaxe

CREATE [OR REPLACE] VIEW [schema.]view [(alias [,alias]...)]

AS subquery

[WITH CHECK OPTION [CONSTRAINT constraint]] ;

Exemple CREATE OR REPLACE VIEW vue_4145 ASSELECT no,nom,titre,salaire*4*12 "SALAIRE ANNUEL"FROM e_empWHERE service_no BETWEEN 41 AND 45;

Remarques

Le SELECT peut contenir toutes les clauses sauf : CONNECT BY/ORDERBY.

WITH CHECK OPTION permet que les UPDATE ou INSERT faits à travers la vue ne

produisent que des lignes correspondant à la définition de la vue.

Une view peut être créée par SELECTION, JOINTURE ou PROJECTION.

LES VUES - VIEWS LES VUES - VIEWS Création - Syntaxe Création - Syntaxe

Page 18: Langage Définition des Données LDD DROP ALTER CREATE

INSERTINSERT

VUE VIEWVUE VIEW

DELETEDELETE

UPDATEUPDATE

Ne pas Contenir toutes les colonnes NOT NULL.Ne pas Contenir toutes les colonnes NOT NULL.

LES VUES - VIEWS LES VUES - VIEWS Contraintes Contraintes

Contient une colonne calculée

Contient une colonne calculée

Renferme la clause GROUP BY

Renferme la clause GROUP BY

Renferme la clause DISTINCT

Renferme la clause DISTINCT

Page 19: Langage Définition des Données LDD DROP ALTER CREATE

LES VUES - VIEWS LES VUES - VIEWS Modification / SuppressionModification / Suppression

Modification

ALTER VIEW [schema.]view COMPILE;

Utilisée si la structure des tables sous-tendant la view changent.

Suppression

DROP VIEW [schema.]view;

Exemple

DROP VIEW vue_4145;

Modification

ALTER VIEW [schema.]view COMPILE;

Utilisée si la structure des tables sous-tendant la view changent.

Suppression

DROP VIEW [schema.]view;

Exemple

DROP VIEW vue_4145;

Page 20: Langage Définition des Données LDD DROP ALTER CREATE

INDEXINDEX Définition - Syntaxe Définition - Syntaxe

Accélérateur d'accès sur une table ou un cluster.

Accélérateur d'accès sur une table ou un cluster.

INDEX INDEX

Transparent aux requête, mais utilisé par l'optimiseur Oracle.

Transparent aux requête, mais utilisé par l'optimiseur Oracle.

Peut être unique ou multiple, concaténé ou non.

Peut être unique ou multiple, concaténé ou non.

• Amélioration des temps d'accès.

• Intervenir dans le tuning des bases Oracle.

• Amélioration des temps d'accès.

• Intervenir dans le tuning des bases Oracle.

Page 21: Langage Définition des Données LDD DROP ALTER CREATE

INDEXINDEX Définition - Syntaxe Définition - Syntaxe

Syntaxe

CREATE [UNIQUE] INDEX [schema.]index

ON { [schema.]table (column [ASC|DESC][, column [ASC|DESC]] ...) | CLUSTER

[schema.]cluster }

[INITRANS integer] [MAXTRANS integer]

[TABLESPACE tablespace] [STORAGE storage_clause]

[PCTFREE integer] [NOSORT | SORT]

[ RECOVERABLE | UNRECOVERABLE ]

Exemple

CREATE UNIQUE INDEX i_nom_emp

ON employes(nom DESC)

TABLESPACE tbs_idx;

Syntaxe

CREATE [UNIQUE] INDEX [schema.]index

ON { [schema.]table (column [ASC|DESC][, column [ASC|DESC]] ...) | CLUSTER

[schema.]cluster }

[INITRANS integer] [MAXTRANS integer]

[TABLESPACE tablespace] [STORAGE storage_clause]

[PCTFREE integer] [NOSORT | SORT]

[ RECOVERABLE | UNRECOVERABLE ]

Exemple

CREATE UNIQUE INDEX i_nom_emp

ON employes(nom DESC)

TABLESPACE tbs_idx;

Page 22: Langage Définition des Données LDD DROP ALTER CREATE

INDEXINDEX Règles construction indexRègles construction index

• Utiliser un index UNIQUE pour créer une contrainte d'unicité sur une colonne.

• Stocker les index dans un TABLESPACE différent de celui des données.

• Le choix des colonnes d'index doit tenir compte de leurs fréquence de mise à jour.

• Un index peut être partitionné.

Depuis la version 8i d'Oracle, on peut définir des index sur les fonctions :

Exemple

CREATE INDEX nom_idx

ON table(UPPER(col));

• Utiliser un index UNIQUE pour créer une contrainte d'unicité sur une colonne.

• Stocker les index dans un TABLESPACE différent de celui des données.

• Le choix des colonnes d'index doit tenir compte de leurs fréquence de mise à jour.

• Un index peut être partitionné.

Depuis la version 8i d'Oracle, on peut définir des index sur les fonctions :

Exemple

CREATE INDEX nom_idx

ON table(UPPER(col));

Page 23: Langage Définition des Données LDD DROP ALTER CREATE

INDEXINDEX Modification - SuppressionModification - Suppression

Modification

ALTER INDEX [schema.]index REBUILD;

Utiliser cette commande pour reconstruire l'index.

Suppression

DROP INDEX [schema.]index;

Exemple

DROP INDEX vue_4145;

Modification

ALTER INDEX [schema.]index REBUILD;

Utiliser cette commande pour reconstruire l'index.

Suppression

DROP INDEX [schema.]index;

Exemple

DROP INDEX vue_4145;

Page 24: Langage Définition des Données LDD DROP ALTER CREATE

SEQUENCESEQUENCE Définition - Syntaxe Définition - Syntaxe

Rôle Permet de générer séquentiellement des numéros attribués à des colonnes numériques ayant une contrainte de type PRIMARY KEY ou UNIQUE.

SyntaxeCREATE SEQUENCE [schema.]sequence

[INCREMENT BY integer]

[START WITH integer]

[MAXVALUE integer | NOMAXVALUE]

[MINVALUE integer | NOMINVALUE]

[CYCLE | NOCYCLE]

[CACHE integer | NOCACHE]

[ORDER | NOORDER]

Rôle Permet de générer séquentiellement des numéros attribués à des colonnes numériques ayant une contrainte de type PRIMARY KEY ou UNIQUE.

SyntaxeCREATE SEQUENCE [schema.]sequence

[INCREMENT BY integer]

[START WITH integer]

[MAXVALUE integer | NOMAXVALUE]

[MINVALUE integer | NOMINVALUE]

[CYCLE | NOCYCLE]

[CACHE integer | NOCACHE]

[ORDER | NOORDER]

Page 25: Langage Définition des Données LDD DROP ALTER CREATE

SEQUENCESEQUENCE Définition - Syntaxe Définition - Syntaxe

Clause Signification

START WITH Définit la valeur de départ de la séquence.

INCREMENT BY Définit le pas d'incrémentation.

MINVALUE/NOMINVALUE Définit la valeur minimale de la séquence, ou la désactive.

MAXVALUE/NOMAXVALUE Définit la valeur maximale de la séquence, ou la désactive

(1 ou 10E27.

CYCLE/NOCYCLE Autorise ou non les cycles dans le cas où la MAXVALUE est atteinte.

CACHE/NOCACHE Demande au système de pré-allouer ou pas un espace en mémoire.

LONG Permet de stocker des chaînes d'une longueur max de 2 Go.

Texte LONG

ORDER/NOORDER Séquence ordonnée ou non.

Page 26: Langage Définition des Données LDD DROP ALTER CREATE

SEQUENCESEQUENCE Exemples - Fonctions Exemples - Fonctions

Exemple 1CREATE SEQUENCE seq_empINCREMENT BY 1START WITH 100 MAXVALUE 50000MINVALUE 10CYCLECACHE 100ORDER;

Exemple 2SELECT seq_emp.NEXTVAL // Valeur suivante de la séquenceFROM dual;

Exemple 3SELECT seq_emp.CURRVAL //valeur couranteFROM dual;

Exemple 1CREATE SEQUENCE seq_empINCREMENT BY 1START WITH 100 MAXVALUE 50000MINVALUE 10CYCLECACHE 100ORDER;

Exemple 2SELECT seq_emp.NEXTVAL // Valeur suivante de la séquenceFROM dual;

Exemple 3SELECT seq_emp.CURRVAL //valeur couranteFROM dual;

Page 27: Langage Définition des Données LDD DROP ALTER CREATE

SEQUENCESEQUENCE Modification - Suppression Modification - Suppression

Modification

ALTER SEQUENCE [schema.]sequence [INCREMENT BY integer] [MAXVALUE integer | NOMAXVALUE] [MINVALUE integer | NOMINVALUE] [CYCLE | NOCYCLE][CACHE integer | NOCACHE] [ORDER | NOORDER] ;

Suppression

DROP SEQUENCE [schema.]sequence; Exemple

DROP SEQUENCE seq_emp;

Modification

ALTER SEQUENCE [schema.]sequence [INCREMENT BY integer] [MAXVALUE integer | NOMAXVALUE] [MINVALUE integer | NOMINVALUE] [CYCLE | NOCYCLE][CACHE integer | NOCACHE] [ORDER | NOORDER] ;

Suppression

DROP SEQUENCE [schema.]sequence; Exemple

DROP SEQUENCE seq_emp;

Page 28: Langage Définition des Données LDD DROP ALTER CREATE

SYNONYMESSYNONYMES Définition - Syntaxe Définition - Syntaxe

Rôle

Permet de donner un nom ou un alias afin de le référencer différemment. Un synonyme peut être créé sur les objets suivants :

TABLES, VUES, SEQUENCES, SYNONYMES, CLUSTERS, PROCEDURES, FONCTIONS, PACKAGES.

SyntaxeCREATE [PUBLIC] SYNONYM [schema.]synonym

FOR [schema.]object[@dblink]

Exemple

CREATE SYNONYM t_employes

FOR employes;

SELECT * from t_employes;

t_employes et employes référencent la même table.

Rôle

Permet de donner un nom ou un alias afin de le référencer différemment. Un synonyme peut être créé sur les objets suivants :

TABLES, VUES, SEQUENCES, SYNONYMES, CLUSTERS, PROCEDURES, FONCTIONS, PACKAGES.

SyntaxeCREATE [PUBLIC] SYNONYM [schema.]synonym

FOR [schema.]object[@dblink]

Exemple

CREATE SYNONYM t_employes

FOR employes;

SELECT * from t_employes;

t_employes et employes référencent la même table.

Page 29: Langage Définition des Données LDD DROP ALTER CREATE

SYNONYMESSYNONYMES Nom - Suppression Nom - Suppression

Remarques

PUBLIC permet de créer des synonymes accessibles par tous les utilisateurs. Par défaut le synonyme est privé, accessible uniquement par le propriétaire. Un synonyme est mesure de protection des objets.

Changement de nom

RENAME SYNONYM ancien TO nouveau;

Suppression

DROP SYNONYM nom_syn;

Remarques

PUBLIC permet de créer des synonymes accessibles par tous les utilisateurs. Par défaut le synonyme est privé, accessible uniquement par le propriétaire. Un synonyme est mesure de protection des objets.

Changement de nom

RENAME SYNONYM ancien TO nouveau;

Suppression

DROP SYNONYM nom_syn;

Page 30: Langage Définition des Données LDD DROP ALTER CREATE

UTILISATEURSUTILISATEURS Définition - Syntaxe Définition - Syntaxe

Définition

Un utilisateur est un objet au même titre que les autres (tables, vues, …).

Des tables spéciales entretenues par le DBA permettent de stocker toutes les

informations sur les utilisateurs.

Un synonyme est mesure de protection des objets.

Utilisateurs prédéfinis

SCOTT / TIGER : droits limités.

SYS / CHANGE_ON_INSTALL : superutilisateur.

SYSTEM / MANAGER : synonyme de SYS, ayant des droits, mais moins que SYS.

Opérations sur les utilisateurs

Création.

Modification.

Suppression.

Attribution des privilèges.

Attribution de rôles.

Définition

Un utilisateur est un objet au même titre que les autres (tables, vues, …).

Des tables spéciales entretenues par le DBA permettent de stocker toutes les

informations sur les utilisateurs.

Un synonyme est mesure de protection des objets.

Utilisateurs prédéfinis

SCOTT / TIGER : droits limités.

SYS / CHANGE_ON_INSTALL : superutilisateur.

SYSTEM / MANAGER : synonyme de SYS, ayant des droits, mais moins que SYS.

Opérations sur les utilisateurs

Création.

Modification.

Suppression.

Attribution des privilèges.

Attribution de rôles.

Page 31: Langage Définition des Données LDD DROP ALTER CREATE

UTILISATEURSUTILISATEURS CréationCréation

Syntaxe

CREATE USER user

IDENTIFIED BY password

[DEFAULT TABLESPACE tablespace]

[TEMPORARY TABLESPACE tablespace]

[QUOTA {integer [K|M] | UNLIMITED} ON tablespace] ...

[PROFILE profile];

Exemple

CREATE USER rpig4

IDENTIFIED BY rpig4

DEFAULT TABLESPACE users

TEMPORAY TABLESPACE temp;

L'indication du DEFAULT TABLESPACE est importante.

Le quota permet d'attribuer à l'utilisateur un quota sur un TABLESPACE.

Syntaxe

CREATE USER user

IDENTIFIED BY password

[DEFAULT TABLESPACE tablespace]

[TEMPORARY TABLESPACE tablespace]

[QUOTA {integer [K|M] | UNLIMITED} ON tablespace] ...

[PROFILE profile];

Exemple

CREATE USER rpig4

IDENTIFIED BY rpig4

DEFAULT TABLESPACE users

TEMPORAY TABLESPACE temp;

L'indication du DEFAULT TABLESPACE est importante.

Le quota permet d'attribuer à l'utilisateur un quota sur un TABLESPACE.

Page 32: Langage Définition des Données LDD DROP ALTER CREATE

UTILISATEURSUTILISATEURS Modification – Suppression Modification – Suppression

Modification

ALTER USER user

[IDENTIFIED BY password]

[DEFAULT TABLESPACE tablespace]

[TEMPORARY TABLESPACE tablespace]

[QUOTA {integer [K|M] | UNLIMITED} ON tablespace] ...

[PROFILE profile]

[DEFAULT ROLE { role [, role] ... | ALL [EXCEPT role [, role] ...] | NONE}] ;

Suppression

DROP USER user [CASCADE] ;

CASCADE signifie qu'il faut effacer tous les objets de cet utilisateur.

Modification

ALTER USER user

[IDENTIFIED BY password]

[DEFAULT TABLESPACE tablespace]

[TEMPORARY TABLESPACE tablespace]

[QUOTA {integer [K|M] | UNLIMITED} ON tablespace] ...

[PROFILE profile]

[DEFAULT ROLE { role [, role] ... | ALL [EXCEPT role [, role] ...] | NONE}] ;

Suppression

DROP USER user [CASCADE] ;

CASCADE signifie qu'il faut effacer tous les objets de cet utilisateur.

Page 33: Langage Définition des Données LDD DROP ALTER CREATE

ROLESROLES Définition - Syntaxe Définition - Syntaxe

Définition

Un objet qui encapsule plusieurs droits ou privilèges élémentaires.

Un rôle est rattaché à un ou plusieurs utilisateurs.

Un rôle est le reflet d'une typologie d'utilisateur (user final, administrateur, exploitant).

Le rôle des rôles est de simplifier le travail d'administration de la base.

Rôles prédéfinis

CONNECT : droits de connexion et d'exécution d'ordre LMD.

RESOURCE : droits de connexion et d'exécution d'ordre LDD non DBA.

DBA : Tous les droits.

Opérations sur les rôles

Création.

Modification.

Suppression.

Définition

Un objet qui encapsule plusieurs droits ou privilèges élémentaires.

Un rôle est rattaché à un ou plusieurs utilisateurs.

Un rôle est le reflet d'une typologie d'utilisateur (user final, administrateur, exploitant).

Le rôle des rôles est de simplifier le travail d'administration de la base.

Rôles prédéfinis

CONNECT : droits de connexion et d'exécution d'ordre LMD.

RESOURCE : droits de connexion et d'exécution d'ordre LDD non DBA.

DBA : Tous les droits.

Opérations sur les rôles

Création.

Modification.

Suppression.

Page 34: Langage Définition des Données LDD DROP ALTER CREATE

CLUSTERSCLUSTERS Définition - Syntaxe Définition - Syntaxe

Définition

Un cluster est organisation qui permet de rassembler dans un même bloc disque les

lignes de plusieurs tables, en se basant sur une valeur commune d'une ou de

plusieurs colonnes.

Un rôle est rattaché à un ou plusieurs utilisateurs.

Un rôle est le reflet d'une typologie d'utilisateur (user final, administrateur, exploitant).

Le rôle des rôles est de simplifier le travail d'administration de la base.

Clusters indexés

Stockage dans les blocs selon la valeur d'une clé fonctionnelle.

Accès aux blocs selon un index (obligatoire).

Hash clusters

Stockage dans les blocs selon la valeur de la clé de hachage.

Lors de la création du hach cluster, indiquer le nombre de valeurs de la clé.

Définition

Un cluster est organisation qui permet de rassembler dans un même bloc disque les

lignes de plusieurs tables, en se basant sur une valeur commune d'une ou de

plusieurs colonnes.

Un rôle est rattaché à un ou plusieurs utilisateurs.

Un rôle est le reflet d'une typologie d'utilisateur (user final, administrateur, exploitant).

Le rôle des rôles est de simplifier le travail d'administration de la base.

Clusters indexés

Stockage dans les blocs selon la valeur d'une clé fonctionnelle.

Accès aux blocs selon un index (obligatoire).

Hash clusters

Stockage dans les blocs selon la valeur de la clé de hachage.

Lors de la création du hach cluster, indiquer le nombre de valeurs de la clé.

Page 35: Langage Définition des Données LDD DROP ALTER CREATE

CLUSTERSCLUSTERS Création Création

Syntaxe

CREATE CLUSTER [schema.]cluster (column datatype [,column datatype] ... )

[PCTUSED integer] [PCTFREE integer]

[SIZE integer [K|M] ]

[INITRANS integer] [MAXTRANS integer]

[TABLESPACE tablespace]

[STORAGE storage_clause]

[ PARALLEL ( [ DEGREE { integer | DEFAULT } ]

[ INSTANCES { integer | DEFAULT } ] ) | NOPARALLEL ]

[ CACHE | NOCACHE ]

[INDEX | [HASH IS column] HASHKEYS integer];

Syntaxe

CREATE CLUSTER [schema.]cluster (column datatype [,column datatype] ... )

[PCTUSED integer] [PCTFREE integer]

[SIZE integer [K|M] ]

[INITRANS integer] [MAXTRANS integer]

[TABLESPACE tablespace]

[STORAGE storage_clause]

[ PARALLEL ( [ DEGREE { integer | DEFAULT } ]

[ INSTANCES { integer | DEFAULT } ] ) | NOPARALLEL ]

[ CACHE | NOCACHE ]

[INDEX | [HASH IS column] HASHKEYS integer];

Page 36: Langage Définition des Données LDD DROP ALTER CREATE

CLUSTERSCLUSTERS Création Création

Exemple

CREATE CLUSTER cl_01

(deptno NUMBER(3));

CREATE INDEX cl_01_idx ON CLUSTER cl_01;

CREATE TABLE salaire (

)

CLUSTER cl_01(dept_no);

CREATE TABLE departement (

)

CLUSTER cl_01(no);

Exemple

CREATE CLUSTER cl_01

(deptno NUMBER(3));

CREATE INDEX cl_01_idx ON CLUSTER cl_01;

CREATE TABLE salaire (

)

CLUSTER cl_01(dept_no);

CREATE TABLE departement (

)

CLUSTER cl_01(no);