0% ont trouvé ce document utile (0 vote)
157 vues7 pages

Guide de Création de Tables Oracle

Transféré par

raniadesert2
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
157 vues7 pages

Guide de Création de Tables Oracle

Transféré par

raniadesert2
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Université Sultan Moulay Slimane

Faculté polydisciplinaire
-Beni Mellal-

TP1
Creation des tables :
Dans Oracle Database, la création de tables est une étape essentielle pour organiser et stocker des
données de manière structurée.

1. Créer un tableau:
Pour créer une table, vous devez définir trois éléments :

• Son nom

• Ses colonnes

• Les types de données de ces colonnes

La syntaxe de base pour créer une table est :

create table <table_name> (

<column1_name> <data_type>,

<column2_name> <data_type>,

<column3_name> <data_type>,

...

);

Par exemple, si on veut créer un table pour stocker les informations des étudiants :

create table student (


id number generated by default as identity,
first_name varchar(250) not null,
last_name varchar(250) not null,
apogee number not null
);

2. Affichage des informations sur la table :


La requête suivante vous montrera la table des jouets que vous avez créée à l'étape précédente :
select table_name, iot_name, iot_type, external,
partitioned, temporary, cluster_name

1
Université Sultan Moulay Slimane
Faculté polydisciplinaire
-Beni Mellal-

from user_tables;
Les autres colonnes affichent les détails des propriétés de chaque table. Le reste de ce didacticiel les
explorera.
l'instruction suivante pour créer une table Bricks pour stocker les détails suivant :
 Couleur
 Forme
 CREATE TABLE Bricks (
 Couleur VARCHAR2(10),
 Forme VARCHAR2(10)
 );
Si on tape la commande : “ select table_name from user_tables where table_name =
'BRICKS';”

On a le résultat suivante :

3.Organisation des tables:


Créer une table dans Oracle Database a une clause d'organisation. Cela définit comment il stocke
physiquement les lignes dans la table.
Les options pour cela sont :
 Heap
 Index
 External

Par défaut, les tables sont organisées en Heap. Cela signifie que la base de données est libre de
stocker des lignes partout où il y a de l'espace. Vous pouvez ajouter la clause "heap de l'organisation"
si vous voulez être explicite :

create table jouet_heap ( name varchar2(100) ) organization heap;


select table_name, iot_name, iot_type, external, partitioned, temporary,
cluster_name from user_tables where table_name = 'JOUET_HEAP';
Ce qui nous donne pour résultat :

2
Université Sultan Moulay Slimane
Faculté polydisciplinaire
-Beni Mellal-

4.Tableaux organisés en index


Contrairement à une table Heap, une table organisée en index (index-organized table IOT) impose
l'ordre sur les lignes qu'elle contient. Il stocke physiquement les lignes triées par sa clé primaire. Pour
créer un IOT, vous devez :
• Spécifiez une clé primaire pour la table
• Ajouter la clause d'index d'organisation à la fin

Par exemple:

create table jouet_iot ( id integer primary key, name varchar2(100)) organization


index;

Vous pouvez trouver IOT dans le dictionnaire de données en consultant la colonne IOT_TYPE. Cela
renverra IOT si la table est organisée en index :

select table_name, iot_type from user_tables where table_name = 'JOUET_IOT';


Qui a pour résultat :

l'instruction suivante pour créer la table bricks_iot organisée en index :

create table bricks_iot ( bricks_id integer primary key ) organization index;


Si, on tape la commande suivante :

select table_name, iot_type from user_tables where table_name = 'BRICKS_IOT';


On trouve :

5. Tableaux externes
Vous utilisez des tables externes pour lire des fichiers qui ne sont pas des bases de données sur le
serveur de base de données. Par exemple, les fichiers de valeurs séparées par des virgules (CSV).
Pour ce faire, vous devez :

3
Université Sultan Moulay Slimane
Faculté polydisciplinaire
-Beni Mellal-

• Créer un répertoire pointant vers l'emplacement du fichier sur le serveur avec l’utilisateur sys
• Utiliser la clause externe de l'organisation
• Indiquez le répertoire et le nom du fichier que vous voulez lire

Par exemple:

create or replace directory toy_dir as 'C:\code';


create table toys_ext ( name varchar2(100) ) organization external ( default
directory toy_dir location ('jouets.csv') );
6. Tables temporaires :
Les tables temporaires stockent des données spécifiques à la session. Seule la session qui ajoute les
lignes peut les voir. Cela peut être pratique pour stocker des données de travail.

Il existe deux types de table temporaire dans Oracle Database : globale et privée.

Tables temporaires globales


Pour créer une table temporaire globale, ajoutez la clause "global temporaire" entre create et table.
Par exemple :

create global temporary table jouet_gtt ( name varchar2(100) ) ON COMMIT DELETE


ROWS;

Tables temporaires privées


Pour en créer un, utilisez " private temporary" entre create et table. Vous devez également préfixer
le nom de la table avec ora$ptt_ :

create private temporary table ora$ptt_toys ( toy_name varchar2(100) );

Tablespace et Création Table :

Tablespace
Un Tablespace est un espace logique qui contient les objets stockés dans la base de données comme les
tables ou les index.

Un Tablespace est composé d'au moins un datafile, c'est-à-dire un fichier de données qui est
physiquement présent sur le serveur à l'endroit stipulé lors de sa création.

4
Université Sultan Moulay Slimane
Faculté polydisciplinaire
-Beni Mellal-

Chaque Datafile est constitué de segments d'au moins un extent (ou page) lui-même constitué d'au
moins 3 blocs : l'élément le plus petit d'une base de données.

L'extent n'a aucune signification particulière, c'est juste un groupe de blocs contigus pouvant accueillir
des données.

Exercice 1 :
1. Créer un Tablespace ITB_TRAN (d’une Taille initiale du fichier est 10M et qui peut grossir par
10M une fois que tout l’espace initialement alloué est utilisé), pour stocker l’index de primary key.
CREATE TABLESPACE ITB_TRAN
DATAFILE 'ITB_TRAN.dbf'
SIZE 10M
AUTOEXTEND ON
NEXT 10M
MAXSIZE UNLIMITED;

2. Créer un Tablespace DTB_TRAN (d’une Taille initiale du fichier est 10M et qui peut grossir par
10M une fois que tout l’espace initialement alloué est utilisé), pour stocker le schéma de la table
Catégories.
CREATE TABLESPACE DTB_TRAN
DATAFILE 'DTB_TRAN.dbf'
SIZE 10M
AUTOEXTEND ON
NEXT 10M
MAXSIZE UNLIMITED;

le code de création de la table CATÉGORIES, en utilisant les tablespaces créées.

CREATE TABLE CATEGORIES (


CODE_CATEGORIE NUMBER(6) NOT NULL,
NOM_CATEGORIE VARCHAR2(25) NOT NULL,
DESCRIPTION VARCHAR2(100) NOT NULL,
CONSTRAINT CATEGORIES_PK PRIMARY KEY (CODE_CATEGORIE)
USING INDEX
TABLESPACE ITB_TRAN
) TABLESPACE DTB_TRAN;

Exercice 2 :
CREATE TABLE COMMANDES (

5
Université Sultan Moulay Slimane
Faculté polydisciplinaire
-Beni Mellal-

NO_COMMANDE NUMBER(6) NOT NULL,


CODE_CLIENT CHAR(5) NOT NULL,
NO_EMPLOYE NUMBER(6) NOT NULL,
DATE_COMMANDE DATE NOT NULL,
DATE_ENVOI DATE,
PORT NUMBER(8,2),
LIVREE NUMBER(1) DEFAULT 0 NOT NULL,
ACQUITEE NUMBER(1) DEFAULT 0 NOT NULL,
ANNULEE NUMBER(1) DEFAULT 0 NOT NULL,
ANNEE GENERATED ALWAYS AS (EXTRACT(YEAR FROM DATE_COMMANDE)),
TRIMESTRE GENERATED ALWAYS AS (TO_CHAR(DATE_COMMANDE, 'Q')),
MOIS GENERATED ALWAYS AS (TO_CHAR(DATE_COMMANDE, 'MM')),
CONSTRAINT COMMANDES_PK PRIMARY KEY (NO_COMMANDE)
USING INDEX
TABLESPACE ITB_TRAN
) TABLESPACE DTB_TR;
Exercice 3 :
1. Créer une table extern IMP_COMMANDE qui a la même structure de la table commandes et qui
nous permet de lire les données de fichiers commandes.dat
CREATE TABLE IMP_COMMANDE (
NO_COMMANDE NUMBER(6),
CODE_CLIENT CHAR(5),
NO_EMPLOYE NUMBER(6),
DATE_COMMANDE DATE,
DATE_ENVOI DATE,
PORT NUMBER(8,2),
LIVREE NUMBER(1),
ACQUITEE NUMBER(1),
ANNULEE NUMBER(1)
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_LOADER
DEFAULT DIRECTORY data_dir
ACCESS PARAMETERS (
FIELDS TERMINATED BY ','
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS
LOCATION ('commandes.dat')
)
)
REJECT LIMIT UNLIMITED;

6
Université Sultan Moulay Slimane
Faculté polydisciplinaire
-Beni Mellal-

2. Insérer toutes les données de la table IMP_COMMANDE dans la table commandes.


INSERT INTO COMMANDES (NO_COMMANDE, CODE_CLIENT, NO_EMPLOYE, DATE_COMMANDE,
DATE_ENVOI, PORT, LIVREE, ACQUITEE, ANNULEE)
SELECT NO_COMMANDE, CODE_CLIENT, NO_EMPLOYE, DATE_COMMANDE, DATE_ENVOI, PORT,
LIVREE, ACQUITEE, ANNULEE
FROM IMP_COMMANDE;

Vous aimerez peut-être aussi