← Retour à Simplonline Ressources - Jekyll Theme
Introduction
Ce playground SQL te permet d’exécuter des requêtes SQL directement dans ta navigateur. La base de données est pré-chargée avec des données de démonstration.
Base de données
Nous utilisons une base de données contenant des utilisateurs et leurs commandes. La structure de la base est la suivante :
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER,
email TEXT
);
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
user_id INTEGER,
product TEXT NOT NULL,
amount REAL,
FOREIGN KEY (user_id) REFERENCES users(id)
);
Exercice 1 : Requêtes simples
Modifie la requête ci-dessous pour :
- Sélectionner tous les utilisateurs de plus de 25 ans
- Sélectionner le nom et l’email de tous les utilisateurs
- Sélectionner tous les produits coûtant plus de 100
SQL
Solution
-- Utilisateurs de plus de 25 ans
SELECT * FROM users WHERE age > 25;
-- Nom et email
SELECT name, email FROM users;
-- Produits plus de 100
SELECT * FROM orders WHERE amount > 100;
Exercice 2 : Jointures
Écris une requête pour afficher le nom de chaque utilisateur et le produit qu’il a commandé.
SQL
Solution
-- Jointure users-orders
SELECT users.name, orders.product, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id;
Exercice 3 : Agrégations
Utilise les fonctions d’agrégation pour :
- Calculer le nombre total d’utilisateurs
- Calculer le montant total des commandes par utilisateur
- Trouver le produit le plus cher
SQL
Solution
-- Nombre total d'utilisateurs
SELECT COUNT(*) as total_users FROM users;
-- Montant total par utilisateur
SELECT users.name, SUM(orders.amount) as total_spent
FROM users
JOIN orders ON users.id = orders.user_id
GROUP BY users.id;
-- Produit le plus cher
SELECT product, MAX(amount) as max_price FROM orders;
Exercice 4 : Conditions et tri
Écris des requêtes pour :
- Trouver les utilisateurs dont le nom commence par ‘A’ ou ‘B’
- Afficher les commandes triées par montant décroissant
- Trouver les utilisateurs qui ont passé 2 commandes minimum
SQL
Solution
-- Utilisateurs A ou B
SELECT * FROM users WHERE name LIKE 'A%' OR name LIKE 'B%';
-- Commandes triées par montant
SELECT * FROM orders ORDER BY amount DESC;
-- Utilisateurs avec plus de 2 commandes
SELECT users.name, COUNT(orders.id) as order_count
FROM users
JOIN orders ON users.id = orders.user_id
GROUP BY users.id
HAVING order_count >= 2;
👉 Version markdown de cette démo
Consulter la version markdown de cette démo pour voir le code complet.