Vous vous rappelez la longue liste de types de données disponibles dans la fenêtre de création de colonne de SQL Power Architect ? Eh bien, je vais tous vous les présenter et il faudra tout retenir... Non je plaisante !! Je vais vous présenter les principaux types de données utilisés.
Cet avertissement étant donné, je vous rappelle que j'ai fait le choix d'utiliser un outil de modélisation générique (SQL Power Architect). Eh bien, au moment de la génération du script SQL de création de la base de données, ce dernier va gérer automatiquement les spécificités du SGBD de destination pour utiliser non seulement la bonne syntaxe SQL mais également les types de données du SGBD.
Le texte
Les 3 principaux types permettant de stocker du texte sont :
Type | Précision | Description |
---|---|---|
| p : nombre de caractères | Texte de taille fixe (p caractères), complété par des espaces à droite si besoin |
| p : nombre de caractères | Texte de taille variable (p caractères maximum) |
|
| Texte de taille variable illimitée |
Les types VARCHAR
et LONGVARCHAR
(ou TEXT
) sont les types que vous devriez utiliser en général.
Réservez le type CHAR
aux cas spécifiques où les textes ont une taille fixe (comme un code postal ou un numéro de sécurité sociale). Mais même dans ce cas, vous n'êtes pas obligé d'utiliser le type CHAR
, le type VARCHAR
peut convenir.
Les nombres
Il faut distinguer 2 cas :
les nombres entiers
les nombres décimaux
Les nombres entiers
Pour les nombres entiers, ce qui importe, ce sont les valeurs minimale et maximale à stocker.
Type | Taille | Plage de valeur |
---|---|---|
| 2 octets (16 bits) | -32 768 à +32 767 ou -2¹⁵ à +2¹⁵-1 |
| 4 octets (32 bits) | -2 147 483 648 à +2 147 483 647 ou -2³¹ à +2³¹-1 |
| 8 octets (64 bits) | -9 223 372 036 854 775 808 à +9 223 372 036 854 775 807 ou -2⁶³ à +2⁶³-1 |
| variable | nombre positif ou négatif avec un maximum de p chiffres |
Le type INTEGER
est le choix le plus commun. Il propose un bon compromis entre la taille de stockage, la plage de valeurs possibles et les performances.
Choisissez le type SMALLINT
dans le cas où vous avez des contraintes d'utilisation d'espace disque, et le type BIGINT
si vous devez stocker des nombres dépassant les capacités du type INTEGER
.
Les nombres décimaux
Je parle bien des nombres décimaux (ensemble ⅅ) et pas des nombres rationnels ou réels (ensemble ℚ ou ℝ). En effet, il n'est pas possible de stocker des nombres avec une infinité de chiffres après la virgule.
Le type à utiliser est DECIMAL(p,s)
, ou NUMERIC(p,s)
(DECIMAL
et NUMERIC
sont des synonymes). Les paramètres p (precision) et s (scale) représentent :
p (precision) : le nombre total de chiffres dans le nombre
s (scale) : le nombre de chiffres après la virgule
Ainsi, pour stocker le nombre 123,45
il faut utiliser au minimum un DECIMAL(5,2)
.
Le paramètre s (scale) est facultatif et vaut 0 par défaut. Dans le cas où il est omis, vous allez donc stocker des nombres entiers.
Les dates et les heures
Il y a 3 types pour stocker les dates et les heures.
Type | Format | Description |
---|---|---|
|
| Stocke une date (sans information horaire) |
|
| Stocke une heure (sans la date) |
|
| Stocke une date et l'heure |
Format :
AAAA
: année sur 4 chiffresMM
: mois sur 2 chiffres (commence à01
pour Janvier)JJ
: jour dans le mois sur 2 chiffres (commence à01
pour le premier jour du mois)hh
: heure sur 2 chiffres (de00
à23
)mm
: minute sur 2 chiffres (de00
à59
)ss
: seconde sur 2 chiffres (de00
à59
)nnn
: milliseconde sur 3 chiffres (de000
à999
)
Les booléens
Une information booléenne est une information qui ne peut avoir que 2 valeurs : vrai ou faux.
Pour stocker ce genre d'information, il convient d'utiliser le type BOOLEAN
.
Autres types
Il existe bien d'autres types, mais je ne vais pas m'y attarder car leur utilisation est bien moins fréquente. Je vous laisse le soin de regarder la documentation de votre SGBD pour plus d'information.