MySQL数据类型

现在做的项目在用MySQL,这里总结一下MySQL的数据类型。

1.整数

可选参数M表示查询结果中数据列的最大显示宽度,对取值没有影响.

数据类型

范围(有符号)

范围(无符号)

存储需求

TINYINT(M)

-128~127(2^7-1)

0~255(2^8-1)

8位整数,1个字节

SMALLINT(M)

-32768~32767(2^15-1)

0~65535(2^16-1)

16位整数,2个字节

MEDIUMINT(M)

-8388608~8388607(2^23-1)

0~16777215(2^24-1)

24位整数,3个字节

INT(M)

-2147483648~

2147483647(2^31-1)

0~4294967295(2^32-1)

32位整数,4个字节

BIGINT(M)

-9223372036854775808~

9223372036854775807(2^63-1)

0~18446744073709551615

(2^64-1)

64位整数,8个字节

2.浮点数

M是十进制数的总个数(包括小数点后面数字的个数),D是小数点后面的数字个数,M>=D,参数M只显示数值的显示效果,对数值的精度没有影响,参数D会对数值作四舍五入,比如FLOAT(6,2)或DOUBLE(6,2),如果插入1111.1254,则会取值1111.13;如果插入1111.1244,则会取值1111.12;如果插入的数字在截取小数后长度超过总长度M,比如插入11211.1254,则会出错,插入的数字变成总长度为M、小数点后面位数为D的最大数字,也就是9999.99。

下面的范围只是理论值,具体值与硬件或操作系统有关。

    数据类型

                                                                                   范围

            说明

FLOAT[(M,D)]

-3.402823466E+38  ~ -1.175494351E-38, 0,1.175494351E-38 ~ 3.402823466E+38

8位精度,4个字节

DOUBLE[(M,D)]

-1.7976931348623157E+308  ~ - 2.2250738585072014E-308, 0,2.2250738585072014E-308~  1.7976931348623157E+308

16位精度,8个字节

3.定点数

数据类型

                       范围

存储需求

DECIMAL[(M,D)]

M表示数字总个数,最大值是65,默认为0;

D表示小数点后面的数字总个数,最大值是30,默认为0;

以字符串形式来存放定点数,M>=D,参数D会对数值作四舍五入,比如DECIMAL(6,2),如果插入1111.1254,则会取值1111.13如果插入1111.1244,则会取值1111.12

如果插入的数字在截取小数后长度超过总长度M,比如插入11211.1254,则会出错,插入的数字变成总长度为M、小数点后面位数为D的最大数字,也就是9999.99

4.字符串

    数据类型

                    范围

                                                                     说明

CHARN

最多2^8-1=255个字符

固定长度的字符串

VARCHARN

最多2^16-1=65535个字符

可变长度的字符串,VARCHAR最大字符长度必须在声明列时设置,超长的字符串将在存储时截断。

TINYTEXT

最多2^8-1=255个字符

可变长度的字符串,不允许设置最大长度。

TEXT

最多2^16-1=65535个字符

可变长度的字符串,不允许设置最大长度。

MEDIUMTEXT

最多2^24-1= 16777215个字符

可变长度的字符串,不允许设置最大长度。

LONGTEXT

最多2^32-1= 4294967295个字节,

可变长度的字符串,不允许设置最大长度。

5.二进制

   数据类型

                     范围

                     说明

BIT(N)

最多64

存放二进制数据,N是二进制的位数.

TINYBLOB

最多2^8-1=255个字节

可变长度二进制数据

BLOB

最多2^16-1=65535个字节

可变长度二进制数据

MEDIUMBLOB

最多2^24-1= 16777215个字节

可变长度二进制数据

LONGBLOB

最多2^32-1= 4294967295个字节

可变长度二进制数据

6.日期与时间

 数据类型

            范围

                                                                               说明

DATE

1000-01-01~9999-12-31

3个字节,格式是YYYY-MM-DD

DATETIME

1000-01-01  00:00:00

~9999-12-31  23:59:59

8个字节,格式是YYYY-MM-DD HH:MM:SS

TIMESTAMP

1970-01-01  00:00:00 ~ 2037

4个字节,格式是YYYY-MM-DD HH:MM:SS

不要选用TIMESTAMP数据列来保存“真正的”日期/时间数据,那么做的最佳选择是DATETIME数据类型。

TIME

-838:59:59 ~  838:59:59

3个字节,格式是HH:MM:SS

YEAR

1901 ~ 2155

1个字节,格式是YYYY

7.集合

数据类型

          范围

                                                       说明

ENUM

最多65535个成员

字符串的排列集合。

SET

最多255个成员

字符串的组合集合,不赞成使用ENUMSET作为数据类型,因为不方便数据迁移。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值