drop table Devise;
drop table Banque;
drop table Compte;
drop table Mvt;

CREATE TABLE Devise(
id_devise number(2) PRIMARY KEY CHECK(id_devise>0),
libelle_devise varchar(20) NOT NULL,
taux_euro number(6,5) NOT NULL);

CREATE TABLE Banque(
code_banque number(5) PRIMARY KEY CHECK(code_banque>0),
libelle_banque varchar(30) NOT NULL,
adresse1 varchar(20) NOT NULL,
adresse2 varchar(20) NOT NULL,
code_postal number(5) NOT NULL,
ville varchar(20) NOT NULL);

CREATE TABLE Compte(
code_banque number(5) CHECK(code_banque>0),
code_guichet number(5) CHECK(code_guichet>0),
num_compte number(11) CHECK(num_compte>0),
cle_rib number(2),
libelle_compte varchar(20),
CONSTRAINT PK_COMPTE PRIMARY KEY (code_banque, code_guichet, num_compte),
CONSTRAINT FK_COMPTE FOREIGN KEY (code_banque) REFERENCES Banque (code_banque));

CREATE TABLE Mvt(
code_banque number(5) CHECK(code_banque>0),
code_guichet number(5) CHECK(code_guichet>0),
num_compte number(11) CHECK(num_compte>0),
id_mvt number(5) CHECK(id_mvt>0),
sens char(1) CHECK(sens = 'C' OR sens='D'),
valeur number(9,2) CHECK(valeur BETWEEN 0 AND 9999999.99),
id_devise number(2) REFERENCES Devise (id_devise));
CONSTRAINT PK_MVT PRIMARY KEY (code_banque, code_guichet, num_compte, id_mvt),
CONSTRAINT FK_MVT FOREIGN KEY (code_banque, code_guichet, num_compte) RFERENCES Compte (code_banque, code_guichet, num_compte));
   