🛢️Parcours Fioul GroupéMySQL · Chapitre 12
Accueil › MySQL › Chapitre 12
Chapitre 12 / 16

Les types de données

Choisir le bon type pour chaque colonne, c'est gagner en place, en performance et en justesse. Tour d'horizon des familles de types MySQL.

1 Notion

Types numériques

TypeUsage
TINYINT … BIGINTentiers ; TINYINT(1) sert de booléen
DECIMAL(p,s)décimal exact — obligatoire pour la monnaie
FLOAT / DOUBLEapproché — mesures, jamais de l'argent
UNSIGNEDinterdit le négatif, double la plage positive
Argent = DECIMAL — le prix au litre du fioul se stocke en DECIMAL(6,3) (ex. 1,082 €/L), jamais en FLOAT qui introduit des erreurs d'arrondi.
2 Notion

Types chaînes

TypeUsage
CHAR(n)longueur fixe (codes, ex. code postal)
VARCHAR(n)longueur variable — le choix courant
TEXTtextes longs
ENUM('a','b')liste fermée (ex. statut de campagne)
Encodage — utilisez utf8mb4 (vrai UTF-8, accents et émojis) plutôt que l'ancien utf8 incomplet de MySQL.
3 Notion

Dates, JSON, spatial

TypeContenu
DATEAAAA-MM-JJ (ex. date_cloture)
DATETIMEdate + heure, sans fuseau
TIMESTAMPdate + heure, converti selon le fuseau

MySQL 8 gère aussi le JSON natif, les types spatiaux (POINT, utile pour géolocaliser une commune de campagne) et SET. À réserver aux besoins réels : un schéma bien normalisé reste souvent préférable au JSON fourre-tout.

🛢️ Sur le projet Fioul Groupé

Les types justes pour le domaine fioul : prix_litre DECIMAL(6,3), litres INT UNSIGNED, statut ENUM('OUVERTE','CLOTUREE','ANNULEE'), date_cloture DATE, et un POINT pour situer la commune sur la carte de l'appli.

À retenir
← Chapitre 11