MySql: Tinyint(2) vs tinyint (1) - Quelle est la différence?
 j'ai connu boolean dans mysql comme tinyint (1) .  
  Aujourd'hui , je vois une table avec défini un entier comme  tinyint(2) , et aussi d'autres comme  int(4) ,  int(6)  ...   
que signifie la taille dans le champ de type entier et tinyint ?
4 réponses
signifie largeur d'affichage
"que vous utilisiez tinyint(1) ou tinyint(2), cela ne fait aucune différence.
j'utilise toujours tinyint(1) et int(11), j'ai utilisé plusieurs clients mysql (navicat, sequel pro).
ça ne veut rien dire du tout! J'ai fait un test, au-dessus des clients ou même le client en ligne de commande semble l'ignorer.
  mais,    largeur d'affichage     est le plus important si vous utilisez l'option  ZEROFILL , par exemple votre tableau a les 2 colonnes suivantes:  
Un tinyint(2) zerofill ne
B tinyint (4) zerofill
  les deux colonnes ont la valeur de 1, la sortie pour la colonne    A    serait  01  et  0001  pour    B    , comme vu dans screenshot ci-dessous:)  
 le (m)  indique la largeur d'affichage de la colonne; des applications telles que le client MySQL l'utilisent pour afficher les résultats de la requête.  
par exemple:
| v   | a   |  b  |   c |
+-----+-----+-----+-----+
| 1   | 1   |  1  |   1 |
| 10  | 10  | 10  |  10 |
| 100 | 100 | 100 | 100 |
  
    ici  a ,  b  et  c  utilisent respectivement  TINYINT(1) ,  TINYINT(2)  et  TINYINT(3) . Comme vous pouvez le voir, il rembourre les valeurs sur le côté gauche en utilisant la largeur d'affichage.  
  il est important de noter que il n'affecte pas la plage de valeurs acceptée pour ce type particulier, c'est-à-dire  TINYINT(1)  accepte toujours  [-128 .. 127]  .  
mysql> CREATE TABLE tin3(id int PRIMARY KEY,val TINYINT(10) ZEROFILL);
Query OK, 0 rows affected (0.04 sec)
mysql> INSERT INTO tin3 VALUES(1,12),(2,7),(4,101);
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0
mysql> SELECT * FROM tin3;
+----+------------+
| id | val        |
+----+------------+
|  1 | 0000000012 |
|  2 | 0000000007 |
|  4 | 0000000101 |
+----+------------+
3 rows in set (0.00 sec)
mysql>
mysql> SELECT LENGTH(val) FROM tin3 WHERE id=2;
+-------------+
| LENGTH(val) |
+-------------+
|          10 |
+-------------+
1 row in set (0.01 sec)
mysql> SELECT val+1 FROM tin3 WHERE id=2;
+-------+
| val+1 |
+-------+
|     8 |
+-------+
1 row in set (0.00 sec)
  
    	                à propos de L'INT, TINYINT... Il s'agit de différents types de données, INT est un nombre de 4 octets, TINYINT est un nombre de 1 octet. Plus d'informations ici - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT .
la syntaxe du type de données TINYINT est TINYINT(M), où M indique la largeur d'affichage maximale (utilisée seulement si votre client MySQL le supporte).