tinyint和smallint(tinyint和smallint的区别)

http://www.itjxue.com  2023-02-18 12:35  来源:未知  点击次数: 

mysql中int,bigint,smallint 和 tinyint的区别与长度的含义

最近使用MySQL数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找,找到如下内容,留档做个总结:

使用整数数据的精确数字数据类型。

bigint

从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。

P.S. bigint已经有长度了,在mysql建表中的length,只是用于显示的位数

int

从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。

smallint

从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为 2 个字节。

tinyint

从 0 到 255 的整型数据。存储大小为 1 字节。

注释

在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。

在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。

只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。

int(M) 在 integer 数据类型中,M 表示最大显示宽度。在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。

mysql中int,bigint,smallint和tinyint的区别与长度

-- int

从 -2^31

(-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92

同义字为 integer。

-- bigint

从 -2^63 (-9223372036854775808) 到 2^63-1

(9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。

P.S.

bigint已经有长度了,在mysql建表中的length,只是用于显示的位数

-- smallint

从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为

2 个字节。

-- tinyint

从 0 到 255 的整型数据。存储大小为 1 字节。

-- 在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint

-- 在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。

只有当参数表达式是 bigint 数据类型时,函数才返回

bigint。

-- int(M) 在 integer 数据类型中,M 表示最大显示宽度。在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。

smallint和tinyint什么区别

最主要的区别就是占用的字节数大小问题。

我们知道在JAVA中,int型占用的就是4个字节。

同样在数据库中其实也是这样的。

int占4个字节,smallint占2个字节,tinyint占1个字节。

具体细节如下:

bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。

存储大小为 8 个字节。

int 从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。

smallint 从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。

tinyint 从 0 到 255 的整型数据。存储大小为 1 字节。 主键设为tinyint的话一旦增加到128就不行了。

总结:分别是8,4,2,1。

ps:说下unicode

Unicode 规格通过采用两个字节编码每个字符使这个问题迎刃而解。

转换最通用商业语言的单一规格具有足够多的 2 字节的模式 (65,536)。

因为所有的 Unicode 系统均一致地采用同样的位模式来代表所有的字符,所以当从一个系统转到另一个系统时,将不会存在未正确转换字符的问题。

通过在整个系统中使用 Unicode 数据类型,可尽量减少字符转换问题。 Unicode 数据使用 SQL Server 中的 nchar、varchar 和 ntext 数据类型进行存储。

所以,对于汉字,我们可以用nvarchar,比如最大允许50个汉字,我们就可以用nvarchar(50)。

当然,英文字母其实也只能是50.

mysql中int,bigint,smallint 和 tinyint的区别详细介绍

主要的区别是占用空间和表示范围

tinyint 占用1字节

表示非负: 0--255

无符号表示:-128--127

举例表示人的年龄就可以用:age tinyint;

smallint 占用2字节

表示非负:0--2^16-1 既 0到65535

无符号表示:-2^15--2^15-1

举例表示乌龟的年龄:agewg smallint;

int 占用4字节

表示非负 0--2^32-1 既 零到四十二亿九千万

无符号表示:-2^31--2^31-1

举例表示恐龙化石年龄:agekl int;

bigint 占用8字节

表示非负 0--2^64-1 这已经是天文数字了,能表示 18后面17个零那么大的数字

无符号表示:-2^63--2^63-1

bigint比较占用空间,一般都不用。

举例表示宇宙年龄:ageyz bigint;

完全手打亲!

(责任编辑:IT教学网)

更多
上一篇:没有了

推荐微信营销文章