小编典典

关于选择数据类型

sql

如果在表的一列中,我希望这些值是“是”,“否”或“可选”,那么我需要使用哪种数据类型?


阅读 179

收藏
2021-04-28

共1个答案

小编典典

少量:

  • 占用1个字节,但是最多可以将8个BIT字段合并到SQL Server中的单个BYTE中。
  • 存储以下两个值之一:1(表示true)和0(表示false),因此该列需要为可空值,以便NULL作为您的第三个值传递

CHAR(1)

  • 需要1个字节
  • 如果不区分大小写ASCII,则为26个字符;如果不区分大小写,则为52个字符

天音

  • 需要1个字节
  • 值从零到255

表现

所有选项占用相同的空间量,从而使性能等同于JOIN / etc。

比较

BIT如果可能的值有可能改变,则不是最明智的选择。 CHAR(1)可以立即读取的IE:Y,N,O。
TINYINT对于要通过外键关联的表中的主键是一个不错的选择,并将描述性文本存储在另一列中。

结论:

CHAR(1)如果不使用外键关系,将是我的选择,TINYINT否则。
使用CHAR(1),拥有单个字符的自然主键是非常不可能的。如果您有2个以上以相同字符开头的单词,则假定基于前导字符的自然键会失败,并且如果标签需要更改,则会引起悲伤,因为该键也应该更改并永久存在(除非您懒惰并喜欢解释为什么代码没有遵循与其他代码相同的方案)。CHAR(1)还提供了TINYINT所提供的可能性的大约五分之一(假设上限为52个区分大小写的值)-人工/代理键可避免描述更改。

2021-04-28