MySQL——数据类型

本文详细讲解了MySQL中整型、浮点型、定点型的不同数据类型及其用法,包括长度设置、范围限制、精度控制和最佳实践,帮助理解数据类型选择的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整型

tinyintsmallintmediumintint/integerbigint
12348
  • 如果不设置无符号还是有符号,默认有符号,若想设置无符号,在后面添加UNSIGNED
  • 若插入的数值超出了整型的范围,会报错out of range,并且插入临界值
  • 若不设置长度,会有默认长度
  • INT后括号内的数字不代表插入数值的范围,代表的是宽度,如:INT(5),则代表应显示五个数字,若插入数值123,最后应显示00123。但是由于默认不显示这些零,若要显示上述所说形式,需在后面加上ZEROFILL,注意zerofill默认unsigned。

浮点型、定点型

浮点型浮点型定点型
float(M,D)double(M,D)dec(M,D)或decimal(M,D)
48M+2
  • 定点型最大取值范围和double相同
  • D代表小数点后的位数,M代表小数和整数合起来的位数,超出范围则插入临界值
  • M,D均可省略,定点型默认(10,0),浮点型根据输入值自定精度。
  • 定点型的精确度较高,若对插入数值精度要求高,则考虑使用

字符型

保存较短字符串
char(M)varchar(M)textblob
MM
  • M为字符数,char可以省略,默认1,varchar不可以
  • char代表固定长度字符,varchar代表可变长度
  • char比较耗费空间,但是效率高,varchar节约空间,但是效率低
enumset
只能选一个成员可一次性选取多个成员
  • enum为枚举,指插入值必须是列表中指定值中的一个
  • set保存集合

日期型

datedatetimetimestamptimeyear
48431
日期日期+时间日期+时间时间
  • timestamp支持时间范围小,datetime大
  • timestamp和实际时区相关,datetime只能反映插入时的当地时区
  • timestamp易受MySQL版本影响

原则

数据类型的选择类型越简单越好,能保存的数值越小越好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值