MySQL BOOL和BOOLEAN列数据类型之间有什么区别?

iko*_*tia 86 mysql sqldatatypes

我正在使用MySQL版本5.1.49-1ubuntu8.1.它允许我定义两种不同数据类型的列:BOOLBOOLEAN.这两种类型有什么区别?

Ada*_*rax 132

它们都是TINYINT(1)的同义词.

  • 亚当说的话.MySQL中没有实际的BOOLEAN类型. (10认同)

Six*_*ore 24

正如其他评论中所建立的,它们是TINYINT(1)的同义词.

*那么,他们为什么要在bool,boolean,tiny*int(1)之间进行区分呢?

主要是语义.

Bool和Boolean:MySQL默认将这些转换为tinyint类型.根据撰写本文时的MySQL语句,"我们打算在未来的MySQL版本中按照标准SQL实现完整的布尔类型处理."

0 = FALSE 1 = TRUE

TINYINT:占用一个字节; 范围从-128到+127; 或者,0 - 256.


通常在这个比较中提出:在MySQL 5.0.3之后 - 位:使用8个字节并仅存储二进制数据.

  • 早先的帖子已经确定两者都是TINYINT(1)的同义词.理想情况下,下一个问题是"为什么他们区分数据类型?" (7认同)
  • 这并没有真正回答这个问题。`BOOL` 和 `BOOLEAN` 有什么区别? (2认同)
  • @Sixthfore`Bit:使用8个字节并仅存储二进制数据.是不正确的信息.向表中添加位列时,它将占用每个记录中的整个字节,而不仅仅是一个位.添加第二位列时,它将存储在同一个字节中.第九位列需要第二个存储字节. (2认同)