Vous êtes sur la page 1sur 29

******************************************creation des

tables*********************************************
create table client(noClient number(4) primary key, nomClient
varchar2(50) , noTelephone number(8));
create table article(noArticle number(5) primary Key , Description
varchar2(50), prixUnitaire number(8,3), Qte number(5));
create table commande(noCommande number(5) primary Key, dateCommande
date, noClient number(4) references client(noClient));
create table LigneCommande(noCommande number(5) references
commande(noCommande),noArticle number(5) references Article(noArticle),
constraint com primary key (noCommande, noArticle));
create table livraison (noLivraison number(6) primary key , dateLivraison
date );
create table detailLivraison(noLivraison number(6) references
livraison(noLivraison),noCommande number(5) references
commande(noCommande),noArticle number(5) references
Article(noArticle),quantiteLivree number(5), constraint detail primary
key (noLivraison, noCommande, noArticle));

****************************************question a,b,c,d,e
**************************************************
SQL> select table_name from user_tables;

TABLE_NAME
------------------------------
LIVRAISON
CLIENT
ARTICLE
COMMANDE
LIGNECOMMANDE
DETAILLIVRAISON
PRODUIT

7 ligne(s) sélectionnée(s).

SQL> desc client


Nom NULL ? Type
----------------------------------------- -------- ---------------------
-------
NOCLIENT NOT NULL NUMBER(4)
NOMCLIENT VARCHAR2(50)
NOTELEPHONE VARCHAR2(12)

SQL> select * from client;

NOCLIENT NOMCLIENT NOTELEPHONE


---------- -------------------------------------------------- -----------
-
2000 sana (999)999-
999

SQL> insert into client values (4000,'rami','+21620588301');


1 ligne créée.

SQL> insert into client values (3000,'ahmed','(999)999-999');

1 ligne créée.

SQL> select * from client where notelephone='(999)999-999';

NOCLIENT NOMCLIENT NOTELEPHONE


---------- -------------------------------------------------- -----------
-
2000 sana (999)999-
999
3000 ahmed (999)999-
999

SQL> select * from commande;

aucune ligne sélectionnée

SQL> desc commande;


Nom NULL ? Type
----------------------------------------- -------- ---------------------
-------
NOCOMMANDE NOT NULL NUMBER(5)
DATECOMMANDE DATE
NOCLIENT NUMBER(4)

SQL> insert into client values (10,'sami','12345667804');

1 ligne créée.

SQL> insert into commande values (1,'20/11/2000',10);

1 ligne créée.

SQL> insert into commande values (3,'21/11/2000',10);

1 ligne créée.

SQL> insert into commande values (6,'22/11/2000',10);

1 ligne créée.

SQL> insert into commande values (11,'22/11/2000',10);

1 ligne créée.

SQL> insert into commande values (100,'22/11/2003',10);

1 ligne créée.

SQL> select * from commande;


NOCOMMANDE DATECOMM NOCLIENT
---------- -------- ----------
1 20/11/00 10
3 21/11/00 10
6 22/11/00 10
11 22/11/00 10
100 22/11/03 10

SQL> inser into client values(111,'rami','345678904');


SP2-0734: commande inconnue au début de "inser into..." - le reste de la
ligne est ignoré.
SQL> insert into client values(111,'rami','345678904');

1 ligne créée.

SQL> alter table commande modify noclient number(4);

Table modifiée.

SQL> desc commande;


Nom NULL ? Type
----------------------------------------- -------- ---------------------
-------
NOCOMMANDE NOT NULL NUMBER(5)
DATECOMMANDE DATE
NOCLIENT NUMBER(4)

SQL> alter table commande add constraint fk_client foreign key (noclient)
references client (noclient);
alter table commande add constraint fk_client foreign key (noclient)
references client (noclient)
*
ERREUR à la ligne 1 :
ORA-02275: une telle contrainte référentielle existe déjà dans la table

SQL> select * from client;

NOCLIENT NOMCLIENT NOTELEPHONE


---------- -------------------------------------------------- -----------
-
2000 sana (999)999-
999
4000 rami
+21620588301
3000 ahmed (999)999-
999
10 sami 12345667804
111 rami 345678904

SQL> select * from commande;

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
1 20/11/00 10
3 21/11/00 10
6 22/11/00 10
11 22/11/00 10
100 22/11/03 10

SQL> SQL> insert into commande values (100,'22/11/2023',111);


SP2-0734: commande inconnue au début de "SQL> inser..." - le reste de la
ligne est ignoré.
SQL> insert into commande values (100,'22/11/2023',111)
2 *
3 ;
*
*
ERREUR à la ligne 2 :
ORA-00933: la commande SQL ne se termine pas correctement

SQL> insert into commande values (101,'22/11/2023',111);

1 ligne créée.

SQL> insert into commande values (102,'22/11/2023',2000);

1 ligne créée.

SQL> select * from commande;

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
1 20/11/00 10
3 21/11/00 10
6 22/11/00 10
11 22/11/00 10
100 22/11/03 10
101 22/11/23 111
102 22/11/23 2000

7 ligne(s) sélectionnée(s).

SQL> select nocommande, datecommande from commande where noclient=10 and


nocommande>5;

NOCOMMANDE DATECOMM
---------- --------
6 22/11/00
11 22/11/00
100 22/11/03

SQL> select * from article;

aucune ligne sélectionnée


SQL> desc article;
Nom NULL ? Type
----------------------------------------- -------- ---------------------
-------
NOARTICLE NOT NULL NUMBER(5)
DESCRIPTION VARCHAR2(50)
PRIXUNITAIRE NUMBER(8,3)
QTE NUMBER(5)

SQL> insert into article values


(1000,'azertyuioqsdfghjklwxcvbn',20.3,200);

1 ligne créée.

SQL> insert into article values


(2000,'azertyuioqsdfghjklwxcvbn',11.3,200);

1 ligne créée.

SQL> insert into article values


(3000,'azertyuioqsdfghjklwxcvbn',17.34,30);

1 ligne créée.

SQL> insert into article values (4000,'azertyuioqsdfghjklwxcvbn',7,30);

1 ligne créée.

SQL> select * from article ;

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
1000 azertyuioqsdfghjklwxcvbn
20,3
200

2000 azertyuioqsdfghjklwxcvbn
11,3
200

3000 azertyuioqsdfghjklwxcvbn
17,34
30

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
4000 azertyuioqsdfghjklwxcvbn
7
30

SQL> select noarticle,description from article where prixunitaire between


10 and 20;

NOARTICLE DESCRIPTION
---------- --------------------------------------------------
2000 azertyuioqsdfghjklwxcvbn
3000 azertyuioqsdfghjklwxcvbn

SQL> select * from commande;

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
1 20/11/00 10
3 21/11/00 10
6 22/11/00 10
11 22/11/00 10
100 22/11/03 10
101 22/11/23 111
102 22/11/23 2000

7 ligne(s) sélectionnée(s).

SQL> insert into commande values (103,'04/06/2000',3000);

1 ligne créée.

SQL> insert into commande values (104,'04/06/2000',10);

1 ligne créée.

SQL> insert into commande values (105,'04/06/2000',111);

1 ligne créée.

SQL> select client.noclient,notelephone,nocommande from client,commande


where commande.noclient=client.noclient and datecommande='04/06/2000';

NOCLIENT NOTELEPHONE NOCOMMANDE


---------- ------------ ----------
3000 (999)999-999 103
10 12345667804 104
111 345678904 105

SQL> select * from article ;


NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
1000 azertyuioqsdfghjklwxcvbn
20,3
200

2000 azertyuioqsdfghjklwxcvbn
11,3
200

3000 azertyuioqsdfghjklwxcvbn
17,34
30

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
4000 azertyuioqsdfghjklwxcvbn
7
30

SQL> select * from commande;

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
1 20/11/00 10
3 21/11/00 10
6 22/11/00 10
11 22/11/00 10
100 22/11/03 10
101 22/11/23 111
102 22/11/23 2000
103 04/06/00 3000
104 04/06/00 10
105 04/06/00 111

10 ligne(s) sélectionnée(s).

SQL> desc lignecommande


Nom NULL ? Type
----------------------------------------- -------- ---------------------
-------
NOCOMMANDE NOT NULL NUMBER(5)
NOARTICLE NOT NULL NUMBER(5)
SQL> insert into lignecommande values (1,1000);

1 ligne créée.

SQL> insert into lignecommande values (3,1000);

1 ligne créée.

SQL> insert into lignecommande values (11,3000);

1 ligne créée.

SQL> select distinct noarticle from lignecommande, commande where


lignecommande.nocommande=commande.nocommande and noclient=10 and
datecommande='01/06/2000';

aucune ligne sélectionnée

SQL> select * from lignecommande;

NOCOMMANDE NOARTICLE
---------- ----------
1 1000
3 1000
11 3000

SQL> select distinct noarticle from lignecommande, commande where


lignecommande.nocommande=commande.nocommande and noclient=10 and
datecommande>'01/06/2000';

NOARTICLE
----------
1000
3000

*********************************************************question f,g,h,i
et j *********************************************************

select * from livraison;

aucune ligne sélectionnée

SQL> desc livraison;


Nom NULL ? Type
----------------------------------------- -------- ---------------------
-------
NOLIVRAISON NOT NULL NUMBER(6)
DATELIVRAISON DATE
SQL> insert into livraison values(1,'11/10/2004');

1 ligne créée.

SQL> insert into livraison values(2,'21/11/2005');

1 ligne créée.

SQL> desc detaillivraison


Nom NULL ? Type
----------------------------------------- -------- ---------------------
-------
NOLIVRAISON NOT NULL NUMBER(6)
NOCOMMANDE NOT NULL NUMBER(5)
NOARTICLE NOT NULL NUMBER(5)
QUANTITELIVREE NUMBER(5)

SQL> select * from article;

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
1000 azertyuioqsdfghjklwxcvbn
20,3
200

2000 azertyuioqsdfghjklwxcvbn
11,3
200

3000 azertyuioqsdfghjklwxcvbn
17,34
30

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
4000 azertyuioqsdfghjklwxcvbn
7
30

SQL> select * from commande;

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
1 20/11/00 10
3 21/11/00 10
6 22/11/00 10
11 22/11/00 10
100 22/11/03 10
101 22/11/23 111
102 22/11/23 2000
103 04/06/00 3000
104 04/06/00 10
105 04/06/00 111

10 ligne(s) sélectionnée(s).

SQL> select * from livraison ;

NOLIVRAISON DATELIVR
----------- --------
1 11/10/04
2 21/11/05

SQL> insert into detaillivraison values(1,1,1000,200);

1 ligne créée.

SQL> insert into detaillivraison values(2,11,2000,333);

1 ligne créée.

SQL> select nolivraison from detaillivraison,commande where


commande.nocommande=detaillivraison.nocommande and noclient=10;

NOLIVRAISON
-----------
1
2

SQL> insert into commande values(2,'04/06/2000',111);

1 ligne créée.

SQL> select nocommande from commande where datecommande in (select


datecommande from commande where nocommande=2);

NOCOMMANDE
----------
103
104
105
2

SQL> select * from commande;

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
1 20/11/00 10
3 21/11/00 10
6 22/11/00 10
11 22/11/00 10
100 22/11/03 10
101 22/11/23 111
102 22/11/23 2000
103 04/06/00 3000
104 04/06/00 10
105 04/06/00 111
2 04/06/00 111

11 ligne(s) sélectionnée(s).

SQL> select * from livraison ;

NOLIVRAISON DATELIVR
----------- --------
1 11/10/04
2 21/11/05

SQL> insert into livraison values (3,'22/11/2003');

1 ligne créée.

SQL> insert into livraison values (4,'04/06/2000');

1 ligne créée.

SQL> select livraison.nolivraison from detaillivraison,livraison,commande


where livraison.nolivraison=detaillivraison.nolivraison and
commande.nocommande=detaillivraison.nocommande and
datelivraison=datecommande;

aucune ligne sélectionnée

SQL> select livraison.nolivraison from detaillivraison,livraison,commande


where livraison.nolivraison=detaillivraison.nolivraison and
commande.nocommande=detaillivraison.nocommande;

NOLIVRAISON
-----------
1
2

SQL> select * from livraison;

NOLIVRAISON DATELIVR
----------- --------
1 11/10/04
2 21/11/05
3 22/11/03
4 04/06/00

SQL> select * from detaillivraison;

NOLIVRAISON NOCOMMANDE NOARTICLE QUANTITELIVREE


----------- ---------- ---------- --------------
1 1 1000 200
2 11 2000 333

SQL> insert into detaillivraison values (3,101,2000,300)


2 ;

1 ligne créée.

SQL> insert into detaillivraison values (4,11,1000,222);

1 ligne créée.

SQL> select livraison.nolivraison from detaillivraison,livraison,commande


where livraison.nolivraison=detaillivraison.nolivraison and
commande.nocommande=detaillivraison.nocommande and
datelivraison=datecommande;

aucune ligne sélectionnée

SQL> select livraison.nolivraison from detaillivraison,livraison,commande


where livraison.nolivraison=detaillivraison.nolivraison and
commande.nocommande=detaillivraison.nocommande ;

NOLIVRAISON
-----------
1
2
3
4

SQL> select livraison.nolivraison from detaillivraison,livraison,commande


where livraison.nolivraison=detaillivraison.nolivraison and
commande.nocommande=detaillivraison.nocommande and
datelivraison=datecommande;

aucune ligne sélectionnée

SQL> select livraison.nolivraison,datelivraison,datecommande from


detaillivraison,livraison,commande where
livraison.nolivraison=detaillivraison.nolivraison and
commande.nocommande=detaillivraison.nocommande ;

NOLIVRAISON DATELIVR DATECOMM


----------- -------- --------
1 11/10/04 20/11/00
2 21/11/05 22/11/00
3 22/11/03 22/11/23
4 04/06/00 22/11/00

SQL> select
livraison.nolivraison,commande.nocommande,article.noarticle,datelivraison
,datecommande from detaillivraison,livraison,commande where
livraison.nolivraison=detaillivraison.nolivraison and
commande.nocommande=detaillivraison.nocommande ;
select
livraison.nolivraison,commande.nocommande,article.noarticle,datelivraison
,datecommande from detaillivraison,livraison,commande where
livraison.nolivraison=detaillivraison.nolivraison and
commande.nocommande=detaillivraison.nocommande
*
ERREUR à la ligne 1 :
ORA-00904: "ARTICLE"."NOARTICLE" : identificateur non valide

SQL> select
livraison.nolivraison,commande.nocommande,noarticle,datelivraison,datecom
mande from detaillivraison,livraison,commande where
livraison.nolivraison=detaillivraison.nolivraison and
commande.nocommande=detaillivraison.nocommande ;

NOLIVRAISON NOCOMMANDE NOARTICLE DATELIVR DATECOMM


----------- ---------- ---------- -------- --------
1 1 1000 11/10/04 20/11/00
2 11 2000 21/11/05 22/11/00
3 101 2000 22/11/03 22/11/23
4 11 1000 04/06/00 22/11/00

SQL> select * from article;

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
1000 azertyuioqsdfghjklwxcvbn
20,3
200

2000 azertyuioqsdfghjklwxcvbn
11,3
200

3000 azertyuioqsdfghjklwxcvbn
17,34
30

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
4000 azertyuioqsdfghjklwxcvbn
7
30

SQL> insert into livraison values(234,'22/11/2000');

1 ligne créée.

SQL> insert into livraison values(235,'22/11/23');

1 ligne créée.

SQL> insert into detaillivraison values (234,11,4000,333);

1 ligne créée.

SQL> insert into detaillivraison values (235,101,4000,444);

1 ligne créée.

SQL> select livraison.nolivraison from detaillivraison,livraison,commande


where livraison.nolivraison=detaillivraison.nolivraison and
commande.nocommande=detaillivraison.nocommande and
datelivraison=datecommande;

NOLIVRAISON
-----------
234
235

SQL>
SQL> select * from client;

NOCLIENT NOMCLIENT NOTELEPHONE


---------- -------------------------------------------------- -----------
-
2000 sana (999)999-
999
4000 rami
+21620588301
3000 ahmed (999)999-
999
10 sami 12345667804
111 rami 345678904

SQL> select * from commande;

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
1 20/11/00 10
3 21/11/00 10
6 22/11/00 10
11 22/11/00 10
100 22/11/03 10
101 22/11/23 111
102 22/11/23 2000
103 04/06/00 3000
104 04/06/00 10
105 04/06/00 111
2 04/06/00 111

11 ligne(s) sélectionnée(s).

SQL> insert into commande values (5,'15/03/2000',111);

1 ligne créée.

SQL> select client.noclient, nomclient from client, commande where


client.noclient=commande.noclient and datecommande>'31/03/2000' and
datecommande<'01/03/2000';

aucune ligne sélectionnée

SQL> select client.noclient, nomclient from client, commande where


client.noclient=commande.noclient and (datecommande>'31/03/2000' or
datecommande<'01/03/2000');

NOCLIENT NOMCLIENT
---------- --------------------------------------------------
10 sami
10 sami
10 sami
10 sami
10 sami
111 rami
2000 sana
3000 ahmed
10 sami
111 rami
111 rami

11 ligne(s) sélectionnée(s).

SQL> select distinct client.noclient, nomclient from client, commande


where client.noclient=commande.noclient and (datecommande>'31/03/2000' or
datecommande<'01/03/2000');

NOCLIENT NOMCLIENT
---------- --------------------------------------------------
10 sami
3000 ahmed
2000 sana
111 rami
SQL> select * from article;

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
1000 azertyuioqsdfghjklwxcvbn
20,3
200

2000 azertyuioqsdfghjklwxcvbn
11,3
200

3000 azertyuioqsdfghjklwxcvbn
17,34
30

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
4000 azertyuioqsdfghjklwxcvbn
7
30

SQL> insert into article values (10,'dfghjk',25,345);

1 ligne créée.

SQL> select * from lignecommande;

NOCOMMANDE NOARTICLE
---------- ----------
1 1000
3 1000
11 3000

SQL> insert into lignecommande values(102,10);

1 ligne créée.

SQL> insert into lignecommande values(103,10);

1 ligne créée.
SQL> select * from lignecommande;

NOCOMMANDE NOARTICLE
---------- ----------
1 1000
3 1000
11 3000
102 10
103 10

SQL> (select nocommande from commande) minus (select nocommande from


lignecommande where noarticle=10);

NOCOMMANDE
----------
1
2
3
5
6
11
100
101
104
105

10 ligne(s) sélectionnée(s).

SQL> select * from commande;

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
1 20/11/00 10
3 21/11/00 10
6 22/11/00 10
11 22/11/00 10
100 22/11/03 10
101 22/11/23 111
102 22/11/23 2000
103 04/06/00 3000
104 04/06/00 10
105 04/06/00 111
2 04/06/00 111

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
5 15/03/00 111

12 ligne(s) sélectionnée(s).

*****************************************************************k,l,m,n
et o*************************************************
select * from article
2 ;

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
1000 azertyuioqsdfghjklwxcvbn
20,3
200

2000 azertyuioqsdfghjklwxcvbn
11,3
200

3000 azertyuioqsdfghjklwxcvbn
17,34
30

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
4000 azertyuioqsdfghjklwxcvbn
7
30

10 dfghjk
25
345

SQL> select * from lignecommande;

NOCOMMANDE NOARTICLE
---------- ----------
1 1000
3 1000
11 3000
102 10
103 10

SQL> (select noarticle from article) intersect (select distinct noarticle


from lignecommande);

NOARTICLE
----------
10
1000
3000

SQL> (select noarticle from article) intersect (select distinct noarticle


from lignecommande,commande where
commande.nocommande=lignecommande.nocommande and noclient=10);

NOARTICLE
----------
1000
3000

SQL> select * from client;

NOCLIENT NOMCLIENT NOTELEPHONE


---------- -------------------------------------------------- -----------
-
2000 sana (999)999-
999
4000 rami
+21620588301
3000 ahmed (999)999-
999
10 sami 12345667804
111 rami 345678904

SQL> select * from commande;

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
1 20/11/00 10
3 21/11/00 10
6 22/11/00 10
11 22/11/00 10
100 22/11/03 10
101 22/11/23 111
102 22/11/23 2000
103 04/06/00 3000
104 04/06/00 10
105 04/06/00 111
2 04/06/00 111

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
5 15/03/00 111

12 ligne(s) sélectionnée(s).

SQL> select * from article;

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
1000 azertyuioqsdfghjklwxcvbn
20,3
200

2000 azertyuioqsdfghjklwxcvbn
11,3
200

3000 azertyuioqsdfghjklwxcvbn
17,34
30

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
4000 azertyuioqsdfghjklwxcvbn
7
30

10 dfghjk
25
345

SQL> insert into article values(333,'cccvbn,iuhg',99,200);

1 ligne créée.

SQL> select noarticle from article where description like 'c%';

NOARTICLE
----------
333

SQL> select * from client where notelephone is not null;

NOCLIENT NOMCLIENT NOTELEPHONE


---------- -------------------------------------------------- -----------
-
2000 sana (999)999-
999
4000 rami
+21620588301
3000 ahmed (999)999-
999
10 sami 12345667804
111 rami 345678904

SQL> select * from article where prixunitaire>=(select Avg(prixunitaire)


from article);

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
333 cccvbn,iuhg
99
200

*****************************************************p , q, r, s et t
********************************************
select * from commande;

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
1 20/11/00 10
3 21/11/00 10
6 22/11/00 10
11 22/11/00 10
100 22/11/03 10
101 22/11/23 111
102 22/11/23 2000
103 04/06/00 3000
104 04/06/00 10
105 04/06/00 111
2 04/06/00 111

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
5 15/03/00 111

12 ligne(s) sélectionnée(s).

SQL> select * from article;

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
333 cccvbn,iuhg
99
200
1000 azertyuioqsdfghjklwxcvbn
20,3
200

2000 azertyuioqsdfghjklwxcvbn
11,3
200

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
3000 azertyuioqsdfghjklwxcvbn
17,34
30

4000 azertyuioqsdfghjklwxcvbn
7
30

10 dfghjk
25
345

6 ligne(s) sélectionnée(s).

SQL> select * from lignecommande


2 ;

NOCOMMANDE NOARTICLE
---------- ----------
1 1000
3 1000
11 3000
102 10
103 10

SQL> select * from livraison;

NOLIVRAISON DATELIVR
----------- --------
1 11/10/04
2 21/11/05
3 22/11/03
4 04/06/00
234 22/11/00
235 22/11/23

6 ligne(s) sélectionnée(s).
SQL> select * from detaillivraison;

NOLIVRAISON NOCOMMANDE NOARTICLE QUANTITELIVREE


----------- ---------- ---------- --------------
1 1 1000 200
2 11 2000 333
3 101 2000 300
4 11 1000 222
234 11 4000 333
235 101 4000 444

6 ligne(s) sélectionnée(s).

SQL> select sum(prixunitaire*qte),sum(prixunitaire*qte)*(1+15/100) from


article,lignecommande where lignecommande.noarticle=article.noarticle and
nocommande=1;

SUM(PRIXUNITAIRE*QTE) SUM(PRIXUNITAIRE*QTE)*(1+15/100)
--------------------- --------------------------------
4060 4669

SQL>
SQL>
SQL> SELECT sum(prixUnitaire*quantiteLivree),
sum(prixUnitaire*quantiteLivree) * 1.15 FROM DetailLivraison ,Article
where DetailLivraison.noArticle = Article.noArticle and noLivraison = 1;

SUM(PRIXUNITAIRE*QUANTITELIVREE) SUM(PRIXUNITAIRE*QUANTITELIVREE)*1.15
-------------------------------- -------------------------------------
4060 4669

SQL> SELECT * FROM ARTICLE WHERE prixUnitaire= (Select Min(prixUnitaire)


From Article);

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
4000 azertyuioqsdfghjklwxcvbn
7
30

SQL> SELECT noLivraison From DetailLivraison Where noLivraison IN (SELECT


noLivraison FROM Livraison WHERE DateLivraison ='04/06/2000') GROUP BY
NoLivraison HAVING Count(*)>=2 ORDER BY noLivraison;

aucune ligne sélectionnée

SQL> select * from detailLivraison;


NOLIVRAISON NOCOMMANDE NOARTICLE QUANTITELIVREE
----------- ---------- ---------- --------------
1 1 1000 200
2 11 2000 333
3 101 2000 300
4 11 1000 222
234 11 4000 333
235 101 4000 444

6 ligne(s) sélectionnée(s).

SQL> select * from livraison ;

NOLIVRAISON DATELIVR
----------- --------
1 11/10/04
2 21/11/05
3 22/11/03
4 04/06/00
234 22/11/00
235 22/11/23

6 ligne(s) sélectionnée(s).

SQL> insert into livraison values(5,'04/06/200');

1 ligne créée.

SQL> inset into detaillivraison values(5,101,1000,330);


SP2-0734: commande inconnue au début de "inset into..." - le reste de la
ligne est ignoré.
SQL> insert into detaillivraison values(5,101,1000,330);

1 ligne créée.

SQL> SELECT noLivraison From DetailLivraison Where noLivraison IN


(SELECT noLivraison FROM Livraison WHERE DateLivraison ='04/06/2000')
GROUP BY NoLivraison HAVING Count(*)>=2 ORDER BY noLivraison;

aucune ligne sélectionnée

SQL> SELECT noLivraison From DetailLivraison Where noLivraison IN (SELECT


noLivraison FROM Livraison WHERE DateLivraison ='04/06/2000');

NOLIVRAISON
-----------
4

SQL> insert into livraison values(5,'04/06/2000');


insert into livraison values(5,'04/06/2000')
*
ERREUR à la ligne 1 :
ORA-00001: violation de contrainte unique (SELIM.SYS_C005211)
SQL> insert into livraison values(6,'04/06/2000');

1 ligne créée.

SQL> SELECT noLivraison From DetailLivraison Where noLivraison IN (SELECT


noLivraison FROM Livraison WHERE DateLivraison ='04/06/2000');

NOLIVRAISON
-----------
4

SQL> insert into detaillivraison values(6,101,1000,330);

1 ligne créée.

SQL> SELECT noLivraison From DetailLivraison Where noLivraison IN (SELECT


noLivraison FROM Livraison WHERE DateLivraison ='04/06/2000');

NOLIVRAISON
-----------
4
6

SQL> SELECT noLivraison From DetailLivraison Where noLivraison IN


(SELECT noLivraison FROM Livraison WHERE DateLivraison ='04/06/2000')
GROUP BY NoLivraison HAVING Count(*)>=2
2 ;

aucune ligne sélectionnée

SQL> insert into livraison values(7,'04/06/2000');

1 ligne créée.

SQL> insert into detaillivraison values(7,101,1000,330);

1 ligne créée.

SQL> SELECT noLivraison From DetailLivraison Where noLivraison IN


(SELECT noLivraison FROM Livraison WHERE DateLivraison ='04/06/2000')
GROUP BY NoLivraison HAVING Count(*)>=2;

aucune ligne sélectionnée

SQL> SELECT noLivraison From DetailLivraison Where noLivraison IN


(SELECT noLivraison FROM Livraison WHERE DateLivraison ='04/06/2000')
GROUP BY nolivraison;

NOLIVRAISON
-----------
4
6
7

SQL> insert into detaillivraison values(7,101,2000,330);

1 ligne créée.

SQL> SELECT noLivraison From DetailLivraison Where noLivraison IN (SELECT


noLivraison FROM Livraison WHERE DateLivraison ='04/06/2000') GROUP BY
NoLivraison HAVING Count(*)>=2;

NOLIVRAISON
-----------
7

SQL> SELECT noLivraison From DetailLivraison Where noLivraison IN (SELECT


noLivraison FROM Livraison WHERE DateLivraison ='04/06/2000') GROUP BY
NoLivraison HAVING Count(*)>=2 ORDER BY noLivraison;

NOLIVRAISON
-----------
7
**********************************************************u,v et w
*************************************************************************

SQL> alter table lignecommande add quantitecommandee number(5);

Table modifiée.

SQL> select * from lignecommande;

NOCOMMANDE NOARTICLE QUANTITECOMMANDEE


---------- ---------- -----------------
1 1000
3 1000
11 3000
102 10
103 10

SQL> SELECT lignecommande.noArticle, SUM(lignecommande.quantiteCommandee)


FROM LigneCommande, Commande where Lignecommande.noCommande =
Commande.noCommande and Commande.dateCommande >= '05-07-2000'
2 GROUP BY lignecommande.noArticle having
sum(lignecommande.quantitecommandee)>10;

aucune ligne sélectionnée

SQL> DELETE FROM DetailLivraison


2 WHERE noArticle NOT IN (SELECT noArticle FROM LigneCommande);

5 ligne(s) supprimée(s).
SQL> DELETE FROM LigneCommande
2 WHERE noArticle NOT IN (SELECT noArticle FROM DetailLivraison);

3 ligne(s) supprimée(s).

SQL> DELETE FROM Article


2 WHERE noArticle NOT IN (SELECT noArticle FROM LigneCommande);

5 ligne(s) supprimée(s).

SQL> select * from article ;

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
1000 azertyuioqsdfghjklwxcvbn
20,3
200

SQL> select * from commande;

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
1 20/11/00 10
3 21/11/00 10
6 22/11/00 10
11 22/11/00 10
100 22/11/03 10
101 22/11/23 111
102 22/11/23 2000
103 04/06/00 3000
104 04/06/00 10
105 04/06/00 111
2 04/06/00 111

NOCOMMANDE DATECOMM NOCLIENT


---------- -------- ----------
5 15/03/00 111

12 ligne(s) sélectionnée(s).

SQL> UPDATE Article SET qte = qte+2


2 WHERE noArticle = 10;

0 ligne(s) mise(s) à jour.

SQL> insert into article values(10,'gfd',30,20);


1 ligne créée.

SQL> UPDATE Article SET qte = qte+2


2 WHERE noArticle = 10;

1 ligne mise à jour.

SQL> select * from article;

NOARTICLE DESCRIPTION
PRIXUNITAIRE
---------- -------------------------------------------------- -----------
-
QTE
----------
1000 azertyuioqsdfghjklwxcvbn
20,3
200

10 gfd
30
22

SQL> UPDATE Article SET qte = qte+2


2 WHERE noArticle = 10;

1 ligne mise à jour.

SQL> UPDATE lignecommande SET quantiteCommandee= quantiteCommandee+2


2 WHERE nocommande=1;

1 ligne mise à jour.

SQL> select * from lignecommande;

NOCOMMANDE NOARTICLE QUANTITECOMMANDEE


---------- ---------- -----------------
1 1000
3 1000

SQL>
SQL> UPDATE lignecommande SET quantiteCommandee= 20
2 WHERE nocommande=1;

1 ligne mise à jour.

SQL> select * from lignecommande;

NOCOMMANDE NOARTICLE QUANTITECOMMANDEE


---------- ---------- -----------------
1 1000 20
3 1000
SQL> UPDATE lignecommande SET quantiteCommandee= quantiteCommandee+2
2 WHERE nocommande=1;

1 ligne mise à jour.

SQL> select * from lignecommande;

NOCOMMANDE NOARTICLE QUANTITECOMMANDEE


---------- ---------- -----------------
1 1000 22
3 1000

SQL> exit

Vous aimerez peut-être aussi