DROP TABLE ligne_commande;
DROP TABLE commande;
DROP TABLE client; 
DROP TABLE produit;

CREATE TABLE client(
	id NUMBER CONSTRAINT pk_client PRIMARY KEY,
	nom VARCHAR2(30),
	prenom VARCHAR2(30), 
	adresse VARCHAR2(60), 
	code_postal NUMBER(5) CHECK(code_postal BETWEEN 00001 AND 99999)
);  

CREATE TABLE commande(
	no_commande NUMBER CONSTRAINT pk_commande PRIMARY KEY,
	cdate DATE DEFAULT SYSDATE,
	id_client CONSTRAINT fk_commande REFERENCES client(id)
); 

CREATE TABLE produit(
	id NUMBER CONSTRAINT pk_produit PRIMARY KEY,
	libelle VARCHAR2(30), 
	stock NUMBER(10), 
	prix NUMBER(6,2) CHECK (prix > 0)
);   

CREATE TABLE ligne_commande(
	id NUMBER CONSTRAINT pk_ligne PRIMARY KEY,
	no_commande CONSTRAINT fk1_ligne REFERENCES commande(no_commande),
	no_ligne_commande NUMBER CONSTRAINT no_ligne NOT NULL, 
	id_produit CONSTRAINT fk2_ligne REFERENCES produit(id),
	quantite NUMBER,
	CONSTRAINT unique_ligne UNIQUE(no_commande, no_ligne_commande)
); 

INSERT INTO Client VALUES (1,'Dupond', 'Pierre', '35 rue St Honoré Fontainebleau', 77300) ;
INSERT INTO Client VALUES (2, 'Dupond', 'François', '35 rue St Honoré Fontainebleau', 77300) ;
INSERT INTO produit VALUES (1, 'Evian 2lx6', 4000, 2.99);
INSERT INTO produit VALUES (2, 'Lu Cracotte Framboise', 800, 3.99);
INSERT INTO produit VALUES (3, 'Nectar de Mangue', 4000, 2);
INSERT INTO produit VALUES (4, 'Contrex', 0, 2);
INSERT INTO Client VALUES (5,'Dupont','Jean','1 avenue du parc Cergy',95011);
INSERT INTO Client VALUES (2,'Martin','Philippe','35 Champs Elysées Paris',75008); -- Marche pas car la clé primaire répète une précédente, la clef n'est ainsi plus unique
INSERT INTO Client VALUES (4,'Martin','Philippe','35 Champs Elysées Paris',75008);
INSERT INTO commande VALUES (1,TO_DATE('30/08/2008','DD/MM/YYYY'),2);
INSERT INTO commande VALUES (2,DEFAULT,5);
INSERT INTO ligne_commande VALUES (1,1,1,1,5);
INSERT INTO ligne_commande VALUES (2,1,1,2,53);
INSERT INTO ligne_commande VALUES (3,5,2,1,7); -- Cette ligne renvoie à la commande n° 5. Or cette commande n'existe pas, numéro de commande pas existant
UPDATE Client SET Code Postal=77305 WHERE Adresse='35 rue St Honoré Fontainebleau';
DELETE FROM Produit WHERE libelle like '%Cracotte%';
DELETE FROM Client WHERE nom='Dupond' and prenom='François'; --Faut d'abord supprimer le mec et après la commande car comamdne et client sont reliés

