一尘不染

有没有理由不在SQL中将布尔值存储为位数据类型?

sql

是否有理由不在SQL中将布尔值存储为不带NULL的位数据类型?我看到它们通常存储为无限制的整数,以将值限制为0和1,并存储为具有T / F,True /
False,yes / no等的字符串,再次存储为无限制。将它们存储为位并不必担心其他约束不是更好吗?我在这里想念什么?


阅读 153

收藏
2021-03-17

共1个答案

一尘不染

我始终会坚持使用我可以存储的最小数据类型。

  • SQLServer:BIT
  • Oracle:NUMBER(1)(或PL / SQL中的BOOLEAN)
  • MySQL:TINYINT(iirc BOOLEAN自动映射到此)

编辑:Oracle的BOOLEAN仅是PL / SQL,而不是表定义。更新了答案以反映这一点。

2021-03-17