Nous utilisons des cookies pour vous fournir l'ensemble de nos services, notamment la recherche et les alertes. En acceptant, vous consentez à notre utilisation de ces cookies.
Choisir mes préférences
C’est souvent la toute première question qu’on se pose quand on veut faire parler les données.
Vous travaillez avec des fichiers Excel trop lourds ? Vous gérez manuellement des listes de clients, de produits ou de commandes ? Il est peut-être temps de passer à la vitesse supérieure : structurer vos données avec une vraie base relationnelle.
Pas besoin d’être développeur pour s’y mettre. Avec SQL (Structured Query Language), vous pouvez créer votre propre base de données, depuis zéro, et gérer vos informations comme un pro. C’est simple, clair, et une fois qu’on a compris la logique, on ne revient plus en arrière.
Dans ce tutoriel pas à pas, on vous montre exactement comment faire :
Un guide conçu pour les débutants, les pros métiers et tous ceux qui veulent gagner en efficacité avec leurs données.
Avant de créer une base de données, il est important de bien comprendre comment les informations y sont organisées. Une base relationnelle repose sur un principe simple : chaque type d'information est rangé dans une table dédiée, et ces tables peuvent être reliées entre elles.
Une base de données relationnelle, c’est un ensemble structuré de tables, comme des feuilles Excel intelligentes. Chaque table contient des lignes (les enregistrements) et des colonnes (les champs).
Mais contrairement à un simple fichier tableur, une base relationnelle vous permet de lier les tables entre elles grâce à des identifiants. Ce lien, c’est la relation.
Exemple concret :
Imaginons que vous gérez un petit site e-commerce. Vous pourriez organiser vos données ainsi :
Ces trois tables sont distinctes, mais connectées. Par exemple, une commande fait toujours référence à un client, sans avoir à recopier toutes ses informations dans chaque ligne.
Grâce aux relations entre les tables, vous évitez les doublons, limitez les erreurs et gagnez en performance. C’est le socle de toute base de données bien pensée.
Pour créer une base SQL et y interagir, il vous faut deux éléments :
C’est le logiciel qui gère votre base : il enregistre vos tables, exécute les requêtes SQL et maintient l’intégrité des données. Voici les plus utilisés :
Elle facilite l’interaction avec le SGBD sans passer uniquement par des lignes de commande.
Conseil pratique
Installer un outil tout-en-un comme XAMPP (qui embarque Apache, MySQL et PhpMyAdmin) est une excellente porte d’entrée pour les débutants.
Vous avez installé un SGBD comme MySQL, PostgreSQL ou SQLite ? Très bien. On peut maintenant passer à la création de votre première base de données.
Créer une base de données, c’est comme créer un dossier vierge prêt à accueillir vos futures tables. Et en SQL, cela se fait avec une commande simple et directe.
Avant de créer vos premières tables, vous devez commencer par définir un espace de travail : une base de données. En SQL, cela se fait très simplement avec la commande CREATE DATABASE
, suivie du nom de la base que vous souhaitez créer.
Par exemple :
CREATE DATABASE boutique_en_ligne;
Cette instruction initialise une base vide. Aucune table n’y est encore présente, mais vous disposez désormais d’un espace où structurer toutes vos données. Pour indiquer au système que vous souhaitez travailler dans cette base, vous devez ensuite la sélectionner à l’aide de la commande :
USE boutique_en_ligne;
À partir de ce moment, toutes les commandes que vous taperez s’appliqueront à cette base et à elle seule. Il s’agit d’un réflexe fondamental : si vous oubliez d’exécuter USE
, vous risquez de créer vos tables dans la mauvaise base… ou de rencontrer des erreurs.
Voici quelques bonnes pratiques à garder en tête dès la création :
_
) pour séparer les mots.test
ou data
: soyez précis.Cela dépend de l’outil que vous utilisez :
Une fois votre base de données créée, vous pouvez vérifier qu’elle a bien été enregistrée par le serveur. Pour cela, utilisez la commande suivante :
SHOW DATABASES;
Cette requête affiche la liste complète de toutes les bases de données actuellement disponibles sur votre serveur. Si le nom de votre base apparaît, tout fonctionne correctement et vous pouvez passer à la suite.
Astuce :
Vous pouvez créer plusieurs bases sur un même serveur : une pour vos tests, une autre pour la production, ou encore pour des projets distincts.
Votre base est désormais prête, mais elle est encore vide. Pour stocker des données, vous devez créer une ou plusieurs tables. Une table représente un type d'information bien défini : par exemple, les clients, les commandes ou les produits.
Chaque table est composée de colonnes (qui décrivent les champs à enregistrer, comme le nom ou l’email) et de lignes (chaque ligne étant un enregistrement unique).
Voici un exemple de création de table SQL pour enregistrer des clients :
CREATE TABLE clients ( id INT PRIMARY KEY, nom VARCHAR(100), email VARCHAR(100), date_inscription DATE );
Cette commande crée une table nommée clients
avec quatre colonnes :
id
: identifiant unique du client. Il est défini comme PRIMARY KEY
, ce qui signifie que chaque ligne aura une valeur unique dans cette colonne.nom
: nom du client, jusqu’à 100 caractères.email
: adresse email du client, également limitée à 100 caractères.date_inscription
: date à laquelle le client a été ajouté dans la base, au format AAAA-MM-JJ
.Chaque colonne est associée à un type de données adapté à son contenu : INT
pour les nombres entiers, VARCHAR
pour le texte court, et DATE
pour les dates.
PRIMARY KEY
pour garantir qu’aucune ligne ne soit dupliquée.VARCHAR
pour stocker des dates).Voici une version améliorée de notre table clients
, avec quelques contraintes supplémentaires :
CREATE TABLE clients ( id INT PRIMARY KEY AUTO_INCREMENT, nom VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE, date_inscription DATE DEFAULT CURRENT_DATE );
Ce que cela ajoute :
AUTO_INCREMENT
: l’identifiant id
est généré automatiquement à chaque nouvel ajout.NOT NULL
: la colonne nom
ne peut pas rester vide.UNIQUE
: deux clients ne peuvent pas avoir le même email.DEFAULT CURRENT_DATE
: si aucune date n’est précisée, la date du jour est utilisée par défaut.Pour vous assurer que votre table a bien été créée, vous pouvez exécuter : SHOW TABLES;
Et pour voir la structure de la table en détail : DESCRIBE clients;
Si tout s’affiche correctement, vous êtes prêt à ajouter vos premières données dans une structure solide et bien typée.
Une base relationnelle prend tout son sens lorsque plusieurs tables interagissent entre elles. Pour cela, on utilise une clé étrangère (FOREIGN KEY
), qui crée un lien logique entre deux tables. Cela vous permet d’organiser vos données sans les dupliquer et de garantir leur cohérence.
Avant de parler de clé étrangère, rappelons qu’une clé primaire (PRIMARY KEY
) est un identifiant unique pour chaque ligne d’une table. Elle garantit qu’il n’y a ni doublons, ni valeurs vides.
Par exemple, dans une table clients
, la colonne id
peut servir de clé primaire. Chaque client aura ainsi un identifiant unique (1, 2, 3…).
Une clé étrangère, elle, sert à créer un lien avec une autre table. Elle pointe vers une clé primaire existante dans une autre table.
Prenons un exemple : vous avez une table commandes
dans laquelle chaque commande est associée à un client. Plutôt que de recopier son nom ou son email, on ajoute une colonne client_id
qui fait référence à clients.id
.
Voici comment créer cette table liée :
CREATE TABLE commandes (
id_commande INT PRIMARY KEY AUTO_INCREMENT,
date_commande DATE NOT NULL,
client_id INT,
FOREIGN KEY (client_id) REFERENCES clients(id)
);
Chaque instruction de cette commande SQL a un rôle précis dans la création de la table commandes
. Voici comment les décrypter ligne par ligne.
client_id
: champ dans la table commandes
qui contient l’identifiant du client concernéFOREIGN KEY (client_id)
: indique que cette colonne est une clé étrangèreREFERENCES clients(id)
: établit le lien vers la clé primaire de la table clients
Définir des relations solides entre vos tables n’est pas un simple détail technique : c’est ce qui garantit la fiabilité, la cohérence et l’exploitation fluide de vos données sur le long terme.
Pour éviter les erreurs et assurer la robustesse de votre base, certaines règles sont à respecter lors de la création de clés étrangères.
INT
pour id
et client_id
).client_id
, produit_id
…Certains systèmes vous permettent d’automatiser la suppression des enregistrements liés. Par exemple, si vous supprimez un client, toutes ses commandes peuvent être supprimées automatiquement :
FOREIGN KEY (client_id) REFERENCES clients(id) ON DELETE CASCADE
Cette option est puissante mais à utiliser avec prudence, car elle peut entraîner la perte de données liées sans confirmation.
Vous avez maintenant deux tables qui dialoguent entre elles. Vous êtes prêt à insérer vos premières données… et à observer les relations en action.
Votre base de données est en place, vos tables sont prêtes et correctement reliées. Il est temps maintenant de leur donner vie en y ajoutant vos premières données. En SQL, on utilise pour cela la commande INSERT INTO
.
Voici un exemple de requête pour insérer un nouveau client dans la table clients
:
INSERT INTO clients (nom, email, date_inscription)
VALUES ('Léa Martin', 'lea.martin@email.com', '2025-05-15');
Vous indiquez ici les colonnes concernées, puis les valeurs correspondantes, dans le même ordre. Si votre colonne id
est configurée en AUTO_INCREMENT
, vous n’avez pas besoin de la renseigner : elle se générera automatiquement.
Vous pouvez également insérer plusieurs enregistrements en une seule commande. Cela vous fait gagner du temps et réduit le risque d’erreur :
INSERT INTO clients (nom, email, date_inscription)
VALUES
('Thomas Durand', 'tdurand@email.com', '2025-05-12'),
('Julie Petit', 'julie.petit@email.com', '2025-05-13'),
('Karim Benali', 'k.benali@email.com', '2025-05-14');
Une fois vos clients enregistrés, vous pouvez ajouter des commandes dans la table commandes
. N’oubliez pas : la colonne client_id
doit faire référence à un client existant dans la table clients
.
INSERT INTO commandes (date_commande, client_id)
VALUES ('2025-05-16', 1);
Si vous tentez d’insérer un client_id
qui n’existe pas, le SGBD refusera l’enregistrement. C’est le rôle de la clé étrangère : garantir que les données restent cohérentes.
Pour consulter ce que contient une table, utilisez la commande SELECT
. Par exemple, pour voir tous les clients :
SELECT * FROM clients;
Et pour afficher uniquement les commandes passées par le client numéro 1 :
SELECT * FROM commandes WHERE client_id = 1;
Quelques réflexes simples pour éviter les erreurs dès les premières lignes insérées dans votre base.
'
) pour les textes, jamais de guillemets doubles.AAAA-MM-JJ
.clients
) avant celles de la table liée (ex. : commandes
).Vous avez maintenant une base qui vit : des données claires, bien structurées, prêtes à être interrogées. Et c’est ce que vous allez découvrir à l’étape suivante avec les fameuses jointures SQL.
Jusqu’ici, vous avez manipulé des tables séparément. Mais la vraie puissance du SQL relationnel se révèle lorsque vous croisez plusieurs tables pour obtenir des informations combinées. C’est le rôle des jointures, ou JOIN
.
Imaginez que vous souhaitiez afficher la date de chaque commande, accompagnée du nom du client qui l’a passée. Vous avez l’information sur la commande dans la table commandes
, et le nom du client dans la table clients
. Grâce à la jointure, vous pouvez réunir ces deux tables dans une seule requête.
Voici une requête simple pour afficher toutes les commandes avec les noms des clients associés :
SELECT clients.nom, commandes.date_commande
FROM commandes
INNER JOIN clients ON commandes.client_id = clients.id;
Cette requête sélectionne les lignes où les identifiants client concordent dans les deux tables. Autrement dit, elle ne renvoie que les commandes pour lesquelles un client correspondant existe.
Chaque élément de cette requête a un rôle précis. Voici comment la comprendre ligne par ligne :
SELECT
: liste les colonnes que vous souhaitez afficher.FROM commandes
: définit la table principale.INNER JOIN clients
: relie la table clients
à commandes
.ON commandes.client_id = clients.id
: condition de jointure entre la clé étrangère et la clé primaire.Il existe plusieurs types de jointures selon le résultat attendu :
LEFT JOIN
: affiche toutes les lignes de la table de gauche (même si aucune correspondance dans la table de droite).RIGHT JOIN
: l’inverse du LEFT JOIN (moins utilisé).FULL JOIN
: affiche toutes les lignes, qu’il y ait ou non correspondance (peu supporté par certains SGBD).La requête suivante affiche les commandes passées en 2025, avec le nom et l’email du client, triées de la plus récente à la plus ancienne :
SELECT clients.nom, clients.email, commandes.date_commande
FROM commandes
INNER JOIN clients ON commandes.client_id = clients.id
WHERE commandes.date_commande >= '2025-01-01'
ORDER BY commandes.date_commande DESC;
Pour garder des requêtes lisibles, efficaces et fiables, voici quelques conseils à appliquer dès vos premières jointures :
clients.nom AS nom_client
).INNER JOIN
, plus simples à maîtriser.WHERE
pour éviter de traiter un volume trop important.*
sauf pour tester).Vous êtes désormais capable d’extraire des données croisées à partir de plusieurs tables. C’est ce qui transforme une base de données en véritable outil d’analyse.
Créer une base de données en SQL, ce n’est pas juste apprendre une syntaxe : c’est comprendre comment structurer l’information, relier des données entre elles, et poser les fondations solides d’un projet digital, analytique ou métier.
En suivant ce tutoriel pas à pas, vous avez appris à :
CREATE DATABASE
FOREIGN KEY
INSERT INTO
SELECT
et les jointures SQLCe que vous venez d’apprendre est directement applicable à des contextes très variés : création de site web, application métier, automatisation de reporting, gestion de stock, CRM… Et ce n’est qu’un début.
Pour aller plus loin, vous pouvez approfondir l'écriture de requêtes complexes, les vues, les index, la sécurité, ou encore l'optimisation des performances. Ces compétences sont particulièrement recherchées dans les métiers du web, de la data et du développement.
À savoir : Sur oùFormer, vous pouvez comparer et réserver des formations SQL adaptées à tous les niveaux : en ligne ou en présentiel, avec ou sans certification, pour monter en compétence concrètement, à votre rythme.
Apprendre SQL, c’est gagner en autonomie, en rigueur et en capacité d’analyse. Et avec une base aussi solide que celle que vous venez de poser, vous êtes prêt à faire parler vos données.
Infos
Trouver le bon CACESComprendre l'habilitation éléctriqueMentions légalesConditions d'utilisationNous utilisons des cookies pour vous fournir l'ensemble de nos services, notamment la recherche et les alertes. En acceptant, vous consentez à notre utilisation de ces cookies.
Choisir mes préférences