我对 SQL/数据库一无所知,但我正在和一位从事大量数据库工作的朋友聊天,了解一些数据库如何使用“布尔”字段,除了 true 和 false 之外,该字段还可以取 NULL 值。
关于这一点,他发表了这样的评论:“值得微软称赞的是,他们从未将这种字段称为布尔值,他们只是将其称为位。这是一个真正的位 - 如果您有八个或更少的位字段在一条记录中,它只需要一个字节来存储它们。”
当然,这对我来说似乎是不可能的——如果该字段可以保存三个值,那么您将不会将其中的八个值放入一个字节中。我的朋友同意这看起来很奇怪,但恳求对底层内部的无知,并说据他所知,从 SQL 端看,这样的字段可以保存三个值,并且确实需要一个字节的存储空间. 我想我们中的一个人有一根电线交叉。谁能解释这里到底发生了什么?