MySQL中tinyint、smallint、mediumint、bigint和int的区别是什么
在什么情况下应该使用这些
它们占用不同的空间,并且具有不同的可接受值范围
以下是SQL Server的值的大小和范围,其他RDBMS也有类似的文档:
- MySQL
- 博士后
- Oracle(他们只有一个
数字数据类型) - DB2
事实证明,它们都使用相同的规范(下面有一些小的例外),但支持这些类型的各种组合(Oracle不包括在内,因为它只有一个数字数据类型,请参见上面的链接):
SQL Server MySQL Postgres DB2
---------------------------------------------------
tinyint | X X
smallint | X
中微子
整数/整数| X
bigint | X
它们支持相同的值范围(下面有一个例外),并且都具有相同的存储要求:
|字节范围(有符号)范围(无符号)
--------------------------------------------------------------------------------------------
tinyint | 1字节-128到127 0到255
smallint | 2字节-32768到32767 0到65535
mediumint | 3字节-8388608至8388607 0至16777215
int/integer | 4字节-2147483648到2147483647 0到4294967295
bigint | 8字节-9223372036854775808至9223372036854775807 0至18446744073709551615
“unsigned”类型仅在MySQL中可用,其余类型仅使用带符号的范围,但有一个显著的例外:tinyint在SQL Server中是unsigned,其值范围为0到255