PostgreSQL 中位和布尔数据类型的区别

Posted

技术标签:

【中文标题】PostgreSQL 中位和布尔数据类型的区别【英文标题】:Difference between Bit and Boolean datatypes in PostgreSQL 【发布时间】:2018-02-14 19:06:18 【问题描述】:

我是 PostgreSQL 新手。在数据库中创建表时我有疑问。谁能澄清bitboolean 数据类型之间的区别?

【问题讨论】:

很多关于这个主题的帖子。你可以谷歌你的标题,你会找到一些答案。其他 RDBMS 的答案应该和 postgreSQL 一样好 【参考方案1】:

bit 仅存储数字 01(或 null)。

boolean 仅存储 truefalse(或 null)。数字 (0, 1) 不是布尔值。布尔值可以在任何需要布尔 表达式 的地方使用。所以你可以例如这样做:

where is_active 

需要将位列与某物进行比较:

where a_bit_column = 0

a_bit_column = 0 的结果是布尔值)


与某些 DBMS 的想法相反,表达式 where 0where 1不是有效的布尔表达式。

【讨论】:

因为,我是新学习postgres,你能分享一下我们应该在什么情况下使用bit over boolean?有什么注意事项吗? @mehul9595 Postgres Hero Erwin 的另一个好答案:dba.stackexchange.com/a/156851/49113

以上是关于PostgreSQL 中位和布尔数据类型的区别的主要内容,如果未能解决你的问题,请参考以下文章

BIT(BOOL)、BYTE、WORD、DWORD,这四个类型数据在位数上有啥区别

位掩码的整数和位(n)数据类型之间有啥区别吗?

Java--位字节字符字符编码数据存储单位 & 电脑的32位和64位的区别是什么呢

PostgreSQL之SQL操作符介绍及实践

PostgreSQL之SQL操作符介绍及实践

平均数和中位数的区别