Domaines NUMBER et VARCHAR2
NUMBER(e)
NUMBER(e) se comporte comme un type standard INTEGER pour lequel on aurait limité la valeur maximale en nombre de chiffres.
Ainsi NUMBER(2) est un INTEGER compris entre -99 et 99.
Oracle accepte le type INTEGER qu'il converti en NUMBER(38).
NUMBER(e,d)
NUMBER(e,d) se comporte globalement comme un type standard DECIMAL(e,d).
Oracle accepte la déclaration DECIMAL qu'il converti en NUMBER.
Remarque : VARCHAR et VARCHAR2
VARCHAR
etVARCHAR2
se comportent exactement de la même façon pour le moment (comme le type standardVARCHAR
) ;mais Oracle prévoit éventuellement d'utiliser différemment
VARCHAR
dans le futur.
Oracle recommande de ne pas utiliser VARCHAR
, mais d'utiliser VARCHAR2
.
Remarque :
Il n'y a pas de type de données BOOLEAN.
Exemple : BD "Gestion des intervenants" : Schéma relationnel
tIntervenant (#pknom:varchar, prenom:varchar, poste:integer)
tCours (#pkannee:2000..2100, #pknum:integer, titre:varchar, type:C|TD|TP, fkintervenant=>tIntervenant, debut:date)
Exemple : BD "Gestion des intervenants" : Création des tables
CREATE TABLE tIntervenant (
pknom VARCHAR2(255) PRIMARY KEY,
prenom VARCHAR2(255) NOT NULL,
poste NUMBER(4)
);
CREATE TABLE tCours (
pkannee NUMBER(4) check (pkannee>2000 and pkannee<2100),
pknum INTEGER,
titre VARCHAR2(255),
type CHAR(2) CHECK (type='C' OR type='TD' OR type='TP') NOT NULL,
fkintervenant VARCHAR2(255) REFERENCES tIntervenant(pknom) NOT NULL,
debut DATE,
PRIMARY KEY(pkannee, pknum)
);
Complément : Pour entrer dans le détail
Oracle : SQL[1], page 2 et 3, pour avoir une description plus détaillée des types de données.
http://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm