Vous êtes sur la page 1sur 22

SGBD

Cration et Gestion de Tables

12/06/2013

P.O.O

Objectifs
tudier les principaux objets d'une base de donnes et les relations qu'ils entretiennent. Crer, modifier et supprimer des tables. Dcrire les principaux objets d'une base de donnes

Crer des tables Dcrire les diffrents types de donnes utilisables pour les dfinitions de colonne Modifier la dfinition des tables Supprimer, renommer et tronquer une table

Objets d'une Base de Donnes


Objet Table Description Unit de stockage lmentaire, compose de lignes et de colonnes

Vue
Squence Index Synonyme

Reprsente de manire logique des sous-groupes de donnes


Gnre des valeurs de cls primaires Amliore les performances de certaines requtes Permet de donner un autre nom un objet

Conventions de Dnomination
Nommez les tables et colonnes de votre base de donnes en suivant les rgles de dnomination applicables tous les objets d'une base de donnes Oracle.

Les noms de table et de colonnes doivent commencer par une lettre et peuvent comprendre de 1 30 caractres. Les noms ne doivent pas contenir d'autres caractres que les caractres A Z, a z, 0 9, _ (trait de soulignement), $ et # (caractres autoriss, mais dconseills). Les noms ne doivent pas tre utiliss pour nommer plusieurs objets appartenant au mme utilisateur

Ces noms ne doivent pas tre des mots rservs Oracle Server

Conventions de Dnomination
Conseils

Utilisez des noms parlants. Utilisez une dnomination uniforme pour des entits identiques appartenant des tables diffrentes. Par exemple, la colonne numro du dpartement s'appelle DEPTNO dans la table EMP et dans la table DEPT.

L'Ordre CREATE TABLE


Crer des tables pour stocker des donnes en utilisant l'ordre SQL CREATE TABLE. Cet ordre fait partie d'une srie d'ordres appartenant au langage de dfinition des donnes (LDD) Les ordres du LDD reprsentent un sous-ensemble des ordres SQL utiliss pour crer, modifier ou supprimer des structures de donnes Oracle. Ils agissent directement sur la base de donnes, et enregistrent des informations dans le dictionnaire de donnes. Pour crer une table, l'utilisateur doit disposer du privilge CREATE TABLE et d'un espace de stockage dans laquelle il pourra crer des objets.

L'Ordre CREATE TABLE


Syntaxe : CREATE TABLE [schema.]table (column datatype [DEFAULT expr],...

L'Ordre CREATE TABLE


Schema : nom du propritaire Table : nom de la table DEFAULT expr spcifie une valeur par dfaut utiliser en cas d'omission d'une valeur dans l'ordre INSERT column : nom de la colonne Datatype:type de donnes et longueur de la colonne

L'Ordre CREATE TABLE


Exemple: SQL> CREATE TABLE dept 2 (deptno NUMBER(2), 3 dname VARCHAR2(14), 4 loc VARCHAR2(13)); Table created. SQL> DESCRIBE dept Name NULL? Type --------------------------- -------- --------DEPTNO NUMBER(2) DNAME VARCHAR2(14) LOC VARCHAR2(13)

Interrogation du Dictionnaire de Donnes


Interroger les tables du dictionnaire de donnes pour afficher diffrents objets de la base. Les tables du dictionnaire de donnes les plus frquemment utilises sont les suivantes :

USER_TABLES USER_OBJECTS USER_CATALOG

Remarque : CAT est un synonyme de USER_CATALOG. Utiliser la place de USER_CATALOG dans les ordres SQL.

Interrogation du Dictionnaire de Donnes


SQL> SELECT * FROM CAT; SQL> SELECT * FROM user_tables;

SQL> SELECT 2 FROM

DISTINCT object_type user_objects;

SQL> SELECT * FROM

user_catalog;

Types de Donnes
Types de donnes
VARCHAR2(size) CHAR(size) NUMBER(p,s) DATE LONG

Description
Donnes caractres de longueur variable Donnes caractres de longueur fixe Numrique de longueur variable Valeurs de date et d'heure Donnes caractres de longueur variable, jusqu' 2 gigaoctets

CLOB
RAW et LONG RAW BLOB BFILE

Donnes caractres mono-octet, jusqu' 4 giga-octets


Binaire Binaire, jusqu' 4 giga-octets Binaire, stock dans un fichier externe jusqu' 4 giga-octets

Cration d'une Table avec des Lignes d'une Autre Table.


Il existe une deuxime faon de crer une table, qui consiste utiliser la clause AS subquery. Cette mthode permet la fois de crer la table et d'y insrer des lignes ramenes par une sousinterrogation. Syntaxe :
Table : Nom de la table Column : nom de la colonne, valeur par dfaut et contrainte d'intgrit Subquery : ordre SELECT qui dfinit le groupe de lignes insrer dans la nouvelle table

Cration d'une Table avec des Lignes d'une Autre Table.


CREATE TABLE table [column(, column...)] AS subquery; Exemple:
SQL> CREATE TABLE dept30 2 AS 3 SELECT empno, ename, sal*12 ANNSAL, hiredate 4 FROM emp 5 WHERE deptno = 30; Table created.

Cration d'une Table avec des Lignes d'une Autre Table.

SQL> DESCRIBE dept30 Name NULL? Type ---------------------------- -------- ----EMPNO NUMBER(4) ENAME VARCHAR2(10) ANNSAL NUMBER HIREDATE DATE

Ordre ALTER TABLE


Aprs avoir cr vos tables, il peut arriver que vous deviez en modifier la structure

pour ajouter une colonne oublie ou changer une dfinition de colonne. Cela est possible grce l'ordre ALTER TABLE.

Ajouter des colonnes une table en utilisant l'ordre ALTER TABLE avec la clause ADD. Modifier des colonnes existantes d'une table au moyen de l'ordre ALTER TABLE avec la clause MODIFY.

Ordre ALTER TABLE


ALTER TABLE table ADD (column datatype [DEFAULT expr] [, column datatype]...); ALTER TABLE table MODIFY (column datatype [DEFAULT expr] [, column datatype]...);

Ordre ALTER TABLE


SQL> ALTER TABLE dept30 2 ADD (job VARCHAR2(9)); Table altered. La nouvelle colonne est place la fin. EMPNO ENAME ANNSAL HIREDATE JOB --------- ---------- --------- --------- ---7698 BLAKE 34200 01-MAY-81 7654 MARTIN 15000 28-SEP-81 7499 ALLEN 19200 20-FEB-81 7844 TURNER 18000 08-SEP-81 ... 6 rows selected.

Ordre ALTER TABLE


Modification de colonnes

augmenter la largeur ou la prcision d'une colonne numrique. Rduisez la largeur d'une colonne si celle-ci ne contient que des valeurs NULL ou si la table ne contient aucune ligne. Modifiez le type de donnes si la colonne contient des valeurs NULL ou si la table est vide. La modification d'une valeur par dfaut ne s'appliquera qu'aux insertions ultrieures.

Supprimer une table


L'ordre DROP TABLE supprime la dfinition d'une table Oracle. Lorsque vous supprimez une table, la base de donnes perd toutes les donnes de la table ainsi que tous les index associs. Syntaxe
SQL> DROP TABLE dept30; Table dropped.

Modification du Nom d'un Objet


L'ordre RENAME est un ordre du LDD qui permet de renommer une table, une vue, une squence ou un synonyme. Vous devez tre propritaire de l'objet que vous renommez. RENAME old_name TO new_name Syntaxe:

SQL> RENAME dept TO department;

Vider une Table


TRUNCATE TABLE est un autre ordre LDD, qui permet de supprimer toutes les lignes d'une table tout en librant l'espace utilis pour stocker cette table. L'ordre TRUNCATE TABLE ne peut tre annul. TRUNCATE TABLE table; Syntaxe
SQL> TRUNCATE TABLE department; Table truncated.