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

时间:2011-01-20 23:44:03

标签: mysql sqldatatypes

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

4 个答案:

答案 0 :(得分:126)

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

答案 1 :(得分:22)

正如其他评论所述,它们是TINYINT(1)的同义词。

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

主要是语义。

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

0 =假 1 = TRUE

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


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

答案 2 :(得分:4)

我刚注意到的一件事 - 在MySql中将列定义为BOOL,Spring Roo正确生成Java代码以将值解组为布尔值,因此可能指定BOOL可以添加一些值,即使它只是在性质上提示该列的预期用途。

答案 3 :(得分:2)

检查数据类型的MySQL文档概述:

http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html