Eu sabia booleano no mysql como tinyint (1)
.
Hoje vejo uma mesa com definido um inteiro como tinyint(2)
, e também outros gostam int(4)
, int(6)
...
O que o tamanho significa no campo do tipo inteiro e tinyint?
mysql
sqldatatypes
realtebo
fonte
fonte
Respostas:
Significa largura de exibição
Se você usa tinyint (1) ou tinyint (2), isso não faz nenhuma diferença.
Eu sempre uso tinyint (1) e int (11), usei vários clientes mysql (navicat, sequel pro).
Isso não significa nada! Fiz um teste, todos os clientes acima ou mesmo o cliente da linha de comando parecem ignorar isso.
Porém, a largura da exibição é mais importante se você estiver usando a
ZEROFILL
opção, por exemplo, sua tabela possui as 2 colunas seguintes:Um zerofill tinyint (2)
B tinyint (4) zerofill
ambas as colunas têm o valor 1, a saída para a coluna A seria
01
e0001
para B , como visto na captura de tela abaixo :)fonte
O
(m)
indica a largura de exibição da coluna; aplicativos como o cliente MySQL fazem uso disso ao mostrar os resultados da consulta.Por exemplo:
Aqui
a
,b
ec
estão usandoTINYINT(1)
,TINYINT(2)
eTINYINT(3)
respectivamente. Como você pode ver, ele preenche os valores no lado esquerdo usando a largura da tela.É importante observar que isso não afeta o intervalo de valores aceito para esse tipo específico, ou seja,
TINYINT(1)
ainda aceita[-128 .. 127]
.fonte
fonte
Sobre o INT, TINYINT ... Esses são tipos de dados diferentes, INT é um número de 4 bytes, TINYINT é um número de 1 byte. Mais informações aqui - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT .
A sintaxe do tipo de dados TINYINT é TINYINT (M), onde M indica a largura máxima de exibição (usada apenas se o seu cliente MySQL suportar).
Atributos de tipo numérico .
fonte