← 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 :

  1. Sélectionner tous les utilisateurs de plus de 25 ans
  2. Sélectionner le nom et l’email de tous les utilisateurs
  3. 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 :

  1. Calculer le nombre total d’utilisateurs
  2. Calculer le montant total des commandes par utilisateur
  3. 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 :

  1. Trouver les utilisateurs dont le nom commence par ‘A’ ou ‘B’
  2. Afficher les commandes triées par montant décroissant
  3. 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.