一篇文章带你快速了解MySQL的数据类型的使用说明和注意事项

1. 数值类型

数据类型说明
BIT (M)位类型。M指定位数,默认值1,范围1~64
TINYINT [UNSIGNED]带符号的范围-128-127,无符号范围0~255,默认有符号,占位1字节
BOOL使用0和1表示真和假,占位1字节
SMALLINT [UNSIGNED]带符号是-2^ 15次方到2^ 15-1,无符号是2^16-1
INT [UNSIGNED]带符号是-2^ 31次方~2^ 31次方-1,无符号是2^32-1
BIGINT [UNSIGNED]带符号是-2^ 63次方~2^ 63次方-1,无符号是2^64-1
FLOAT [(M,D)] [UNSIGNED]浮点数,M指定显示长度,D指定小数位数,占位4字节
DOUBLE [M,D] [UNSIGNED]浮点数,M指定显示长度,D指定小数位数,占位8字节,比float精度更大的小数
DECIMAL (M,D) [UNSIGNED]定点数,M指定显示长度,D指定小数位数,占位4字节

注意事项:

BIT字段在显示时,是按照ASCII码对应的值显示。

FLOAT表示的精度大约是7位。

DECIMAL整数最大位数m为65。支持小数最大位数d是30。如果d被省略,默认为0.如果m被省略,默认是10。

如果我们希望某个数据表示高精度,选择DECIMAL

2. 文本、二进制类型

数据类型说明
CHAR (size)固定长度字符串,最大255
VARCHAR (size)可变长度字符串,最大长度65535
BLOB二进制数据
TEXT大文本,不支持全文索引,不支持默认值

CHAR和VARCHAR比较:

实际存储CHAR(4)VARCHAR(4)CHAR占用字节VARCAHR占用字节
abcdabcdabcd4*3=124*3+1=13
AAA4*3=121*3+1=4
abcde××数据超过长度数据超过长度

注意事项:

关于varchar(len),len到底是多大,这个len值,和表的编码密切相关:

varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是65532。

当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占用3个字

节],如果编码是gbkvarchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符占用2字节)。

3. 时间日期

数据类型说明
DATE存储日期,格式为 ‘YYYY-MM-DD’,占用3字节
DATETIME存储日期和时间,格式为 ‘YYYY-MM-DD HH:MM:SS’,占用8字节。
TIMESTAMP存储时间戳,与UTC时区相关联,格式与DATETIME相同,占用4字节。

4. String类型

数据类型说明
ENUM(单选类型)枚举类型,,ENUM是一个字符串对象,其值来自表创建时在列固定中显示枚举的一列值
SET(多选类型)集合类型,SET是一个字符串对象,可以有零和多个值,其值来自表创建时规定的允许的一列值,指定包括多个set成员的set列值时各成员之间用逗号隔开,这样set成员值本身不能包含逗号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值