【发布时间】:2018-08-12 21:00:05
【问题描述】:
我目前正在阅读 Robin Nixon 的 Learning PHP、MySQL 和 JavaScript 一书。特别是关于使用 MySQL 的数据库的章节。这是我正在努力彻底理解的主题。
"然而,年份字段具有更可预测的值,因此我们使用更有效的 CHAR(4) 数据类型代替 VARCHAR。参数 4 允许 4 个字节的数据,支持从 –999 到所有年份9999;一个字节由 8 位组成,可以有 00000000 到 11111111 的值,即十进制的 0 到 255。"
在上面的示例中,CHAR(4) 设置为存储 4 个字符,表示一个四位数的年份条目。为什么-999 到 9999 是唯一的选项。它如何以二进制表示它仅限于这些值?我最初的想法是,由于 4 个字节是 32 位,如果所有 32 位都设置为 1,那么 2^32 大约是 40 亿无符号和大约 20 亿有符号,这将是可以存储的数量。
感谢任何解释。
【问题讨论】:
标签: mysql database binary char mariadb