Retour à la formation
Aperçu offertModule 1 : Fondamentaux de SQL et prise en main des bases de données

Comprendre les tables, les lignes, les colonnes et les types de données

Extrait de la formation SQL : Maîtrise des Bases de Données

Leçon 1.2 — Comprendre les tables, les lignes, les colonnes et les types de données

Présentation de la leçon

Une base de données relationnelle organise les informations dans des tables. Chaque table contient des colonnes qui décrivent les caractéristiques des données et des lignes qui représentent les différents enregistrements.

Avant de rédiger des requêtes SQL, il est indispensable de savoir lire et interpréter correctement la structure d’une table.

Dans cette leçon, vous apprendrez à distinguer une table, une ligne, une colonne, une valeur, un enregistrement et un type de donnée.


Objectifs pédagogiques

À la fin de cette leçon, vous serez capable de :

  • expliquer ce qu’est une table relationnelle ;
  • distinguer une ligne d’une colonne ;
  • identifier un enregistrement ;
  • comprendre le rôle des types de données ;
  • choisir un type adapté à une information métier ;
  • distinguer une valeur nulle, une chaîne vide et la valeur zéro ;
  • appliquer des règles professionnelles de nommage des tables et colonnes ;
  • analyser la structure d’une table existante.

1. Qu’est-ce qu’une table ?

Une table est une structure utilisée pour enregistrer des données relatives à un même sujet.

Une base commerciale peut, par exemple, contenir les tables suivantes :

  • clients ;
  • produits ;
  • commandes ;
  • paiements ;
  • employes.

Chaque table doit idéalement représenter une seule catégorie d’information.

Exemple : la table clients doit contenir les informations relatives aux clients, tandis que la table produits doit contenir les informations relatives aux produits.

Exemple de table clients

client_id nom prenom email ville date_inscription 1 Joseph Marie marie.joseph@email.com Port-au-Prince 2026-01-15 2 Pierre Jean jean.pierre@email.com Cap-Haïtien 2026-02-03 3 Charles Nadia nadia.charles@email.com Jacmel 2026-02-18

2. Qu’est-ce qu’une colonne ?

Une colonne représente une caractéristique ou un attribut des éléments enregistrés dans une table.

Dans la table clients, les colonnes sont :

  • client_id ;
  • nom ;
  • prenom ;
  • email ;
  • ville ;
  • date_inscription.

Chaque colonne doit contenir un seul type d’information.

Exemple

La colonne ville doit uniquement contenir des villes :

ville Port-au-Prince Cap-Haïtien Jacmel

Elle ne devrait pas contenir une information composée comme :

code
Port-au-Prince, téléphone : 3700-0000

Dans ce cas, la ville et le téléphone doivent être enregistrés dans deux colonnes différentes.

Bonne pratique : une colonne doit représenter une seule information élémentaire.

3. Qu’est-ce qu’une ligne ?

Une ligne représente un élément complet enregistré dans une table.

Elle est également appelée enregistrement ou record.

Dans la table clients, chaque ligne représente un client différent.

client_id nom prenom ville 2 Pierre Jean Cap-Haïtien

Cette ligne représente un seul client :

  • identifiant : 2 ;
  • nom : Pierre ;
  • prénom : Jean ;
  • ville : Cap-Haïtien.

4. Qu’est-ce qu’une cellule ou une valeur ?

Une cellule correspond à l’intersection entre une ligne et une colonne.

Elle contient une valeur précise.

Dans l’exemple précédent, la valeur située à l’intersection de la ligne du client numéro 2 et de la colonne ville est :

code
Cap-Haïtien

Une valeur doit respecter le type de donnée défini pour sa colonne.

Résumé : une table contient des colonnes et des lignes. Chaque cellule contient une valeur.

5. Comprendre la granularité d’une table

La granularité indique ce que représente exactement une ligne d’une table.

Exemples :

  • dans la table clients, une ligne représente un client ;
  • dans la table produits, une ligne représente un produit ;
  • dans la table commandes, une ligne représente une commande ;
  • dans la table paiements, une ligne représente un paiement ;
  • dans la table transactions, une ligne représente une transaction.

Définir correctement la granularité évite de mélanger plusieurs niveaux d’information dans une même table.

Exemple problématique

client commandes Marie Joseph 1001, 1003, 1010

La colonne commandes contient plusieurs valeurs. Cette structure sera difficile à analyser.

Structure recommandée

commande_id client_id 1001 1 1003 1 1010 1

Chaque ligne représente désormais une commande distincte.


6. Qu’est-ce qu’un type de donnée ?

Un type de donnée définit la nature des valeurs pouvant être enregistrées dans une colonne.

Le système utilise les types de données pour contrôler les valeurs, optimiser le stockage et exécuter correctement les opérations.

Exemple

Une colonne destinée à contenir un prix ne doit pas être configurée de la même manière qu’une colonne contenant un nom ou une date.

Colonne Exemple Type recommandé client_id 125 INTEGER nom Joseph VARCHAR prix 1250.50 DECIMAL date_inscription 2026-07-31 DATE est_actif TRUE BOOLEAN

7. Les principaux types numériques

INTEGER

Le type INTEGER permet de stocker des nombres entiers.

Exemples :

  • nombre de produits ;
  • quantité en stock ;
  • nombre d’employés ;
  • identifiant numérique.
sql
quantite INTEGER

Exemples de valeurs valides :

code
015250-10

DECIMAL ou NUMERIC

Le type DECIMAL, également appelé NUMERIC, permet de stocker des nombres décimaux avec précision.

Il est recommandé pour :

  • les prix ;
  • les montants financiers ;
  • les taux ;
  • les salaires ;
  • les chiffres d’affaires.
sql
prix DECIMAL(10, 2)

Dans DECIMAL(10, 2) :

  • 10 correspond au nombre total maximal de chiffres ;
  • 2 correspond au nombre de chiffres après la virgule.

Exemples de valeurs :

code
25.001250.5099999999.99
Bonne pratique : pour les montants financiers, privilégiez DECIMAL plutôt qu’un type approximatif comme FLOAT.

FLOAT ou REAL

Les types FLOAT et REAL enregistrent des nombres décimaux de manière approximative.

Ils peuvent être adaptés aux mesures scientifiques, mais sont moins recommandés pour les données financières exigeant une précision stricte.


8. Les types textuels

VARCHAR

Le type VARCHAR permet de stocker du texte de longueur variable.

sql
nom VARCHAR(100)

Cette définition permet de stocker un texte contenant au maximum 100 caractères.

Exemples d’utilisation :

  • nom ;
  • prénom ;
  • adresse électronique ;
  • ville ;
  • statut ;
  • numéro de téléphone.

TEXT

Le type TEXT permet de stocker des textes plus longs.

sql
description TEXT

Il peut être utilisé pour :

  • une description de produit ;
  • un commentaire ;
  • une observation ;
  • une note détaillée.

Pourquoi un numéro de téléphone doit-il être du texte ?

Même s’il contient des chiffres, un numéro de téléphone ne sert généralement pas à effectuer des calculs.

Il peut également contenir :

  • un signe plus ;
  • des espaces ;
  • des parenthèses ;
  • des zéros au début.

Exemple :

code
+509 37 00 00 00

Le type recommandé est donc :

sql
telephone VARCHAR(30)

9. Les types de date et d’heure

DATE

Le type DATE permet de stocker une date sans heure.

sql
date_naissance DATE

Format SQL recommandé :

code
YYYY-MM-DD

Exemple :

code
2026-07-31

TIME

Le type TIME permet de stocker une heure.

sql
heure_ouverture TIME

Exemple :

code
08:30:00

TIMESTAMP

Le type TIMESTAMP permet de stocker simultanément une date et une heure.

sql
date_creation TIMESTAMP

Exemple :

code
2026-07-31 16:30:00

Le type TIMESTAMP est utile pour enregistrer :

  • la date et l’heure d’une transaction ;
  • la date de création d’un compte ;
  • la date de modification d’un enregistrement ;
  • l’heure d’une connexion.

10. Le type BOOLEAN

Le type BOOLEAN permet de représenter une condition vraie ou fausse.

sql
est_actif BOOLEAN

Valeurs possibles :

  • TRUE ;
  • FALSE ;
  • éventuellement NULL.

Exemples métier

  • un client est actif ou inactif ;
  • une commande est payée ou non payée ;
  • un employé est actuellement présent ou absent ;
  • un produit est disponible ou indisponible.

11. Choisir le bon type de donnée

Le choix du type dépend de la nature de l’information et de son utilisation.

Information Type recommandé Justification Nom du client VARCHAR Information textuelle courte Quantité en stock INTEGER Nombre entier Prix du produit DECIMAL(10,2) Montant financier précis Date de naissance DATE Date sans heure Date d’une transaction TIMESTAMP Date et heure nécessaires Numéro de téléphone VARCHAR Peut contenir des signes et des zéros initiaux Client actif BOOLEAN Valeur vraie ou fausse

12. Comprendre la valeur NULL

La valeur NULL indique qu’une information est absente, inconnue ou non renseignée.

Elle ne signifie pas :

  • zéro ;
  • texte vide ;
  • faux ;
  • aucun caractère.

Exemple

client_id nom telephone 1 Joseph +509 37 00 00 00 2 Pierre NULL

Pour le client Pierre, le numéro de téléphone est inconnu ou n’a pas été renseigné.

Différence entre NULL, zéro et texte vide

Valeur Signification NULL Information inconnue ou absente 0 Valeur numérique connue et égale à zéro '' Texte connu, mais vide FALSE Condition explicitement fausse
Attention : NULL n’est pas égal à zéro et n’est pas égal à une chaîne vide.

13. Exemple de création d’une table

La commande suivante crée une table simple appelée clients.

sql
CREATE TABLE clients (    client_id INTEGER,    nom VARCHAR(100),    prenom VARCHAR(100),    email VARCHAR(150),    telephone VARCHAR(30),    ville VARCHAR(100),    date_inscription DATE,    est_actif BOOLEAN);

Lecture de la structure

  • client_id INTEGER : identifiant numérique du client ;
  • nom VARCHAR(100) : nom contenant au maximum 100 caractères ;
  • prenom VARCHAR(100) : prénom du client ;
  • email VARCHAR(150) : adresse électronique ;
  • telephone VARCHAR(30) : numéro de téléphone ;
  • ville VARCHAR(100) : ville de résidence ;
  • date_inscription DATE : date d’inscription ;
  • est_actif BOOLEAN : statut actif ou inactif.

La création détaillée des tables sera étudiée dans un module ultérieur. Cet exemple sert uniquement à visualiser la relation entre les colonnes et leurs types de données.


14. Afficher les données d’une table

La requête suivante permet d’afficher toutes les colonnes et toutes les lignes de la table clients.

sql
SELECT *FROM clients;

Décomposition :

  • SELECT : demande d’afficher des données ;
  • * : toutes les colonnes ;
  • FROM clients : données provenant de la table clients.

Afficher uniquement certaines colonnes

sql
SELECT nom, prenom, villeFROM clients;

Cette requête affiche uniquement les colonnes nom, prenom et ville.


15. Règles professionnelles de nommage

Des noms cohérents facilitent la lecture, la maintenance et le partage des scripts.

Règle 1 — Utiliser des noms explicites

À éviter :

code
tab1col1xinfo

Recommandé :

code
clientsdate_commandemontant_totalstatut_paiement

Règle 2 — Éviter les espaces

À éviter :

code
date de commande

Recommandé :

code
date_commande

Règle 3 — Éviter les caractères spéciaux

À éviter :

code
prénommontant€numéro-client

Recommandé :

code
prenommontant_eurnumero_client

Règle 4 — Utiliser une convention uniforme

Une convention courante consiste à utiliser le format snake_case.

Exemples :

code
date_inscriptionnom_produitmontant_totalnombre_commandes

Règle 5 — Utiliser des noms au singulier ou au pluriel de manière cohérente

Deux conventions sont possibles :

  • tables au pluriel : clients, produits, commandes ;
  • tables au singulier : client, produit, commande.

L’important est de choisir une convention et de l’utiliser dans toute la base.


16. Erreurs fréquentes de conception

Erreur 1 — Stocker plusieurs informations dans une seule colonne

À éviter :

code
nom_complet = "Marie Joseph"

Structure préférable :

code
nom = "Joseph"prenom = "Marie"

Erreur 2 — Stocker plusieurs valeurs dans une même cellule

À éviter :

code
telephones = "37000000, 38000000, 39000000"

Cette information doit être séparée ou gérée dans une table spécifique lorsque plusieurs numéros sont autorisés.

Erreur 3 — Enregistrer une date comme un texte non standardisé

À éviter :

code
31 juillet 202631/07/26juillet 31

Format SQL recommandé :

code
2026-07-31

Erreur 4 — Enregistrer un prix comme du texte

À éviter :

code
"1 250 gourdes"

Structure recommandée :

code
prix = 1250.00devise = "HTG"

Erreur 5 — Utiliser un nombre pour un téléphone

Un numéro de téléphone est une information textuelle, car les opérations mathématiques n’ont pas de sens sur cette donnée.


17. Étude de cas guidée : concevoir une table produits

Contexte

Une entreprise souhaite enregistrer les informations relatives à ses produits.

Les informations disponibles sont :

  • numéro du produit ;
  • nom du produit ;
  • catégorie ;
  • description ;
  • prix unitaire ;
  • quantité en stock ;
  • date d’ajout ;
  • produit actif ou inactif.

Structure proposée

Colonne Type Exemple produit_id INTEGER 101 nom_produit VARCHAR(150) Ordinateur portable categorie VARCHAR(100) Informatique description TEXT Ordinateur destiné aux professionnels prix_unitaire DECIMAL(10,2) 850.00 quantite_stock INTEGER 25 date_ajout DATE 2026-07-31 est_actif BOOLEAN TRUE

Code SQL correspondant

sql
CREATE TABLE produits (    produit_id INTEGER,    nom_produit VARCHAR(150),    categorie VARCHAR(100),    description TEXT,    prix_unitaire DECIMAL(10, 2),    quantite_stock INTEGER,    date_ajout DATE,    est_actif BOOLEAN);

18. Mini-activité guidée

Pour chaque information ci-dessous, choisissez le type de donnée le plus adapté.

  1. Nom d’un employé
  2. Nombre de jours d’absence
  3. Salaire mensuel
  4. Date d’embauche
  5. Heure de début d’une réunion
  6. Statut actif ou inactif
  7. Commentaire d’évaluation
  8. Numéro de téléphone

Correction

Information Type recommandé Nom d’un employé VARCHAR Nombre de jours d’absence INTEGER Salaire mensuel DECIMAL(10,2) Date d’embauche DATE Heure de réunion TIME Statut actif BOOLEAN Commentaire d’évaluation TEXT Numéro de téléphone VARCHAR

19. À retenir

  • Une table représente une catégorie d’information.
  • Une colonne représente une caractéristique.
  • Une ligne représente un enregistrement.
  • Une cellule contient une valeur.
  • La granularité définit ce que représente une ligne.
  • Chaque colonne possède un type de donnée.
  • INTEGER stocke des nombres entiers.
  • DECIMAL stocke des nombres décimaux précis.
  • VARCHAR et TEXT stockent du texte.
  • DATE, TIME et TIMESTAMP stockent des informations temporelles.
  • BOOLEAN représente une valeur vraie ou fausse.
  • NULL indique qu’une information est absente ou inconnue.

20. Vérification des acquis

  1. Qu’est-ce qu’une table ?
  2. Quelle est la différence entre une ligne et une colonne ?
  3. Qu’est-ce qu’un enregistrement ?
  4. Que représente une cellule ?
  5. Qu’est-ce que la granularité d’une table ?
  6. Quel type utiliser pour un prix ?
  7. Quel type utiliser pour un numéro de téléphone ?
  8. Quelle est la différence entre DATE et TIMESTAMP ?
  9. Que signifie la valeur NULL ?
  10. Pourquoi faut-il éviter les espaces dans les noms de colonnes ?

Prochaine leçon

Dans la prochaine leçon, vous étudierez les clés et les relations entre les tables :

  • clé primaire ;
  • clé étrangère ;
  • unicité ;
  • relation un-à-un ;
  • relation un-à-plusieurs ;
  • relation plusieurs-à-plusieurs ;
  • intégrité référentielle.

Comprendre les tables, les lignes, les colonnes et les types de données | SQL 1.2

Dans cette deuxième leçon de notre formation SQL, découvrez comment les données sont organisées dans une base relationnelle.

Vous apprendrez à différencier une table, une ligne, une colonne, une cellule et un enregistrement. La vidéo présente également les principaux types de données PostgreSQL : INTEGER, NUMERIC, VARCHAR, TEXT, BOOLEAN, DATE et TIMESTAMP.

🎯 Niveau : débutant 🗄️ Système utilisé : PostgreSQL 🛠️ Environnement : DBeaver

Formation proposée par Accurametrics Data Solutions.

Conception pédagogique : Anderson Denart.

Abonnez-vous pour suivre la formation SQL complète.