ani*_*son 40 mysql types integer
我假设INT(1)与TINYINT(1)完全相同,但我真的不知道.每当我的值只能是一个整数(例如值0-9)时,我总是只使用INT(1)来表示它是一个整数而且它只是一个字符,我认为这意味着它只能是0到9的值(如果我错了,请向我解释).我总是忽略你可以将数字转换成其他类型的INT.我不懂MySQL,并且倾向于避免使用它可以做的更复杂的事情.
所以我的问题是,如果为每种类型定义长度为1,则各种整数类型INT,TINYINT,SMALLINT,MEDIUMINT和BIGINT之间是否存在任何差异;?如果没有,我是否应该使用它们(我可以看到使用它们以获得更多的语义含义,TINYINT比INT更具体)?如果是这样,我可以轻松地(和/或我应该)通过我的数据库并将我的所有INT(1)字段更改为TINYINT(1)字段吗?
Cod*_*ody 47
在这里,您将以更好的方式理解它!
tinyint: 1 byte, -128 to +127 / 0 to 255 (unsigned)
smallint: 2 bytes, -32,768 to +32,767 / 0 to 65,535 (unsigned)
mediumint: 3 bytes, -8,388,608 to 8,388,607 / 0 to 16,777,215 (unsigned)
int/integer: 4 bytes, -2,147,483,648 to +2,147,483,647 / 0 to 4,294,967,295 (unsigned)
bigint: 8 bytes, -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 / 0 to 18,446,744,073,709,551,615 (unsigned)
Run Code Online (Sandbox Code Playgroud)
Phi*_*hil 38
整数列类型的括号中的数字是"显示宽度".这不会影响存储要求,因为它们是预定义的.
进一步阅读
总结接受的答案:
括号中的数字表示*显示该字段的字符数*,**不是**该字段的存储大小。
但是如果你想知道存储大小,你应该查看MySQL源文档。
来源:MySQL 文档:整数类型(精确值) - INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT
直接引用源文档:
TINYINT:1 字节,-128 到 127 有符号,0 到 255 无符号
SMALLINT:2 个字节,-32768 到 32767 有符号,0 到 65535 无符号
MEDIUMINT:3 个字节,-8388608 到 8388607 有符号,0 到 16777215 无符号
INT:4 个字节,-2147483648 到 2147483647 有符号,0 到 4294967295 无符号
BIGINT : 8 字节,-2^63 到 2^63-1 有符号,0 到 2^64-1 无符号
| 归档时间: |
|
| 查看次数: |
29659 次 |
| 最近记录: |