Qual é a diferença entre os tipos de dados de coluna MySQL BOOL e BOOLEAN?


87

Estou usando o MySQL versão 5.1.49-1ubuntu8.1. Isso me permite definir colunas de dois tipos de dados diferentes: BOOLe BOOLEAN. Quais são as diferenças entre os dois tipos?

Respostas:


134

Ambos são sinônimos de TINYINT (1) .


11
O que Adam diz. Não existe um tipo BOOLEAN real no MySQL.
Mchl de

25

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.


2
Isso realmente não responde à pergunta. Qual é a diferença entre BOOLe BOOLEAN?
finalmente,

7
Postagens anteriores já haviam estabelecido que ambos são sinônimos de TINYINT (1). Idealmente, a próxima pergunta seria "Por que, então, eles diferenciaram os tipos de dados?"
Sexta antes de

3
@Seis antes que a 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.
Kolyunya de

4

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.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.