为什么MySQL没有定义布尔数据类型?

Man*_*ini 2 mysql boolean

MySQL没有定义一个明确的布尔数据类型,而是选择为TINYINT(1)创建BOOL和BOOLEAN别名.为什么会这样?

tad*_*son 5

这是因为SQL规范在SQL:1999之前没有定义,并且没有强制执行.MySQL只是为了允许关键字 - MSSQL,DB2和Oracle使用BIT和一些真/假常量来伪造它而领先于大部分包.

(基本上是出于同样的原因,尽管SQL规范声明它的发音为" ess queue ell ",但我认识的每个人都只是说"续集",因为我们很懒惰并理解上下文.)

另请参见:不同SQL实现的比较