SQL pour la data : comprendre et manipuler des bases de données
Ce cours t'apprend à lire, interroger et transformer des données stockées dans une base relationnelle grâce au langage SQL. Tu verras comment poser des questions à des données brutes pour en tirer des réponses utiles, un besoin central en analyse de données et en intelligence artificielle.
1.Qu'est-ce que SQL et à quoi ça sert
SQL veut dire Structured Query Language, un langage de requête structuré. Il sert à communiquer avec une base de données relationnelle, c'est-à-dire un ensemble de tables reliées entre elles. Une table ressemble à un tableau Excel géant : des lignes représentent des enregistrements, des colonnes représentent des attributs. Par exemple, une table clients contient une ligne par client, avec des colonnes nom, ville, date d'inscription. SQL permet de poser des questions à cette table, comme extraire tous les clients de Lyon inscrits en 2023. Dans un métier data, SQL sert quotidiennement à préparer des données avant de les analyser ou de les envoyer dans un modèle d'IA. C'est un langage déclaratif : tu décris ce que tu veux obtenir, pas comment l'obtenir techniquement. Cette simplicité en fait un outil incontournable pour manipuler de gros volumes d'informations.
- SQL interroge des bases de données organisées en tables reliées.
- Une table contient des lignes (enregistrements) et des colonnes (attributs).
- Langage déclaratif : on décrit le résultat voulu, pas la méthode.
2.Sélectionner et filtrer des données
La commande de base en SQL s'appelle SELECT. Elle permet de choisir quelles colonnes afficher depuis une table. Par exemple, SELECT nom, ville FROM clients affiche seulement le nom et la ville de chaque client. Pour restreindre les résultats à certaines lignes, on utilise WHERE, une clause de filtrage. SELECT nom FROM clients WHERE ville = 'Lyon' ne renvoie que les clients lyonnais. On peut combiner plusieurs conditions avec AND ou OR. Par exemple, WHERE ville = 'Lyon' AND date_inscription > '2023-01-01' filtre les clients lyonnais inscrits après cette date. Il existe aussi ORDER BY pour trier les résultats, et LIMIT pour n'afficher qu'un nombre défini de lignes, utile quand une table contient des millions d'enregistrements. Ces quatre éléments, SELECT, WHERE, ORDER BY et LIMIT, forment le socle de toute requête SQL simple.
- SELECT choisit les colonnes à afficher.
- WHERE filtre les lignes selon une ou plusieurs conditions.
- ORDER BY trie les résultats, LIMIT restreint leur nombre.
3.Agréger des données avec GROUP BY
Souvent, on ne veut pas voir chaque ligne individuellement, mais un résumé par catégorie. C'est le rôle de l'agrégation. Des fonctions comme COUNT, SUM, AVG, MAX, MIN calculent respectivement un nombre, une somme, une moyenne, un maximum et un minimum. Par exemple, SELECT ville, COUNT(*) FROM clients GROUP BY ville compte combien de clients existent dans chaque ville. GROUP BY regroupe les lignes qui partagent une même valeur, ici la ville, avant d'appliquer la fonction d'agrégation. Si tu veux calculer le chiffre d'affaires moyen par ville, tu écrirais SELECT ville, AVG(montant) FROM ventes GROUP BY ville. Pour filtrer sur un résultat agrégé, on utilise HAVING plutôt que WHERE, car WHERE agit avant le regroupement. Par exemple, HAVING COUNT(*) > 100 ne garde que les villes ayant plus de 100 clients. L'agrégation est essentielle pour transformer des données brutes en indicateurs synthétiques.
- GROUP BY regroupe les lignes par valeur commune avant calcul.
- COUNT, SUM, AVG, MAX, MIN résument les données groupées.
- HAVING filtre après l'agrégation, contrairement à WHERE.
4.Relier plusieurs tables avec les jointures
Une base de données bien conçue évite de répéter l'information. Les données sont réparties dans plusieurs tables reliées par des clés. Une clé primaire identifie une ligne de façon unique, comme un identifiant client. Une clé étrangère, dans une autre table, pointe vers cette clé primaire pour créer un lien. Par exemple, une table commandes contient une colonne client_id qui renvoie vers la table clients. Pour afficher le nom du client à côté de chaque commande, on utilise une jointure, l'opération qui combine deux tables selon une correspondance de clés. La commande INNER JOIN ne garde que les lignes ayant une correspondance dans les deux tables. LEFT JOIN garde toutes les lignes de la table de gauche, même sans correspondance, en complétant par des valeurs vides sinon. Les jointures sont indispensables dès qu'on travaille avec une base structurée en plusieurs tables, ce qui est presque toujours le cas.
- Les jointures combinent des tables via des clés primaires et étrangères.
- INNER JOIN garde seulement les correspondances communes aux deux tables.
- LEFT JOIN conserve toutes les lignes de la table de gauche.
5.Modifier et structurer les données
SQL ne sert pas qu'à lire des données, il permet aussi de les modifier. INSERT INTO ajoute une nouvelle ligne dans une table, par exemple un nouveau client. UPDATE modifie des valeurs existantes, comme corriger l'adresse d'un client avec UPDATE clients SET ville = 'Paris' WHERE id = 42. DELETE supprime des lignes, à utiliser avec prudence car une clause WHERE oubliée efface toute la table. Ces trois commandes, avec SELECT, forment ce qu'on appelle le CRUD : create, read, update, delete, les quatre opérations de base sur des données. Par ailleurs, CREATE TABLE définit la structure d'une nouvelle table, en précisant le nom et le type de chaque colonne, comme INTEGER pour un nombre entier ou VARCHAR pour du texte. Comprendre ces commandes est utile même pour un profil data orienté analyse, car il faut parfois préparer ou nettoyer des tables temporaires avant de les exploiter.
- INSERT, UPDATE et DELETE modifient le contenu d'une table.
- Le CRUD regroupe create, read, update, delete, les opérations de base.
- CREATE TABLE définit la structure d'une table avant de la remplir.
6.Erreurs fréquentes et points d'examen
L'erreur la plus courante est d'oublier la clause WHERE dans un UPDATE ou un DELETE, ce qui modifie ou supprime toutes les lignes d'une table. Une autre erreur classique consiste à confondre WHERE et HAVING, en essayant de filtrer un résultat agrégé avec WHERE, ce qui provoque une erreur de syntaxe. Beaucoup de débutants oublient aussi que GROUP BY exige que chaque colonne affichée soit soit agrégée, soit présente dans le regroupement. Sur les jointures, une confusion fréquente porte sur INNER JOIN et LEFT JOIN, entraînant une perte de lignes attendues. À l'examen, on te demandera souvent d'écrire une requête combinant plusieurs notions : sélection, filtre, jointure et agrégation dans la même question. Il est utile de t'entraîner à décomposer une demande complexe étape par étape, en écrivant d'abord la structure des tables avant de rédiger la requête complète.
- Toujours vérifier la présence de WHERE avant un UPDATE ou un DELETE.
- HAVING filtre après GROUP BY, WHERE filtre avant.
- Les requêtes d'examen combinent souvent jointure, filtre et agrégation.
À retenir
- 1SQL permet d'interroger et de manipuler des données stockées dans des tables reliées entre elles.
- 2SELECT, WHERE, GROUP BY et JOIN forment le cœur des requêtes utilisées en data.
- 3Les jointures relient des tables grâce à des clés primaires et étrangères.
- 4Une clause WHERE oubliée dans un UPDATE ou un DELETE peut modifier toute une table par erreur.
- 5Maîtriser SQL est essentiel pour préparer des données avant toute analyse ou tout projet d'intelligence artificielle.
Dix questions sur ce sujet démarrent tout de suite, corrigées et expliquées.
L'essentiel en six phrases, à relire la veille.
Cours rédigé par intelligence artificielle et relu au fil des retours. Pour un examen officiel, garde tes cours et les textes en vigueur comme référence.