mysql有布尔类型吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql有布尔类型吗?相关的知识,希望对你有一定的参考价值。

mysql的bit类型对应编程语言中的布尔(c#的bool或java的boolean)。 参考技术A mysql 字段类型里没有 bool 的 参考技术B 数据类型没有布尔 参考技术C 没有,官网建议用tinyint代替

为啥 MySQL 不定义布尔数据类型?

【中文标题】为啥 MySQL 不定义布尔数据类型?【英文标题】:Why doesn't MySQL define a boolean data type?为什么 MySQL 不定义布尔数据类型? 【发布时间】:2011-01-24 08:46:49 【问题描述】:

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

【问题讨论】:

【参考方案1】:

这是因为 SQL 规范直到 SQL:1999 才定义一个,并且没有强制执行。 MySQL 领先于大多数包只是因为允许关键字 - MSSQL、DB2 和 Oracle 使用 BIT 和一些真/假常量来伪造它。

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

另见:Comparison of different SQL implementations

【讨论】:

很好的链接。它解释了真正的原因:关于如何处理 NULL 的无休止的讨论。 15 年后,只有 PostgreSQL 真正支持它。对于这种普遍要求的数据类型,这有多疯狂?【参考方案2】:

如果我正确理解您的问题,那是因为 Boolean values in MySql 只是别名为 1 或 0 的常量,并且取决于所使用的基础类型。

【讨论】:

以上是关于mysql有布尔类型吗?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 MySQL 不定义布尔数据类型?

我可以在 Java 中将布尔值转换为另一种数据类型吗

用于存储布尔值的 MySQL 数据类型

用于存储布尔值的 MySQL 数据类型

用于存储布尔值的 MySQL 数据类型

C#的EF中的字段类型布尔型,mysql数据库里是bit类型,提交识别不了该字段赋的true和false,为啥呢?