{}const=>[]async()letfn</>var
Développement

SQL pour les débutants : les premières requêtes qui donnent des résultats

De zéro à l'action : 12 recettes toutes faites de requêtes SELECT, filtres, tri, regroupements et JOIN simple. Dans l'article, vous verrez le premier avantage de SQL.

К

Kodik

Auteur

4 min de lecture

Qu'est-ce que SQL en quelques mots ?

SQL (Structured Query Language) — langage pour interroger la base de données sur les faits : « Combien de commandes ? », « Quels produits sont plus chers que 50 ? », « Qui n'a fait aucun achat ? ».

Ensemble de commandes de base pour la lecture :

  • SELECT — quelles colonnes prendre ;

  • FROM — de quelle table ;

  • WHERE — quelles lignes laisser ;

  • ORDER BY — comment trier ;

  • LIMIT — combien de lignes à retourner ;

  • JOIN — comment coller les tableaux ensemble ;

  • GROUP BY + agrégats (COUNT, SUM, AVG, MIN, MAX) — regrouper et compter.

🔥 100 000+ étudiants déjà avec nous

Marre de lire la théorie ?
Il est temps de coder !

Kodik — une appli où tu apprends à coder par la pratique. Mentor IA, leçons interactives, projets réels.

🤖 IA 24/7
🎓 Certificats
💰 Gratuit
🚀 Commencer
Ont rejoint aujourd'hui

Notre mini-base pour les exemples

Tableau users

id

name

email

city

1

Anna Ivanova

anna@example.com

Moscow

2

Ivan Petrov

ivan@company.ru

Saint-P

3

Lee Kim

lee.kim@example.com

Tableau products

id

title

price

1

Keyboard

39.9

2

Mouse

19.9

3

Monitor 24"

149.0

Tableau orders

id

user_id

product_id

qty

created_at

1

1

1

1

2025-09-01

2

1

3

1

2025-09-03

3

2

2

2

2025-09-05

La toute première demande :

SELECT * 
FROM users;

SELECT name, city 
FROM users;

Filtration : WHERE

SELECT name, email
FROM users
WHERE city = 'Moscow';

SELECT title, price
FROM products
WHERE price > 20;

SELECT title, price
FROM products
WHERE price BETWEEN 20 AND 150;

SELECT name, city
FROM users
WHERE city IN ('Moscow', 'Saint-P');

SELECT email
FROM users
WHERE email LIKE '%@example.com';

SELECT name
FROM users
WHERE city IS NULL;

Tri et limitation : ORDER BY + LIMIT

SELECT title, price
FROM products
ORDER BY price ASC
LIMIT 2;

SELECT id, user_id, created_at
FROM orders
ORDER BY created_at DESC
LIMIT 5;

Valeurs uniques : DISTINCT

SELECT DISTINCT city
FROM users
WHERE city IS NOT NULL;

Groupements et agrégats : GROUP BY

SELECT user_id, COUNT(*) AS orders_count
FROM orders
GROUP BY user_id;

SELECT p.title, SUM(o.qty * p.price) AS total_revenue
FROM orders o
JOIN products p ON p.id = o.product_id
GROUP BY p.title
ORDER BY total_revenue DESC;

SELECT p.title, SUM(o.qty * p.price) AS total_revenue
FROM orders o
JOIN products p ON p.id = o.product_id
GROUP BY p.title
HAVING SUM(o.qty * p.price) > 100;

JOIN simples sans douleur

SELECT u.name, p.title, o.qty, o.created_at
FROM orders o
JOIN users u    ON u.id = o.user_id
JOIN products p ON p.id = o.product_id
ORDER BY o.created_at DESC;

SELECT u.name, MAX(o.created_at) AS last_order
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.name
ORDER BY last_order DESC NULLS LAST;

12 recettes rapides pour le travail

-- 1. Последние 5 заказов
SELECT * FROM orders ORDER BY created_at DESC LIMIT 5;

-- 2. Пользователи с доменом example.com
SELECT name, email FROM users WHERE email LIKE '%@example.com';

-- 3. Топ-3 товара по выручке
SELECT p.title, SUM(o.qty * p.price) AS revenue
FROM orders o JOIN products p ON p.id = o.product_id
GROUP BY p.title
ORDER BY revenue DESC
LIMIT 3;

-- 4. Пользователи без города
SELECT * FROM users WHERE city IS NULL;

-- 5. Товары в ценовом коридоре
SELECT * FROM products WHERE price BETWEEN 20 AND 150;

-- 6. Количество заказов по дням
SELECT DATE(created_at) AS day, COUNT(*) AS cnt
FROM orders
GROUP BY DATE(created_at)
ORDER BY day;

-- 7. Сколько разных городов
SELECT COUNT(DISTINCT city) FROM users WHERE city IS NOT NULL;

-- 8. Сумма корзины конкретного заказа
SELECT SUM(o.qty * p.price) AS total
FROM orders o JOIN products p ON p.id = o.product_id
WHERE o.id = :id;

-- 9. Все товары, которые покупал Иван
SELECT p.title
FROM orders o
JOIN users u ON u.id = o.user_id
JOIN products p ON p.id = o.product_id
WHERE u.name = 'Ivan Petrov';

-- 10. Заказы за последние 7 дней
SELECT * FROM orders
WHERE created_at >= CURRENT_DATE - INTERVAL '7 DAY';

-- 11. Первые N строк для быстрой проверки
SELECT * FROM users LIMIT 10;

-- 12. Уникальные домены email
SELECT DISTINCT SUBSTRING(email FROM POSITION('@' IN email) + 1) AS domain
FROM users;

Si vous voulez de la pratique et des explications courtes, Code nous analysons SQL sur des tâches en direct, des échantillons simples aux analyses avec agrégations. Sans eau, avec interactivité.

Nous avons aussi un chaîne de télégram, où nous discutons d'idées intéressantes, partageons nos expériences et analysons ensemble les tâches, apprendre devient non seulement utile, mais aussi amusant.

Question pour vous : quelle partie de SQL est la plus effrayante : JOIN, GROUP BY ou le mystérieux NULL ? Écrivez ce que vous voulez comprendre dans l'article suivant.

🎯Arrête de reporter

Tu as aimé l'article ?
Place à la pratique !

Avec Kodik, tu ne lis pas seulement — tu codes immédiatement. Théorie + pratique = vraies compétences.

Pratique instantanée
🧠L'IA explique le code
🏆Certificat

Sans inscription • Sans carte