rendered paste body/*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;