bonjour,
je suis débutant en SQL et je galère pas mal.
Je suis sous Oracle et j'ai un exercice a faire qui me pose pas mal de souci, j'espére que vous pourrez m'aidez.
Voila le code en question :
----------------------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 DROP TABLE VENTE; //DROP TABLE PRODUIT; //DROP TABLE FOURNIS; //DROP TABLE ENTCOM; //DROP TABLE LIGCOM;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TABLE PRODUIT ( CODART CHAR(4 BYTE) NOT NULL ENABLE, LIBART VARCHAR2(25 BYTE) NOT NULL ENABLE, STKALE NUMBER(7,0) NOT NULL ENABLE, STKPHY NUMBER(7,0) NOT NULL ENABLE, QTEANN NUMBER(7,0) NOT NULL ENABLE, UNIMES CHAR(5 BYTE) NOT NULL ENABLE, CONSTRAINT PK_PRODUIT PRIMARY KEY (CODART) ) ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE TABLE FOURNIS ( NUMFOU NUMBER(10,0) NOT NULL ENABLE, NOMFOU VARCHAR2(30 BYTE) NOT NULL ENABLE, RUEFOU VARCHAR2(30 BYTE) NOT NULL ENABLE, POSFOU VARCHAR2(5 BYTE) NOT NULL ENABLE, VILFOU VARCHAR2(25 BYTE) NOT NULL ENABLE, CONFOU VARCHAR2(15 BYTE) NOT NULL ENABLE, SATISF NUMBER(3,0), CONSTRAINT FOURNIS_PK PRIMARY KEY (NUMFOU) ) ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 CREATE TABLE VENTE ( CODART CHAR(4 BYTE) NOT NULL ENABLE, NUMFOU NUMBER(10,0) NOT NULL ENABLE, DELLIV NUMBER(6,0) NOT NULL ENABLE, QTE1 NUMBER(6,0) NOT NULL ENABLE, PRIX1 NUMBER(5,2) NOT NULL ENABLE, QTE2 NUMBER(6,0) NOT NULL ENABLE, PRIX2 NUMBER(5,2) NOT NULL ENABLE, QTE3 NUMBER(6,0) NOT NULL ENABLE, PRIX3 NUMBER(5,0) NOT NULL ENABLE, CONSTRAINT VENTE_PK PRIMARY KEY (CODART, NUMFOU), CONSTRAINT FK_VENTE_FOURNIS FOREIGN KEY (NUMFOU) REFERENCES FOURNIS (NUMFOU) ENABLE, CONSTRAINT FK_VENTE_PRODUIT FOREIGN KEY (CODART) REFERENCES PRODUIT (CODART) ENABLE ) ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE TABLE ENTCOM ( NUMCOM NUMBER(10,0) NOT NULL ENABLE, OBSCOM VARCHAR(25 BYTE) ENABLE, DATCOM DATE DEFAULT sysdate ENABLE, NUMFOU NUMBER(10,0) ENABLE, CONSTRAINT NUMCOM_PK PRIMARY KEY (NUMCOM), CONSTRAINT FK_ENTCOM_FOURNIS FOREIGN KEY (NUMFOU) REFERENCES FOURNIS (NUMFOU) ENABLE, ) ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CREATE TABLE LIGCOM ( NUMCOM NUMBER(10,0) NOT NULL ENABLE, NUMLIG NUMBER(10,0) NOT NULL ENABLE, CODART CHAR(4) NULL ENABLE, PRIUNI NUMBER(10,0), QTELIV NUMBER(10,0), DERLIV DATE, CONSTRAINT NUMCOM_PK PRIMARY KEY (NUMCOM), REFERENCES FOURNIS (NUMFOU) ENABLE, CONSTRAINT NUMLIG_PK PRIMARY KEY (NUMLIG), CONSTRAINT FK_LIGCOM_FOURNIS FOREIGN KEY (CODART) REFERENCES PRODUIT (CODART) ENABLE, ) ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE SEQUENCE entcom_monCompteur INCREMENT BY 1 START WITH 1 ; INSERT INTO ENTCOM VALUES (entcom_monCompteur.nextval);
-----------------------------------
Les 3 premiéres table se créé sans probléme
Mais il y a des bugs pour les deux derniéres tables ENTCOM et LIGCOM
Voila les contraintes de ces deux tables:
Table ENTCOM
o Tous les champs sont obligatoires sauf les champs
OBSERVATIONS et NUMFOU
o Le numéro de commande est un champ compteur auto incrémenté
de 1
o La date de commande est par défaut la date du jour
o Le code fournisseur doit exister dans la table FOURNIS ou être nul
· Table LIGCOM
o Tous les champs sont obligatoires, sauf la quantité livrée
o Le numéro de commande doit exister dans la table ENTCOM
o Le code produit doit exister dans la table PRODUIT
Merci d'avance
A+
Partager