Upload
rogier-ferrer
View
118
Download
3
Embed Size (px)
Citation preview
Langage Définition des
Données
LDD
Langage Définition des
Données
LDD
DROPDROP
ALTERALTERCREATECREATE
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
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
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
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
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
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
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 } ] ...
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);
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, …
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;
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;
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.
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.
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);
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.
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
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
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;
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.
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;
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));
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;
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]
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.
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;
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;
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.
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;
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.
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.
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.
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.
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é.
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];
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);