Sunteți pe pagina 1din 28

LE LANGAGE SQL

TD
Q1 : Afficher tous les noms de fournisseurs

SELECT frs_nom
FROM fournisseurs;

Frs_nom
SAFI electronic
Les stylos reunis
Mecanique de precision
Sarl Ali
electrolamp

5 tuples retrouvés

Base de données
LE LANGAGE SQL

Q2 : Rechercher la liste des localités où habite un client

SELECT DISTINCT clt_loc localite


FROM clients

Localite
Casa
Tunis
Alger
Kenitra
Jadida
Salé
Marrakech
8 tuples retrouvés
Rabat

Base de données
LE LANGAGE SQL

Q3 : retrouver tous les clients habitant à casa

SELECT
clt_num,clt_nom,clt_pnom
FROM clients
WHERE clt_loc=‘casa’;

Clt_num clt_nom clt_ponm


C01
C02
C13
C14

4 tuples retrouvés

Base de données
LE LANGAGE SQL

Q4 : Sélectionner tous les articles dont le poids est supérieurs à 500

SELECT art-num,art_nom,art_poids
FROM articles
WHERE art_poids>500 ;

Art_ num art_nom art_poids


A04 Lampe 550.0
A05 Lampe 550.0
A06 Lampe 550.0
A07 Lampe 550.0

4 tuples retrouvés

Base de données
LE LANGAGE SQL

Q5 : Sélectionner tous les articles pour lesquels le prix de vente est supérieur
ou égal au double du prix d’achat.

SELECT art_num,art_nom,art_pa,art_pv
FROM articles
WHERE art_pv>= 2*art_pa;

Art_num art_nom art_pa art_pv


A10 Crayon 1 2
A11 Crayon 1 2

2 tuples retrouvés

Base de données
LE LANGAGE SQL

Q6 : Sélectionner tous les articles rouges de poids supérieurs à 100.

SELECT art_nim,art_nom,art_poids,art_coul
FROM articles
WHERE art-coul=‘rouge’ AND art_poids>100;

Art num art_nom art_poids art_coul


A01 Agrafeuse 150.0 rouge
A04 Lampe 550.0 rouge

2 tuples retrouvés

Base de données
LE LANGAGE SQL

Q7 : Sélectionner tous les articles rouges et ceux de poids supérieurs à 500.

SELECT art_num, art_nom, art_poids, art_coul


FROM articles
WHERE art_coul=‘rouge’ OR art_poids >500;

Art_num Art_nom Art_poids Art_coul


A01 Agrafeuse 150.0 rouge
A04 Lampe 550.0 Rouge
A05 Lampe 550.0 Blanc
A06 Lampe 550.0 Bleu
A07 Lampe 550.0 Vert
A10 Crayon 20.0 Rouge
A12 Crayon luxe 20.0 Rouge

7 tuples retrouvés

Base de données
LE LANGAGE SQL

Q8 : l’inverse de Q7.

SELECT art_num, art_nom, art_poids, art_coul


FROM articles
WHERE NOT(art_coul=‘rouge’ OR art_poids >500);

Art_num Art_nom Art_poids Art_coul


A02 Calculatrice 150.0 Noir
A03 Cachet dateur 100.0 Blanc
A11 Crayon 20.0 Bleu
A13 Crayon luxe 20.0 Vert
A14 Crayon luxe 20.0 Bleu
A15 Crayon luxe 20.0 Noir

6 tuples trouvés

Base de données
LE LANGAGE SQL

Q9 : Sélectionner tous les articles dont, soit la couleur est rouge et le


poids est supérieur à 100, soit la couleur est verte.

SELECT art_num, art_nom, art_poids, art_coul


FROM articles
WHERE (art_coul=‘rouge’ AND art_poids >100) OR art-coul=‘vert’;

Art_num Art_nom Art_poids Art_cou


l
A01 Agrafeuse 150.0 rouge
A04 Lampe 550.0 Rouge
A07 Lampe 550.0 Vert
A13 Crayon luxe 20.0 Vert

4 tuples retrouvés

Base de données
LE LANGAGE SQL

Q10 : Afficher la liste des articles dont le prix est compris entre 100 et 150.

SELECT art_num, art_nom,art_pa


FROM articles
WHERE art_pa BETWEEN 100 AND 150;
Art_num Art_nom Art_pa
A04 Lampe 105
A05 Lampe 105
A06 Lampe 105
A07 Lampe 105
A08 Pese lettre 1-500 120
A09 Pese lettre 1-1000 150

6 tuples retrouvés

Base de données
LE LANGAGE SQL
Q11 : Afficher la liste des articles de couleur soit rouge soit vert

SELECT art_num, art_nom,art_coul


FROM articles
WHERE art_coul IN (‘rouge’,’vert’);

Art_num Art_nom Art_cou


l
A01 Agrafeuse rouge
A04 Lampe Rouge
A07 Lampe Vert
6 tuple trouvés
A10 Crayon Rouge
A12 Crayon luxe Rouge
A13 Crayon luxe Vert

Base de données
LE LANGAGE SQL

Q12 : Afficher les clients dont le nom commence par A.

SELECT clt_num,clt_nom,clt_pnom
FROM clients
WHERE clt_nom LIKE ‘A%’

Clt_num Clt_nom Clt_pnom

2 tuples retrouvés

Base de données
LE LANGAGE SQL

Q13 : Afficher les clients dont le nom commence par A et le 4 caractère est B

SELECT clt_num,clt_nom,clt_pnom
FROM clients
WHERE clt_nom LIKE ‘A___B%’

Clt_num Clt_nom Clt_pnom

0 tuple retrouvés

Base de données
LE LANGAGE SQL

Q14 : Rechercher tous les articles pour lesquels on a négligé la couleur.

SELECT art_num,art_nom,
FROM articles
WHERE art_coul IS NULL

Art_num Art_nom
A08 Pese lettre 1-500
A09 Pese lettre 1-1000

2 tuples retrouvés

Base de données
LE LANGAGE SQL

Q15 : Trier les articles selon l’ordre croissant de Art_num Art_nom Art_poids
A08 Pese lettre 1-500
leurs poids.
A09 Pese lettre 1-1000

A11 Crayon 20.0


SELECT art_num,art_nom,art_poids A12 Crayon luxe 20.0
FROM articles A13 Crayon luxe 20.0
ORDER BY art_poids A14 Crayon luxe 20.0
A15 Crayon luxe 20.0
A10 Crayon 20.0
A03 Cachet dateur 100

15 tuples retrouvés A01 Agrafeuse 150


A02 Calculatrice 150
A05 Lampe 550.0
A06 Lampe 550.0
A07 Lampe 550.0

Base de données
LE LANGAGE SQL

Q16 : Trier les articles de poids inférieur ou égal à 100 selon l’ordre croissant de
Leur poids et à poids égal par prix d’achat décroissant.
SELECT art_num,art_nom,art_poids,art_pa
FROM articles
WHERE art_poids<= 100
ORDER BY art_poids, art_pa DES; Art_num Art_nom Art_poi Art_pa
ds
A12 Crayon luxe 20.0 3
A13 Crayon luxe 20.0 3
A14 Crayon luxe 20.0 3
A15 Crayon luxe 20.0 3
7 tuples retrouvés A10 Crayon 20.0 1
A11 Crayon 20.0 1
A03 Cachet dateur 100.0 21

Base de données
LE LANGAGE SQL
Q17 : Afficher la marge bénéficiaire sur les produits dont le prix d’achat est
supérieur à 100, par ordre de celle-ci.

SELECT art_num,art_nom,art_pa, art_pv,art_pv – art_pa marge


FROM articles
WHERE art_pa >100
ORDER BY 5; Art_num Art_nom Art_pa Art_pv marge

A02 Calculatrice 200 235 35


A04 Lampe 105 149 44
A05 Lampe 105 149 44
A06 Lampe 105 149 44
A07 Lampe 105 149 44
A08 Pese lettre 1-500 120 200 80
A09 Pese lettre 1-1000 150 250 100

7 tuples retrouvés

Base de données
LE LANGAGE SQL
Q18 : Pour tous les clients habitant casa, afficher le nom complet.

SELECT clt_num, clt_nom|| ‘ ‘|| clt_pnom nom_complet


FROM clients
WHERE clt_loc=‘casa’
Clt_num Nom_complet
C01

C02

C13

C14

4 tuples retrouvés

Base de données
LE LANGAGE SQL

Q19 : Calculer le délai moyen entre la commande et la date de


livraison souhaité, ainsi que le plus grand délai.
SELECT AVG(lcddat_liv- cmd_date) delai, MAX(lcddat_liv- cmd_date) max
FROM commandes,lig_cmd
WHERE cmd_num=lcd_cmd

Delai max

1.1786 5

1 tuple retrouvé
Base de données
LE LANGAGE SQL

Q20 : Calculer le poids moyen des articles

SELECT AVG (art_poids) moyenne


FROM articles

moyenne
209.23

1 tuple retrouvé

Base de données
LE LANGAGE SQL

Q21 : calculer le prix de l’article le plus cher du stock.

SELECT MAX(art_pv) prix_max


FROM articles

Prix_max
250

1 tuple retrouvé

Base de données
LE LANGAGE SQL
Q22 : Calculer le poids moyen, la marge maximum (la plus grande différence
entre prix de vente et d’achat), la différence entre le prix de vente maximum
et le prix d’achat maximum, pour les articles dont l’attribut art_coul est défini.

SELECT AVG(art_poids) pmoyen,MAX(art_pv-art_pa) margemax, MAX(art_pv) –


MAX(art_pa) dpmax
FROM articles
WHERE art_coul IS NOT NULL;

pmoyen margemax Dpmax


209.23 44 35

1 tuple retrouvé

Base de données
LE LANGAGE SQL

Q23 : compter le nombre de couleurs différentes existant dans le stock.

SELECT COUNT (DISTINCT art_coul) AS ncouleur


FROM articles;

Ncouleur
5

1 tuple retrouvé

Base de données
LE LANGAGE SQL

Q24 : Calculer le prix de vente moyen de chaque couleur d’articles .


La clause GROUP BY réarrange la SELECT art_coul,AVG(art_pv)
table résultant du SELECT en un FROM articles
nombre minimum de groupes tels GROUP BY art_coul
que, à l’intérieur de chaque groupe, ORDER BY art_coul;
l’attribut spécifié possède la même
valeur pour chaque tuple. 7 tuples retrouvés
Art_coul AVG(art_pv)

NULL 225
Blanc 89.55
Bleu 52.0
Noir 120
Rouge 46.25
Vert 77

Base de données
LE LANGAGE SQL

Q25 : Calculer le prix de vente moyen des articles de chaque couleur en excluant
les articles pour lesquels le prix d’achat est inférieur à 5.

SELECT art_coul,AVG(art_pv)
FROM articles
WHERE art_pa=>5
GROUP BY art_coul
ORDER BY art_coul;
Art_coul AVG(art_pv)

NULL 250
Blanc 89.55
Bleu 149.0
Noir 235
Rouge 49
Vert 149

7 tuples retrouvés

Base de données
LE LANGAGE SQL

Q26 : Rechercher la couleur des articles dont le prix de vente moyen des articles
de la couleur est supérieur à 100.
SELECT art_coul,AVG(art_pv)
La clause HAVING est l’équivalent de FROM articles
WHERE appliqué aux groupes. Cette clause GROUP BY art_coul
ne peut généralement être spécifiée que si une HAVING AVG(art_pv) >100
clause GROUP BY l’a été. En pratique, le ORDER BY art_coul;
critère spécifié dans la clause HAVING porte
sur la valeur d’une fonction calculée sur un
groupe. Les groupes ne répondant pas au Art_coul AVG(a
rt_pv)
critère spécifié dans la clause HAVING ne
NULL 225
font pas partie du résultat.
Noir 120

2 tuples retrouvés

Base de données
LE LANGAGE SQL

Q27 : Rechercher les magasins, qui, pendant la période du 6 au 7 juin , ont


réalisé plus de 1 vente.

SELECT cmd_mag, COUNT(*) AS nvente


FROM commandes
WHERE cmd_date BETWEEN ‘940606’ AND ‘940607’
GROUP BY cmd_mag
HAVING COUNT(*) >1

Cmd_mag Nvente

M11 2

1 tuple retrouvé

Base de données
LE LANGAGE SQL

Devoir
• Donner le numéro des articles vendus, avec pour chacun le
prix moyen de vente, et le nombre de vente.
• Donner par magasins les statistiques de ventes en 94, à savoir
le nombre de vente , le nombre de clients différents et le nombre
de jours où il y a eu vente.
• Donner les numéros des clients qui ont acheté plus d’une fois
dans la semaine du 6 au 10 juin 94
• Donner, pour les années 92 à 94, le nombre de clients
différents sur une année, tous magasins confondus.
• Classer les localités en fonction du nombre décroissant de
clients qui y habitent

Base de données

S-ar putea să vă placă și