Retour aux ressources
Tutoriel12 min de lecture

SQL pour Non-Développeurs : Apprenez en 1 Heure

Vous n'êtes pas développeur mais vous avez besoin d'interroger vos données ? Ce guide vous apprend les bases du SQL en 1 heure chrono avec des exemples concrets.

SQL (Structured Query Language) est le langage universel pour interroger des bases de données. Vous l'utilisez peut-être sans le savoir : chaque fois que vous filtrez dans Excel, triez dans un CRM ou créez un rapport, vous faites l'équivalent de SQL.

1. C'est quoi SQL ?

Imaginez une base de données comme un fichier Excel avec plusieurs onglets (tables). SQL vous permet de poser des questions à ces tables :

En langage naturel

"Montre-moi tous les clients de Paris qui ont commandé plus de 1000€ en 2024"

En SQL

SELECT * FROM clients
WHERE ville = 'Paris'
AND total > 1000
AND annee = 2024

Les 5 commandes à connaître absolument

SELECTLire des données (comme ouvrir un onglet Excel)
WHEREFiltrer les lignes (comme un filtre Excel)
JOINCroiser plusieurs tables (comme un VLOOKUP)
GROUP BYRegrouper et calculer (comme un tableau croisé dynamique)
ORDER BYTrier les résultats (comme trier une colonne)

Bonne nouvelle

Avec ces 5 commandes, vous pouvez résoudre 95% des besoins quotidiens d'analyse de données. Pas besoin d'être développeur.

2. SELECT : lire des données

SELECT est la commande de base pour lire des données. C'est comme dire "Montre-moi..."

Syntaxe de base

Toutes les colonnes

SELECT * FROM clients;

→ Affiche toutes les colonnes de la table clients

Colonnes spécifiques

SELECT nom, email, ville FROM clients;

→ Affiche uniquement les colonnes nom, email et ville

Limiter les résultats

SELECT * FROM clients LIMIT 10;

→ Affiche uniquement les 10 premières lignes

3. WHERE : filtrer les données

WHERE vous permet de filtrer les lignes selon des conditions. C'est l'équivalent des filtres Excel.

Conditions courantes

Égalité simple

SELECT * FROM clients
WHERE ville = 'Paris';

Comparaisons numériques

SELECT * FROM commandes
WHERE montant > 1000;

Conditions multiples (ET)

SELECT * FROM clients
WHERE ville = 'Paris'
AND age > 30;

Conditions multiples (OU)

SELECT * FROM clients
WHERE ville = 'Paris'
OR ville = 'Lyon';

Recherche textuelle

SELECT * FROM clients
WHERE email LIKE '%@gmail.com';

→ Trouve tous les emails Gmail (% = n'importe quoi)

Liste de valeurs

SELECT * FROM clients
WHERE ville IN ('Paris', 'Lyon', 'Marseille');

Opérateurs de comparaison

=égal
>supérieur
<inférieur
>=supérieur ou égal
<=inférieur ou égal
!=différent

4. JOIN : croiser plusieurs tables

Les données sont souvent réparties dans plusieurs tables. JOIN permet de les croiser. C'est l'équivalent du VLOOKUP dans Excel.

Exemple concret

Situation

Vous avez 2 tables :
- commandes (id, client_id, montant, date)
- clients (id, nom, email, ville)

Vous voulez afficher les commandes avec le nom du client.

SELECT
  commandes.id,
  clients.nom,
  clients.email,
  commandes.montant,
  commandes.date
FROM commandes
JOIN clients ON commandes.client_id = clients.id;

Explication ligne par ligne

  • SELECT ... : choix des colonnes à afficher
  • FROM commandes : table principale
  • JOIN clients : table à croiser
  • ON ... : condition de jointure (quelle colonne relie les 2 tables)

Types de JOIN

INNER JOINPar défaut, le plus courant

Ne garde que les lignes qui ont une correspondance des deux côtés

LEFT JOINPour ne rien perdre de la table principale

Garde toutes les lignes de la table de gauche, même sans correspondance

RIGHT JOINPeu utilisé en pratique

Garde toutes les lignes de la table de droite

5. Agrégations et GROUP BY

Pour calculer des totaux, moyennes, comptages... utilisez les fonctions d'agrégation. C'est l'équivalent des tableaux croisés dynamiques Excel.

Fonctions d'agrégation courantes

COUNT(*)

Compte le nombre de lignes

SUM(montant)

Somme des montants

AVG(montant)

Moyenne des montants

MAX(montant)

Montant maximum

MIN(montant)

Montant minimum

Exemples pratiques

Nombre total de clients

SELECT COUNT(*) FROM clients;

Chiffre d'affaires total

SELECT SUM(montant) FROM commandes;

CA par ville (GROUP BY)

SELECT
  ville,
  COUNT(*) as nb_clients,
  SUM(montant) as ca_total
FROM clients
JOIN commandes ON clients.id = commandes.client_id
GROUP BY ville
ORDER BY ca_total DESC;

→ Regroupe par ville, calcule nb clients et CA, trie par CA décroissant

Règle importante

Quand vous utilisez GROUP BY, toutes les colonnes du SELECT doivent soit être dans le GROUP BY, soit être dans une fonction d'agrégation (COUNT, SUM...).

6. Exercices pratiques

Testez vos connaissances avec ces exercices. Essayez de les résoudre avant de regarder les solutions.

Exercice 1 : Afficher tous les clients de Paris ou Lyon
SELECT * FROM clients
WHERE ville IN ('Paris', 'Lyon');
Exercice 2 : Compter le nombre de commandes supérieures à 500€
SELECT COUNT(*) FROM commandes
WHERE montant > 500;
Exercice 3 : Afficher le top 10 des clients par montant total de commandes
SELECT
  clients.nom,
  SUM(commandes.montant) as total
FROM clients
JOIN commandes ON clients.id = commandes.client_id
GROUP BY clients.id, clients.nom
ORDER BY total DESC
LIMIT 10;
Exercice 4 : Calculer le panier moyen par ville
SELECT
  ville,
  AVG(montant) as panier_moyen
FROM clients
JOIN commandes ON clients.id = commandes.client_id
GROUP BY ville
ORDER BY panier_moyen DESC;

Pour aller plus loin

  • SQLBolt : tutoriels interactifs gratuits
  • Mode Analytics SQL Tutorial : exemples business
  • Metabase : interface visuelle pour écrire du SQL

Conclusion

Félicitations ! Vous maîtrisez maintenant les bases du SQL. Avec SELECT, WHERE, JOIN et GROUP BY, vous pouvez résoudre la majorité de vos besoins d'analyse de données.

La clé maintenant : pratiquer. Chaque fois que vous avez une question sur vos données, essayez de l'écrire en SQL. Vous progresserez rapidement.

Besoin d'une formation SQL sur-mesure ?

Nous formons vos équipes au SQL adapté à vos données et cas d'usage métier.