Estou usando o MySQL versão 5.1.49-1ubuntu8.1. Isso me permite definir colunas de dois tipos de dados diferentes: BOOL
e BOOLEAN
. Quais são as diferenças entre os dois tipos?
mysql
sqldatatypes
ikostia
fonte
fonte
Conforme estabelecido em outros comentários, eles são sinônimos para TINYINT (1).
* Então, por que eles se preocupam em diferenciar entre bool, boolean, tiny * int (1)?
Principalmente semântica.
Bool e Boolean: o padrão do MySQL os converte para o tipo tinyint. De acordo com uma declaração MySQL feita na época em que este livro foi escrito, "Pretendemos implementar o tratamento completo de tipo booleano, de acordo com o SQL padrão, em uma versão futura do MySQL."
0 = FALSO 1 = VERDADEIRO
TINYINT: ocupa um byte; varia de -128 a +127; ou 0 - 256.
Comumente mencionado nesta comparação: Após MySQL 5.0.3 - Bit: Usa 8 bytes e armazena apenas dados binários.
fonte
BOOL
eBOOLEAN
?Bit: Uses 8 bytes and stores only binary data.
informação esteja incorreta. Quando você adiciona uma coluna de bits à sua tabela, ela ocupa um byte inteiro em cada registro, não apenas um único bit. Quando você adiciona uma segunda coluna de bit, ela é armazenada no mesmo byte. A coluna do nono bit exigirá um segundo byte de armazenamento.Uma coisa que acabei de notar - com uma coluna definida como BOOL no MySql, Spring Roo gera corretamente o código Java para desempacotar o valor para um booleano, portanto, presumivelmente, especificar BOOL pode adicionar algum valor, mesmo que seja apenas na natureza de uma dica sobre o uso pretendido da coluna.
fonte
verifique a visão geral dos documentos do MySQL sobre tipos numéricos:
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html
fonte