PostgreSQL - 3.3 Les principaux types de données SQL

Chaque colonne d'une table a un type de données, qui définit les valeurs acceptées. Bien choisir le type protège vos données et évite des erreurs. PostgreSQL propose beaucoup de types. Cette leçon présente les plus courants, avec leur usage typique.

Les types numériques

INTEGER stocke les nombres entiers. On le retrouve pour un âge ou une quantité, c'est le type numérique le plus utilisé.

NUMERIC stocke les nombres décimaux, comme 1,50 pour une mesure ou 19,99 pour un prix. Il faut préciser deux paramètres : le nombre maximum de chiffres, et le nombre de chiffres après la virgule.

SERIAL est propre à PostgreSQL. Il ne stocke pas une valeur choisie par l'utilisateur : la valeur est incrémentée automatiquement, à partir de un. Il est souvent utilisé pour les identifiants.

Les chaînes de caractères

CHAR stocke des chaînes de longueur fixe. On peut l'utiliser pour une civilité ou un sexe.

VARCHAR stocke des chaînes de longueur variable, avec un maximum défini. C'est le type le plus utilisé pour un nom, un prénom ou un e-mail.

TEXT stocke des chaînes sans maximum fixé. Il convient aux textes longs, comme les commentaires ou les descriptions de produits.

Dates, booléens et listes de valeurs

TIME stocke l'heure, les minutes et les secondes au format 24 heures. DATE stocke une date au format année-mois-jour, comme 2000-01-01. TIMESTAMP combine la date et l'heure, utile pour une commande ou une livraison.

BOOLEAN ne stocke que vrai ou faux, par exemple pour indiquer si un article est en stock. ENUM n'accepte que les valeurs d'une liste définie à l'avance, comme les jours de la semaine. Une valeur hors de la liste provoque une erreur.

En résumé

Chaque colonne doit recevoir un type adapté à la donnée. Les nombres, les chaînes, les dates, les booléens et les énumérations couvrent la plupart des besoins. Le choix du type garantit la validité des données.

Points clés

  • INTEGER convient aux nombres entiers, comme un âge ou une quantité.
  • NUMERIC convient aux décimaux, avec précision et nombre de chiffres après la virgule.
  • VARCHAR a une longueur variable avec un maximum, tandis que CHAR a une longueur fixe.
  • TIMESTAMP combine la date et l'heure.
  • ENUM limite les valeurs à une liste définie à l'avance.

Questions fréquentes

Quelle est la différence entre CHAR et VARCHAR ?

CHAR a une longueur fixe. VARCHAR a une longueur variable, avec un maximum défini à la création de la colonne.

Quand utiliser TEXT ?

Pour les longs textes sans maximum fixé, comme une description de produit ou un commentaire.

Que se passe-t-il si une valeur absente d'un ENUM est saisie ?

PostgreSQL renvoie une erreur, car la valeur ne fait pas partie de la liste autorisée.