Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Atelier - Sélection de données

APERTO-NOTA

Exercices : Sélection de données dans une table avec SQL

1. Filtrer les employés par salaire

Solution to Exercise #
SELECT 
    e.nom, 
    e.prenom, 
    e.fonction, 
    e.salaire 
FROM employes e
WHERE e.salaire BETWEEN 2500 AND 3500;

2. Produits et fournisseurs par catégorie

Solution to Exercise #
SELECT
    p.nom_produit,
    f.societe
FROM produits p
JOIN fournisseurs f ON p.no_fournisseur = f.no_fournisseur
WHERE p.code_categorie IN (1, 4, 7);

3. Employés et leurs supérieurs

Solution to Exercise #
SELECT 
    emp.nom AS "Employé",
    chef.nom AS "Supérieur"
FROM employes emp
INNER JOIN employes chef ON emp.rend_compte = chef.no_employe;

4. Produits hors catégories spécifiques

Solution to Exercise #
SELECT 
    cat.nom_categorie,
    p.quantite,
    f.societe,
    cat.nom_categorie 
FROM categories cat
JOIN produits p on cat.code_categorie = p.code_categorie 
JOIN fournisseurs f ON p.no_fournisseur = f.no_fournisseur 
WHERE p.code_categorie NOT IN (1,3,5,7);

5. Employés ayant vendu à des clients parisiens

Solution to Exercise #
SELECT
    e.nom,
    cl.societe,
    cl.ville
FROM employes e
JOIN commandes cm on e.no_employe = cm.no_employe
JOIN clients cl on cm.code_client = cl.code_client
WHERE cl.ville = 'Paris';

6. Produits par fournisseur et catégorie

Solution to Exercise #
SELECT
    p.nom_produit,
    p.quantite, 
    f.societe, 
    c.nom_categorie
FROM categories c
JOIN produits p ON c.code_categorie = p.code_categorie
JOIN fournisseurs f ON p.no_fournisseur = f.no_fournisseur
WHERE (p.no_fournisseur BETWEEN 1 AND 3
    OR p.code_categorie BETWEEN 1 AND 3)
    AND (p.quantite LIKE '%boîte%' OR p.quantite LIKE '%carton%');

7. Filtrer et croiser des données de plusieurs tables

Solution to Exercise #
SELECT
    p.nom_produit,
    f.societe,
    c.nom_categorie,
    p.quantite
FROM produits p
JOIN fournisseurs f ON p.no_fournisseur = f.no_fournisseur
JOIN categories c ON p.code_categorie = c.code_categorie
WHERE p.prix_unitaire BETWEEN 10 AND 50
    AND p.code_categorie IN (2, 4, 6);