Je connaissais le booléen 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 un champ de type integer et tinyint?
mysql
sqldatatypes
realtebo
la source
la source
Réponses:
Cela 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).
Cela ne veut rien dire du tout! J'ai exécuté un test, tous les clients ci-dessus ou même le client de ligne de commande semble ignorer cela.
Mais, la largeur d'affichage est plus importante si vous utilisez l'
ZEROFILL
option, par exemple votre tableau a les 2 colonnes suivantes:Un zerofill minuscule (2)
B tinyint (4) zerofill
les deux colonnes ont la valeur 1, la sortie pour la colonne A serait
01
et0001
pour B , comme le montre la capture d'écran ci-dessous :)la source
Le
(m)
indique la largeur d'affichage de la colonne; des applications telles que le client MySQL en font usage lors de l'affichage des résultats de la requête.Par exemple:
Ici
a
,b
etc
utilisentTINYINT(1)
,TINYINT(2)
etTINYINT(3)
respectivement. Comme vous pouvez le voir, il remplit les valeurs sur le côté gauche en utilisant la largeur d'affichage.Il est important de noter que cela n'affecte pas la plage de valeurs acceptée pour ce type particulier, c'est-à-dire
TINYINT(1)
qu'il accepte toujours[-128 .. 127]
.la source
la source
À propos de INT, TINYINT ... Ce sont différents types de données, INT est un nombre à 4 octets, TINYINT est un nombre à 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 uniquement si votre client MySQL la prend en charge).
Attributs de type numérique .
la source