mysql tinyint int mediumint 用哪个好,MySQL中的tinyint,smallint,mediumint,bigint和int有什么区别?...

MySQL中的tinyint,smallint,mediumint,bigint和int有什么区别?

在什么情况下应该使用它们?

#1楼

当它实际使用这些数据类型时,了解使用某些整数类型可能只是一种过度杀伤或使用不足是非常重要的。 例如,在表中使用employeeCount的整数数据类型表示员工可能是一种矫枉过正,因为它支持从负20亿到正20亿或从零到大约40亿(无符号)的整数值范围。 因此,即使您考虑使用沃尔玛这样的美国最大雇主之一,大约有220万名雇员使用employeeCount列的整数数据类型也是不必要的。 在这种情况下,您可以使用mediumint(支持0到1600万(无符号))。 话虽如此,如果您的范围预计会非常大,您可能会考虑使用bigint,正如您从丹尼尔的笔记中看到的那样,支持的范围大于我要解密的范围。

#2楼

不同之处在于分配给每个整数的内存量,以及它们各自可以存储的数量。

#3楼

它们占用不同的空间,并且具有不同的可接受值范围。

事实证明它们都使用相同的规范(除了下面提到的一些小例外),但支持这些类型的各种组合(不包括Oracle,因为它只有NUMBER数据类型,请参阅上面的链接):

| SQL Server MySQL Postgres DB2

---------------------------------------------------

tinyint | X X

smallint | X X X X

mediumint | X

int/integer | X X X X

bigint | X X X X

它们支持相同的值范围(下面有一个例外),并且都具有相同的存储要求:

| Bytes Range (signed) Range (unsigned)

--------------------------------------------------------------------------------------------

tinyint | 1 byte -128 to 127 0 to 255

smallint | 2 bytes -32768 to 32767 0 to 65535

mediumint | 3 bytes -8388608 to 8388607 0 to 16777215

int/integer | 4 bytes -2147483648 to 2147483647 0 to 4294967295

bigint | 8 bytes -9223372036854775808 to 9223372036854775807 0 to 18446744073709551615

“unsigned”类型仅在MySQL中可用,其余只使用带符号的范围,但有一个值得注意的例外: SQL Server中的tinyint是无符号的 ,其值范围为0到255

#4楼

所需的存储空间大小以及数量可以达到多大

在SQL Server上

tinyint 1个字节,0到255

smallint 2字节,-2 ^ 15(-32,768)到2 ^ 15-1(32,767)

int 4字节,-2 ^ 31(-2,147,483,648)到2 ^ 31-1(2,147,483,647)

bigint 8字节,-2 ^ 63(-9,223,372,036,854,775,808)到2 ^ 63-1(9,223,372,036,854,775,807)

您可以在所有4中存储数字1,但bigint将使用8个字节,而tinyint将使用1个字节

#5楼

那些似乎是MySQL数据类型。

根据他们的文件 :

tinyint = 1个字节

smallint = 2个字节

mediumint = 3个字节

int = 4个字节

bigint = 8个字节

并且,自然地,接受越来越大的数字范围。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值