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.
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-182. 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 :
Elle ne devrait pas contenir une information composée comme :
Port-au-Prince, téléphone : 3700-0000Dans ce cas, la ville et le téléphone doivent être enregistrés dans deux colonnes différentes.
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.
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 :
Cap-HaïtienUne valeur doit respecter le type de donnée défini pour sa colonne.
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 1Chaque 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 125INTEGER
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.
quantite INTEGERExemples de valeurs valides :
015250-10DECIMAL 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.
prix DECIMAL(10, 2)
Dans DECIMAL(10, 2) :
10correspond au nombre total maximal de chiffres ;2correspond au nombre de chiffres après la virgule.
Exemples de valeurs :
25.001250.5099999999.99DECIMAL 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.
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.
description TEXTIl 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 :
+509 37 00 00 00Le type recommandé est donc :
telephone VARCHAR(30)9. Les types de date et d’heure
DATE
Le type DATE permet de stocker une date sans heure.
date_naissance DATEFormat SQL recommandé :
YYYY-MM-DDExemple :
2026-07-31TIME
Le type TIME permet de stocker une heure.
heure_ouverture TIMEExemple :
08:30:00TIMESTAMP
Le type TIMESTAMP permet de stocker simultanément une date et une heure.
date_creation TIMESTAMPExemple :
2026-07-31 16:30:00Le 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.
est_actif BOOLEANValeurs 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 clientVARCHAR
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 NULLPour 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 SignificationNULL
Information inconnue ou absente
0
Valeur numérique connue et égale à zéro
''
Texte connu, mais vide
FALSE
Condition explicitement fausse
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.
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.
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
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 :
tab1col1xinfoRecommandé :
clientsdate_commandemontant_totalstatut_paiementRègle 2 — Éviter les espaces
À éviter :
date de commandeRecommandé :
date_commandeRègle 3 — Éviter les caractères spéciaux
À éviter :
prénommontant€numéro-clientRecommandé :
prenommontant_eurnumero_clientRègle 4 — Utiliser une convention uniforme
Une convention courante consiste à utiliser le format
snake_case.
Exemples :
date_inscriptionnom_produitmontant_totalnombre_commandesRè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 :
nom_complet = "Marie Joseph"Structure préférable :
nom = "Joseph"prenom = "Marie"Erreur 2 — Stocker plusieurs valeurs dans une même cellule
À éviter :
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 :
31 juillet 202631/07/26juillet 31Format SQL recommandé :
2026-07-31Erreur 4 — Enregistrer un prix comme du texte
À éviter :
"1 250 gourdes"Structure recommandée :
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_idINTEGER
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
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é.
- Nom d’un employé
- Nombre de jours d’absence
- Salaire mensuel
- Date d’embauche
- Heure de début d’une réunion
- Statut actif ou inactif
- Commentaire d’évaluation
- 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.
INTEGERstocke des nombres entiers.DECIMALstocke des nombres décimaux précis.VARCHARetTEXTstockent du texte.DATE,TIMEetTIMESTAMPstockent des informations temporelles.BOOLEANreprésente une valeur vraie ou fausse.NULLindique qu’une information est absente ou inconnue.
20. Vérification des acquis
- Qu’est-ce qu’une table ?
- Quelle est la différence entre une ligne et une colonne ?
- Qu’est-ce qu’un enregistrement ?
- Que représente une cellule ?
- Qu’est-ce que la granularité d’une table ?
- Quel type utiliser pour un prix ?
- Quel type utiliser pour un numéro de téléphone ?
- Quelle est la différence entre
DATEetTIMESTAMP? - Que signifie la valeur
NULL? - 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.