Les types de données
Nous avons vu dans l'introduction qu'une base de données contenait des tables qui, elles-mêmes sont organisées en colonnes,
dans lesquelles sont stockées des données.
En SQL (et dans la plupart des langages informatiques), les données sont séparées en plusieurs types (par exemple : texte,
nombre entier, date…). Lorsque l'on définit une colonne dans une table de la base, il faut donc lui donner un type, et toutes les
données stockées dans cette colonne devront correspondre au type de la colonne. Nous allons donc voir les différents types de
données existant dans MySQL.
Types numériques
On peut subdiviser les types numériques en deux sous-catégories : les nombres entiers, et les nombres décimaux.
Nombres entiers
Les types de données qui acceptent des nombres entiers comme valeur sont désignés par le mot-clé INT, et ses déclinaisons
TINYINT, SMALLINT, MEDIUMINT et BIGINT. La différence entre ces types est le nombre d'octets (donc la place en
mémoire) réservés à la valeur du champ. Voici un tableau reprenant ces informations, ainsi que l'intervalle dans lequel la valeur
peut être comprise pour chaque type.
Type
Nombre d'octets
Minimum
Maximum
TINYINT
1
-128
127
SMALLINT 2
-32768
32767
MEDIUMINT 3
-8388608
8388607
INT
4
-2147483648
2147483647
BIGINT
8
-9223372036854775808 9223372036854775807
Si vous essayez de stocker une valeur en dehors de l'intervalle permis par le type de votre champ, MySQL stockera la
valeur la plus proche. Par exemple, si vous essayez de stocker 12457 dans un TINYINT, la valeur stockée sera 127 ; ce
qui n'est pas exactement pareil, vous en conviendrez. Réfléchissez donc bien aux types de vos champs.
L'attribut UNSIGNED
Vous pouvez également préciser que vos colonnes sont UNSIGNED, c'est-à-dire qu'on ne précise pas s'il s'agit d'une valeur
positive ou négative (on aura donc toujours une valeur positive). Dans ce cas, la longueur de l'intervalle reste la même, mais les
valeurs possibles sont décalées, le minimum valant 0. Pour les TINYINT, on pourra par exemple aller de 0 à 255.
Limiter la taille d'affichage et l'attribut ZEROFILL
Il est possible de préciser le nombre de chiffres minimum à l'affichage d'une colonne de type INT (ou un de ses dérivés). Il suffit
alors de préciser ce nombre entre parenthèses : INT(x). Notez bien que cela ne change pas les capacités de stockage dans la
colonne. Si vous déclarez un INT(2), vous pourrez toujours y stocker 45282 par exemple. Simplement, si vous stockez un
nombre avec un nombre de chiffres inférieur au nombre défini, le caractère par défaut sera ajouté à gauche du chiffre, pour qu'il
prenne la bonne taille. Sans précision, le caractère par défaut est l'espace.
Soyez prudents cependant. Si vous stockez des nombres dépassant la taille d'affichage définie, il est possible que vous
ayez des problèmes lors de l'utilisation de ces nombres, notamment pour des jointures (nous le verrons dans la
deuxième partie).
Cette taille d'affichage est généralement utilisée en combinaison avec l'attribut ZEROFILL. Cet attribut ajoute des zéros à
gauche du nombre lors de son affichage, il change donc le caractère par défaut par '0'. Donc, si vous déclarez une colonne
comme étant
Code : SQL
INT(4) ZEROFILL
Partie 1 : MySQL et les bases du langage SQL
26/414
www.openclassrooms.com
Précédent

- 26/413

Suivant