/*Creation de tables*/ create table AUTEUR ( NOAUTEUR NUMBER(4) not null, NOMAUTEUR VARCHAR2(30), RUEAUTEUR VARCHAR2(30), VILLEAUTEUR VARCHAR2(30), CPAUTEUR NUMBER(6), DROITSAUTEUR NUMBER(6), CONSTRAINT pk_auteur primary key (NOAUTEUR), CONSTRAINT part_auteur check (PARTAUTEUR BETWEEN 10 AND 100), CONSTRAINT droits_auteurs check (DROITSAUTEUR >=0), CONSTRAINT code_postal check (CP BETWEEN 1000 AND 97000) ); create table EDITEUR ( NOEDITEUR NUMBER(2) not null, RSEDITEUR VARCHAR2(30) CONSTRAINT pk_editeur primary key (NOEDITEUR), ); create table LIVRE ( NOLIVRE NUMBER(4) not null, NOAUTEUR NUMBER(4) not null, NOEDITEUR NUMBER(2), TITRE VARCHAR2(30), ISBN CHAR(13) not null, QTESTOCK NUMBER(3), QTEMIN NUMBER(3), QTEREAPPRO NUMBER(3), DATE_PARUTION NUMBER(3), DATE_JOUR NUMBER(3), CONSTRAINT pk_livre primary key (NOLIVRE), CONSTRAINT date_par check (DATE_PARUTION< to_date ('25/10/2007','DD/MM/YYYY')), CONSTRAINT stock check ((QTEMIN >0) AND (QTEREAPPRO >0) ), CONSTRAINT qtestock check (QTESTOCK > QTEMIN ) ); create table ECRIT ( NOAUTEUR NUMBER(4) not null, NOLIVRE NUMBER(4) not null, PARTAUTEUR NUMBER(3,2), CONSTRAINT pk_ecrit primary key (NOLIVRE,NOAUTEUR), CONSTRAINT part_auteur check (PARTAUTEUR BETWEEN 0.1 AND 1) ); /*Effacement de tables */ drop table AUTEUR cascade constraint; drop table LIVRE cascade constraint; drop table EDITEUR cascade constraint; drop table ECRIT cascade constraint; /*Alter-table (utilité : ex : cle etrangere car on peut pas les faire dans la creation de table)*/ alter table livre add constraint fk_NOEDITEUR_LIVRE foreign key (NOEDITEUR) references EDITEUR (NOEDITEUR); alter table ecrit add constraint fk_NOAUTEUR_ECRIT foreign key (NOAUTEUR) references AUTEUR (NOAUTEUR); alter table ecrit add constraint fk_NOLIVRE_ECRIT foreign key (NOLIVRE) references LIVRE (NOLIVRE); /*Remplissage de table*/ INSERT INTO AUTEUR values (001,Henry,Bidule_truc,Lyon,69256,750.21); INSERT INTO AUTEUR values (002,Paul,Machin,Paris,92800,650.21); INSERT INTO AUTEUR values (003,Marc,Autre,Marseille,13556,60.21); INSERT INTO EDITEUR values (001,Bayard); INSERT INTO EDITEUR values (002,Super_editeur); INSERT INTO LIVRE values (001,001, 001, 'Les Milles et Une Nuit',250,25,5,8, '13/10/2005'); INSERT INTO LIVRE values (002,001, 001, 'Livre de Cuisine',256,20,1,3, '25/10/2005'); INSERT INTO LIVRE values (003,002, 001, 'Sciences Occultes',126,50,10,20, '25/12/2004'); INSERT INTO LIVRE values (004,002, 002, 'Programmation en C',246,20,1,3, '25/08/2002'); INSERT INTO LIVRE values (005,001, 002, 'Systeme d'Exploitation',326,20,1,3, '25/10/2005'); INSERT INTO LIVRE values (006,002, 001, 'Fantasy',125,20,1,3, '25/10/2005'); /*Creation d'index*/ create index EDITEUR on EDITEUR (NOEDITEUR ASC); create index AUTEUR on AUTEUR (NOAUTEUR ASC); create index LIVRE on LIVRE (NOLIVRE ASC); create index ECRIT on ECRIT (NOAUTEUR ASC); /*Suppression d'index*/ drop index EDITEUR; drop index AUTEUR; drop index LIVRE; drop index ECRIT;