ORACLE
SQL :
LDD(Langage de définition de donnée) LMD(langage de manipulation de donnée)
CREATE TABLE SELECT
ALTER TABLE UPDATE
DROP TABLE INSERT
RENAME DELETE
TRUNCATE
CREATE TABLE :
Une table est créé en SQL par l’instruction CREATE TABLE, modifier au sein de sa structure
par l’instruction ALTER TABLE et supprimer par la commande DROP TABLE.
Pour pouvoir créer une table dans un schéma, il faut avoir le privilège CREATE TABLE .
Pour pouvoir crée une table dans tous les schémas, il faut le privilège CREATE ANY TABLE
Syntaxe :
CREATE TABLE [schéma.]nomTable
( colonne1 type1 [DEFAULT valeur1] [NOT NULL]
[, colonne2 type2 [DEFAULT valeur2] [NOT NULL] ]
[CONSTRAINT nomContrainte1 typeContrainte1]…) ;
- Schema : Il est optionnel, s’il est omis, il sera assimilé a l’utilisateur connecté. S’il est précisé,
il désigne soit l’utilisateur courant soit un autre utilisateur de la base.
- NomTable peut comporter des lettres majiscules ou miniscule, des chiffres et des symbole ( _
$ #).
ORACLE est insensible à la casse.
Exemple nom de table : V$employe
Et convertira au niveau du dictionnaire de données les noms de tables et de colonnes en majuscule.
ColonneI type I nom d’une colonne (même caractéristique que les noms des tables) et son type
(number, char, date …)
La directive DEFAULT fixe une valeur par défaut, la directive NOT NULL indique que la colonne ne
peut pas avoir de valeur nulle.
- nomContrainte1 typeContrainte1 nom de la contrainte et de son type
- exemples :
CREATE TABLE Etudiant (
Age number) ;
CREATE TABLE [Link] (
Age number) ;
Les contraintes :
Les contraintes ont pour but de programmer les règles de gestion au niveau des
colonnes d’une table. Elles peuvent être déclarées de deux manières :
1- En même temps que la colonne (valable pour les contraintes monocolonnes), ces
contraintes sont dites « en ligne » (inline constraints).
2- Une fois la colonne déclarée (out-of-line constainte )
NB : Oracle recommande de déclarer les contraintes NOT NULL en ligne.
Quatre types de contraintes sont possibles
La contrainte UNIQUE : Elle impose une valeur distincte au niveau de la table
La contrainte PRIMARY KEY : Elle déclare la clé primaire de la table
La contrainte FOREIGN KEY : Elle déclare une clé étrangére entre une table enfant et
pére
La contrainte CHECK : Elle impose un domaine de valeur (exemple :f /m , 0-20)
Exemple : CREATE table [Link]
(Id Number Primary Key, Nom char(30) Not null , Age Number,Departement_ID,
Constraint Age_CK CHECK(Age between 0 and 20),
Constraint Departement_FK FOREIGN KEY(Departement_ID) Reference Departement(ID)
DEPARTEMENT
ID CODE LIBELLE
1 COMP Comptabilité
2 IT Informatique
EMPLOYE
ID NOM Age Departement_ID
1 WADE 19 2
2 MBAYE 17 1
3 DIOP 18 2
Les types de colonnes :
Pour décrire les types de colonnes Oracle fournit les types prédéfinis suivants :
Caractère : CHAR, VARCHAR2, CLOB, LONG
Les types caractères permettent de stocker des chaines de caractère fixes
(CHAR) ou variables (VARCHAR)
Valeurs numériques : NUMBER
Date heure : DATE, TIMESTAMP WITH TIME ZONE, TIME WITH LOCAL TIME
ZONE.
Données binaires : BLOG , BFILE
Type Description Commentaire
CHAR (n) Chaine fixe de n Taille fixe maximum
caractères 2000 caractères
VARCHAR2(n) Chaine variable de n Taille maximale 4000
caractères (ou octet) caractères
CLOB Flot de caractères Taille maximale 4Giga
octet
LONG Flot variable de Taille maximale 2 Giga
caractères octet
NUMBER [(t, d)] Valeur numérique de t
chiffres et de d
décimaux
DATE Date et heure du
01/01/4712 av j.c
31/12/4712 ap j.c
TIMESTAMP Champ incluant les
fractions de seconde
LOCAL TIME ZONE
BLOB Données binaires Taille maximale 4 Giga
(images, vidéos, sons octet
etc…)
BFILE Egalement des données Taille maximale 4 Giga
binaire stockées en octet
dehors de la base
syntaxe:
CREATE INDEX
{ UNIQUE | BITMAP } [schéma.]nomIndex
ON [schéma.]nomTable ( {colonne1 | expressionColonne1 } [ASC |
DESC ] …) ;
unique: permet de créer un index qui ne supporte pas de doublons.
ASC et DESC précisent l’ordre (croissant ou
décroissant).
exercice :
CREATE INDEX
UNIQUE IAM.nom_employer_idx ON [Link] ( nom ASC);
NB: Attention ! trop d’index tue l’index.
PLSQL