我完全不了解SQL/数据库,但我正在与一位做大量数据库工作的朋友聊天,关于一些数据库使用“布尔”字段的方式,该字段除了真和假之外还可以取值为NULL。
关于这一点,他发表了这样的评论:“值得称赞的是,微软从来没有将那种字段称为布尔,他们只称其为位(bit)。而且它是一个真正的位(bit) - 如果在记录中有八个或更少的位(bit)字段,则仅需要一个字节即可存储所有字段。”
自然地,这对我来说似乎是不可能的 - 如果该字段可以容纳三个值,您不会把八个它们都放进一个字节里。我的朋友同意这似乎很奇怪,但是对底层内部一无所知,并表示就他所知,从SQL方面看,这样的字段可以容纳三个值,并确实需要一个字节的存储空间。我想我们其中有一个存在误解。有人能解释一下这里到底发生了什么吗?