sql1-tp1
TRANSCRIPT
Base de données
LE LANGAGE SQLLE LANGAGE SQL
TD
Q1 : Afficher tous les noms de fournisseurs
SELECT frs_nomFROM fournisseurs;
Frs_nomSAFI electronicLes stylos reunisMecanique de precisionSarl Alielectrolamp
5 tuples retrouvés
Base de données
LE LANGAGE SQLLE LANGAGE SQL
Q2 : Rechercher la liste des localités où habite un client
SELECT DISTINCT clt_loc localiteFROM clients
LocaliteCasaTunisAlgerKenitraJadidaSaléMarrakechRabat
8 tuples retrouvés
Base de données
LE LANGAGE SQLLE LANGAGE SQL
Q3 : retrouver tous les clients habitant à casa
SELECT clt_num,clt_nom,clt_pnomFROM clientsWHERE clt_loc=‘casa’;
Clt_num clt_nom clt_ponmC01 C02 C13 C14
4 tuples retrouvés
Base de données
LE LANGAGE SQLLE LANGAGE SQL
Q4 : Sélectionner tous les articles dont le poids est supérieurs à 500
SELECT art-num,art_nom,art_poidsFROM articlesWHERE art_poids>500 ;
Art_ num art_nom art_poidsA04 Lampe 550.0A05 Lampe 550.0A06 Lampe 550.0A07 Lampe 550.0
4 tuples retrouvés
Base de données
LE LANGAGE SQLLE LANGAGE SQL
Q5 : Sélectionner tous les articles pour lesquels le prix de vente est supérieurou égal au double du prix d’achat.
SELECT art_num,art_nom,art_pa,art_pvFROM articlesWHERE art_pv>= 2*art_pa;
Art_num art_nom art_pa art_pvA10 Crayon 1 2A11 Crayon 1 2
2 tuples retrouvés
Base de données
LE LANGAGE SQLLE LANGAGE SQL
Q6 : Sélectionner tous les articles rouges de poids supérieurs à 100.
SELECT art_nim,art_nom,art_poids,art_coulFROM articlesWHERE art-coul=‘rouge’ AND art_poids>100;
Art num art_nom art_poids art_coulA01 Agrafeuse 150.0 rougeA04 Lampe 550.0 rouge
2 tuples retrouvés
Base de données
LE LANGAGE SQLLE LANGAGE SQL
Q7 : Sélectionner tous les articles rouges et ceux de poids supérieurs à 500.
SELECT art_num, art_nom, art_poids, art_coulFROM 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 SQLLE LANGAGE SQL
Q8 : l’inverse de Q7.
SELECT art_num, art_nom, art_poids, art_coulFROM articlesWHERE 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 SQLLE 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_coulFROM articlesWHERE (art_coul=‘rouge’ AND art_poids >100) OR art-coul=‘vert’;
Art_num Art_nom Art_poids Art_coul
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 SQLLE LANGAGE SQL
Q10 : Afficher la liste des articles dont le prix est compris entre 100 et 150.
SELECT art_num, art_nom,art_paFROM 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 SQLLE LANGAGE SQL
Q11 : Afficher la liste des articles de couleur soit rouge soit vert
SELECT art_num, art_nom,art_coulFROM articlesWHERE art_coul IN (‘rouge’,’vert’);
Art_num Art_nom Art_coul
A01 Agrafeuse rouge
A04 Lampe Rouge
A07 Lampe Vert
A10 Crayon Rouge
A12 Crayon luxe Rouge
A13 Crayon luxe Vert
6 tuple trouvés
Base de données
LE LANGAGE SQLLE LANGAGE SQL
Q12 : Afficher les clients dont le nom commence par A.
SELECT clt_num,clt_nom,clt_pnomFROM clientsWHERE clt_nom LIKE ‘A%’
Clt_num Clt_nom Clt_pnom
2 tuples retrouvés
Base de données
LE LANGAGE SQLLE 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_pnomFROM clientsWHERE clt_nom LIKE ‘A___B%’
Clt_num Clt_nom Clt_pnom
0 tuple retrouvés
Base de données
LE LANGAGE SQLLE LANGAGE SQL
Q14 : Rechercher tous les articles pour lesquels on a négligé la couleur.
SELECT art_num,art_nom,FROM articlesWHERE 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 SQLLE LANGAGE SQL
Q15 : Trier les articles selon l’ordre croissant de
leurs poids.
SELECT art_num,art_nom,art_poidsFROM articlesORDER BY art_poids
Art_num Art_nom Art_poids
A08 Pese lettre 1-500
A09 Pese lettre 1-1000
A11 Crayon 20.0
A12 Crayon luxe 20.0
A13 Crayon luxe 20.0
A14 Crayon luxe 20.0
A15 Crayon luxe 20.0
A10 Crayon 20.0
A03 Cachet dateur 100
A01 Agrafeuse 150
A02 Calculatrice 150
A05 Lampe 550.0
A06 Lampe 550.0
A07 Lampe 550.0
15 tuples retrouvés
Base de données
LE LANGAGE SQLLE 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_paFROM articlesWHERE art_poids<= 100ORDER BY art_poids, art_pa DES;
Art_num Art_nom Art_poids
Art_pa
A12 Crayon luxe 20.0 3
A13 Crayon luxe 20.0 3
A14 Crayon luxe 20.0 3
A15 Crayon luxe 20.0 3
A10 Crayon 20.0 1
A11 Crayon 20.0 1
A03 Cachet dateur 100.0 21
7 tuples retrouvés
Base de données
LE LANGAGE SQLLE 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 margeFROM articlesWHERE art_pa >100ORDER 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 SQLLE LANGAGE SQL
Q18 : Pour tous les clients habitant casa, afficher le nom complet.
SELECT clt_num, clt_nom|| ‘ ‘|| clt_pnom nom_completFROM clientsWHERE clt_loc=‘casa’
Clt_num Nom_complet
C01
C02
C13
C14
4 tuples retrouvés
Base de données
LE LANGAGE SQLLE 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) maxFROM commandes,lig_cmdWHERE cmd_num=lcd_cmd
Delai max
1.1786 5
1 tuple retrouvé
Base de données
LE LANGAGE SQLLE LANGAGE SQL
Q20 : Calculer le poids moyen des articles
SELECT AVG (art_poids) moyenneFROM articles
moyenne
209.23
1 tuple retrouvé
Base de données
LE LANGAGE SQLLE LANGAGE SQL
Q21 : calculer le prix de l’article le plus cher du stock.
SELECT MAX(art_pv) prix_maxFROM articles
Prix_max
250
1 tuple retrouvé
Base de données
LE LANGAGE SQLLE 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 articlesWHERE art_coul IS NOT NULL;
pmoyen margemax Dpmax
209.23 44 35
1 tuple retrouvé
Base de données
LE LANGAGE SQLLE LANGAGE SQL
Q23 : compter le nombre de couleurs différentes existant dans le stock.
SELECT COUNT (DISTINCT art_coul) AS ncouleurFROM articles;
Ncouleur
5
1 tuple retrouvé
Base de données
LE LANGAGE SQLLE LANGAGE SQL
Q24 : Calculer le prix de vente moyen de chaque couleur d’articles.
SELECT art_coul,AVG(art_pv)FROM articlesGROUP BY art_coulORDER BY art_coul;
Art_coul AVG(art_pv)
NULL 225
Blanc 89.55
Bleu 52.0
Noir 120
Rouge 46.25
Vert 77
7 tuples retrouvés
La clause GROUP BY réarrange la table résultant du SELECT en un nombre minimum de groupes tels que, à l’intérieur de chaque groupe, l’attribut spécifié possède la même
valeur pour chaque tuple.
Base de données
LE LANGAGE SQLLE 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 articlesWHERE art_pa=>5GROUP BY art_coulORDER 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 SQLLE LANGAGE SQL
Q26 : Rechercher la couleur des articles dont le prix de vente moyen des articles Q26 : Rechercher la couleur des articles dont le prix de vente moyen des articles de la couleur est supérieur à 100.de la couleur est supérieur à 100.
SELECT art_coul,AVG(art_pv)FROM articlesGROUP BY art_coulHAVING AVG(art_pv) >100ORDER BY art_coul;
Art_coul AVG(art_pv)
NULL 225
Noir 120
2 tuples retrouvés
La clause HAVING est l’équivalent de WHERE appliqué aux groupes. Cette clause ne peut généralement être spécifiée que si une clause GROUP BY l’a été. En pratique, le 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 critère spécifié dans la clause HAVING ne font pas partie du résultat.
Base de données
LE LANGAGE SQLLE 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 nventeFROM commandesWHERE cmd_date BETWEEN ‘940606’ AND ‘940607’GROUP BY cmd_magHAVING COUNT(*) >1
Cmd_mag Nvente
M11 2
1 tuple retrouvé
Base de données
LE LANGAGE SQLLE LANGAGE SQL
• Donner le numéro des articles vendus, avec pour chacun leprix moyen de vente, et le nombre de vente.• Donner par magasins les statistiques de ventes en 94, à savoirle nombre de vente , le nombre de clients différents et le nombrede 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
Devoir