我正在使用MySQL版本5.1.49-1ubuntu8.1。它允许我定义两种不同数据类型的列:BOOL
和BOOLEAN
。两种类型有什么区别?
Answers:
正如其他注释中所确定的,它们是TINYINT(1)的同义词。
*那么,为什么还要麻烦区分bool,boolean,tiny * int(1)?
主要是语义。
Bool和Boolean:MySQL默认将它们转换为tinyint类型。根据在撰写本文时发表的一条MySQL声明,“我们打算在将来的MySQL版本中根据标准SQL实现完整的布尔类型处理。”
0 =假1 =真
TINYINT:占用一个字节;从-128到+127; 或0-256。
通常在此比较中出现:MySQL 5.0.3之后-位:使用8个字节,仅存储二进制数据。
BOOL
和之间有什么区别BOOLEAN
?
Bit: Uses 8 bytes and stores only binary data.
是错误的信息。当您在表中添加一个位列时,它将在每个记录中占据整个字节,而不仅仅是单个位。当您添加第二位列时,它将存储在同一字节中。第九位列将需要第二个字节的存储。
查看MySQL docs数字类型概述:
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html