Leçon 1/7 7 min

Introduction aux bases de données

Comprenez ce qu'est une base de données relationnelle, pourquoi SQL existe, et la famille des commandes principales.

FR EN

Le problème : un fichier Excel qui explose

Imaginez une boutique en ligne. Au début, vous notez vos clients dans un fichier Excel : une ligne par client, une colonne pour le nom, une pour l'email. Ça marche.

Puis arrivent les commandes. Vous ajoutez des colonnes : commande 1, commande 2, commande 3... Au bout de quelques mois, votre fichier a 80 colonnes, des doublons partout, et chercher « combien Marie a dépensé en mars » prend dix minutes. Le fichier est devenu un cauchemar.

C'est exactement le problème qu'une base de données relationnelle résout. Au lieu d'un seul fichier géant, vous découpez les informations en tables reliées entre elles, et vous posez vos questions avec un langage précis : SQL.

Une table, c'est un tableur structuré

Une table ressemble à une feuille de tableur. Chaque colonne a un nom et un type (texte, nombre, date). Chaque ligne (aussi appelée « enregistrement ») représente une entité : un client, une commande, un produit.

Voici une table clients :

id  | nom            | email                  | ville
----+----------------+------------------------+-----------
1   | Marie Dupont   | marie@exemple.fr       | Besançon
2   | Karim Benali   | karim@exemple.fr       | Dijon
3   | Léa Martin     | lea@exemple.fr         | Lyon

La colonne id est la clé primaire (primary key) : un identifiant unique qui désigne une seule ligne, sans ambiguïté. Deux clients peuvent s'appeler « Marie Dupont », mais ils n'auront jamais le même id.

La clé primaire est presque toujours un nombre auto-incrémenté (1, 2, 3...). C'est l'ancre qui permet de relier les tables entre elles, ce que vous verrez dans la leçon sur les jointures.

Pourquoi SQL existe

SQL signifie Structured Query Language : le langage standard pour parler aux bases de données relationnelles. Inventé dans les années 1970, il est encore partout aujourd'hui — MySQL, PostgreSQL, SQLite, SQL Server parlent tous (presque) le même SQL.

Son intérêt : vous décrivez ce que vous voulez, pas comment l'obtenir. « Donne-moi tous les clients de Dijon triés par nom » se traduit directement :

SELECT nom, email
FROM clients
WHERE ville = 'Dijon'
ORDER BY nom;

Pas de boucle, pas de tri manuel. Vous exprimez l'intention, le moteur fait le travail.

SQL vs NoSQL en une ligne : SQL range les données dans des tables strictes et reliées (idéal pour des données structurées et cohérentes), NoSQL stocke des documents souples sans schéma fixe (idéal pour des données très changeantes ou massives).

Les quatre verbes du quotidien

99 % de votre travail en SQL tourne autour de quatre commandes, qu'on résume par l'acronyme CRUD (Create, Read, Update, Delete) :

SELECT Lire des données (le plus fréquent) INSERT Ajouter une nouvelle ligne UPDATE Modifier des lignes existantes DELETE Supprimer des lignes

Ce cours suit cet ordre naturel : d'abord lire (SELECT), puis filtrer, agréger, relier les tables, et enfin modifier et concevoir des bases sécurisées. Tout au long, vous apprendrez à faire écrire ces requêtes par l'IA — et surtout à vérifier ce qu'elle vous renvoie.

The problem: a spreadsheet that explodes

Imagine an online shop. At first, you list your customers in an Excel file: one row per customer, one column for the name, one for the email. It works.

Then orders arrive. You add columns: order 1, order 2, order 3... After a few months, your file has 80 columns, duplicates everywhere, and finding "how much did Marie spend in March" takes ten minutes. The file has become a nightmare.

This is exactly the problem a relational database solves. Instead of one giant file, you split the information into tables linked together, and you ask your questions with a precise language: SQL.

A table is a structured spreadsheet

A table looks like a spreadsheet. Each column has a name and a type (text, number, date). Each row (also called a "record") represents an entity: a customer, an order, a product.

Here is a clients table:

id  | nom            | email                  | ville
----+----------------+------------------------+-----------
1   | Marie Dupont   | marie@exemple.fr       | Besancon
2   | Karim Benali   | karim@exemple.fr       | Dijon
3   | Lea Martin     | lea@exemple.fr         | Lyon

The id column is the primary key: a unique identifier pointing to a single row, with no ambiguity. Two customers can be named "Marie Dupont", but they will never share the same id.

The primary key is almost always an auto-incremented number (1, 2, 3...). It is the anchor that links tables together, which you will see in the joins lesson.

Why SQL exists

SQL stands for Structured Query Language: the standard language to talk to relational databases. Invented in the 1970s, it is still everywhere today — MySQL, PostgreSQL, SQLite, SQL Server all speak (almost) the same SQL.

Its strength: you describe what you want, not how to get it. "Give me all customers from Dijon sorted by name" translates directly:

SELECT nom, email
FROM clients
WHERE ville = 'Dijon'
ORDER BY nom;

No loop, no manual sorting. You express the intent, the engine does the work.

SQL vs NoSQL in one line: SQL stores data in strict, related tables (ideal for structured, consistent data), NoSQL stores flexible documents with no fixed schema (ideal for highly changing or massive data).

The four everyday verbs

99% of your SQL work revolves around four commands, summarized by the acronym CRUD (Create, Read, Update, Delete):

SELECT Read data (the most frequent) INSERT Add a new row UPDATE Modify existing rows DELETE Delete rows

This course follows that natural order: first read (SELECT), then filter, aggregate, link tables, and finally modify and design secure databases. Throughout, you will learn to have the AI write these queries — and above all to verify what it returns.

À vous d'essayer — la base est déjà remplie :

CREATE TABLE clients (id INTEGER, nom TEXT, ville TEXT);
INSERT INTO clients VALUES (1, 'Alice Durand', 'Dijon');
INSERT INTO clients VALUES (2, 'Marc Petit', 'Dijon');
INSERT INTO clients VALUES (3, 'Léa Martin', 'Lyon');

SELECT nom, ville
FROM clients
WHERE ville = 'Dijon'
ORDER BY nom;
Avec l'IA

Demandez à l'IA de concevoir un schéma simple, puis vérifiez qu'il a du sens (clés primaires, types, relations) :

Tu es un développeur back-end expérimenté. Je crée une petite boutique en ligne. Propose un schéma de base de données relationnelle avec les tables clients, commandes et produits. Pour chaque table, donne les colonnes, leur type, et indique la clé primaire et les clés étrangères. Explique en une phrase pourquoi tu sépares les données ainsi.
Ré-explique sans regarder

Sans relire le schéma de l'IA : pourquoi vaut-il mieux trois tables clients, commandes et produits reliées plutôt qu'un seul gros tableau qui répète tout ?

Une bonne explication dit : chaque information n'est écrite qu'une seule fois (l'email de Marie vit dans clients, pas recopié sur chaque commande) ; on évite les doublons et les incohérences (un seul endroit à corriger si l'email change) ; les tables se relient par une clé étrangère qui pointe vers la id (clé primaire) de l'autre table. Résultat : un fichier qui ne gonfle pas en colonnes et des questions faciles à poser.
Exercice : Décrivez une table

Décrivez une table produits pour une boutique. Listez au moins une clé primaire (PRIMARY KEY ou id) et trois colonnes avec leur rôle (nom, prix, stock...).

Accepter ou rejeter le code de l'IA

Vous demandez à l'IA de supprimer le client n°3. Elle vous renvoie cette requête. Votre rôle de relecteur : l'accepter telle quelle ou la rejeter, et dire pourquoi.

DELETE FROM clients;
Rejeter, sans hésiter. DELETE FROM clients; n'a pas de WHERE : elle ne supprime pas le client n°3, elle vide TOUTE la table clients. C'est l'accident SQL classique. La requête correcte cible une seule ligne par sa clé primaire : DELETE FROM clients WHERE id = 3;. Réflexe pro : avant tout DELETE ou UPDATE, vérifier qu'un WHERE précis est présent, et le tester d'abord avec un SELECT.
Rappel libre

Sans remonter dans la leçon : en une base relationnelle, qu'est-ce qu'une table, et à quoi sert la clé primaire ?

Une table est comme une feuille de tableur : des colonnes typées (texte, nombre, date) et des lignes (les enregistrements), chaque ligne étant une entité (un client, une commande). La clé primaire (souvent une colonne id auto-incrémentée) identifie chaque ligne de façon unique : deux clients peuvent porter le même nom, jamais le même id. C'est l'ancre qui permet de relier les tables.
À quoi sert une clé primaire ?
Que signifie SQL ?
Quelle commande sert à LIRE des données ?
Prochaine étape

Vous savez maintenant ce qu'est une table et pourquoi SQL existe. Place à la commande reine : SELECT, pour aller chercher dans vos tables exactement les colonnes et les lignes dont vous avez besoin.

Leçon 2 : Sélectionner des données →
Besoin d'un développeur pour votre projet ?

Réponse sous 24h · Sans engagement