La documentation semble assez claire à ce sujet :
Attributs de type numérique
MySQL prend en charge une extension pour éventuellement spécifier la largeur d'affichage des types de données entiers entre parenthèses après le mot-clé de base pour le type. Par exemple, INT(4) spécifie un INT avec une largeur d'affichage de quatre chiffres. Cette largeur d'affichage facultative peut être utilisée par des applications pour afficher des valeurs entières ayant une largeur inférieure à la largeur spécifiée pour la colonne en les remplissant à gauche avec des espaces. (C'est-à-dire que cette largeur est présente dans les métadonnées renvoyées avec les jeux de résultats. Qu'elle soit utilisée ou non dépend de l'application.)
La largeur d'affichage ne limite pas la plage de valeurs pouvant être stockées dans la colonne. Cela n'empêche pas non plus les valeurs plus larges que la largeur d'affichage de la colonne d'être affichées correctement. Par exemple, une colonne spécifiée en tant que SMALLINT(3) a la plage SMALLINT habituelle de -32768 à 32767, et les valeurs en dehors de la plage autorisée par trois chiffres sont affichées en entier en utilisant plus de trois chiffres.
http://dev.mysql.com/doc/refman /5.5/fr/types-numeriques.html