On aurait carrément pu commencer notre cours par cette leçon. Mais dans ce cas, tes premiers exos et lectures auraient été ultra barbants. Si tu décidais de bosser une journée comme ouvrier du bâtiment, tu voudrais commencer par apprendre les types et formes de briques ou piloter une grue pendant 30 minutes ? Voilà, c’est ça :)
L’élève, c’est pas un vase à remplir, c’est une torche à allumer (et faut pas la cramer non plus) ! J’essaie pas de tout te balancer d’un coup, mais de faire en sorte que ça t’intéresse. Et là, c’est pile le bon moment pour découvrir les types de données.
Un type de données dans PostgreSQL, c’est juste une indication sur la nature de l’info qui va être stockée dans une colonne de table. Genre, des nombres, du texte ou des dates. C’est un peu comme choisir une boîte pour ranger tes affaires : petite pour les babioles, grande pour les pompes, transparente pour les fils, histoire de voir direct ce qu’il y a dedans.
Exemple :
- Si tu veux stocker l’âge d’une personne, tu prends un type numérique.
- Pour enregistrer un prénom, tu prends un type texte.
- Et pour noter la date d’inscription, logique d’utiliser un type date.
Pourquoi on a besoin des types de données ?
Les types de données servent à :
- Limiter ce qu’on peut rentrer. Par exemple, tu pourras pas mettre du texte là où on attend un nombre.
- Structurer les données. Quand tu sais ce qu’il y a dans chaque colonne, c’est plus simple de faire des requêtes et d’analyser les infos.
- Économiser des ressources. Avec les bons types, tu consommes moins de mémoire.
- Garder la précision. Genre, pour les calculs financiers, il faut des nombres à virgule fixe.
Un exemple pour t’inspirer
Imagine une table pour stocker des infos sur les étudiants :
id |
name |
age |
enrollment_date |
|---|---|---|---|
| 1 | Otto Mars | 22 | 2023-01-15 |
| 2 | Anna Song | 19 | 2023-02-10 |
Ici, id — c’est un identifiant unique (nombre), name — du texte, age — un nombre pour l’âge, et enrollment_date — la date d’inscription de l’étudiant. Tous ces champs ont des types différents, parce qu’ils décrivent des aspects différents de l’objet.
Classification des types de données dans PostgreSQL
PostgreSQL est super flexible pour gérer les types de données. Voilà un petit résumé des catégories.
Les grandes familles de types de données :
Types numériques
- Pour stocker des entiers (genre quantité, identifiant) et des nombres à virgule (genre de l’argent).
- Exemples :
INTEGER,NUMERIC,FLOAT.
Types texte
- Pour stocker du texte et des chaînes (genre prénoms, adresses).
- Exemples :
CHAR,VARCHAR,TEXT.
Type logique
- Pour stocker des valeurs logiques
TRUE(vrai) ouFALSE(faux). - Exemple :
BOOLEAN.
- Pour stocker des valeurs logiques
Types pour gérer les dates et l’heure
- Pour stocker des dates, des heures ou les deux.
- Exemples :
DATE,TIME,TIMESTAMP.
Types spéciaux
- Identifiants uniques, objets JSON, tableaux et plein d’autres trucs.
- Exemples :
UUID,JSONB,ARRAY.
Particularités des types de données dans PostgreSQL
PostgreSQL gère une tonne de types intégrés et te permet de créer des types de données custom (perso). Ça rend cette SGBD super puissante pour les systèmes complexes où t’as des besoins très spécifiques.
Fun fact : dans PostgreSQL, tu peux même stocker des données géographiques ou faire des requêtes du genre "Trouve-moi un café à moins de 500 mètres". Pour ça, il y a des types spéciaux.
Pourquoi indiquer explicitement les types de données ?
Parfois, on se dit que ce serait plus simple de mettre toutes les colonnes en texte — vu que le texte peut tout contenir. Mais c’est une mauvaise idée ! Préciser les bons types de données permet de :
Simplifier les requêtes. Si PostgreSQL sait qu’une colonne contient que des nombres, il fait les calculs plus vite, genre avec SUM().
Éviter les bugs. Imagine que tu enregistres par erreur "trente-deux" au lieu de 32 dans la colonne des âges. Repérer ce genre d’erreur, c’est la galère.
GO TO FULL VERSION