【MYSQL】数据类型

1. 整型

整型类型字节数有符号范围无符号范围
TINYINT1字节(-128,127)(0,255)
SMALLINT2字节(-32768,32767)(0,65 535)
MEDIUMINT3字节(-226,226-1)(0,2^27-1)
INT4字节(-231,231-1)(0,2^32-1)
BIGINT8字节(-263,263-1)(0,2^64-1)

可选参数:整型[(M)] [UNSIGNED] [ZEROFILL]

  • UNSIGNED:无符号数,例如:age TINYINT UNSIGNED;
  • ZEROFILL:其中参数M表示字节宽度,自动会转为无符号整型,一般适用于学号、编码等宽度无符号数字,可以用0填充,例如:sn TINYINT(6) ZEROFILL;

2. 浮点型

注意:浮点数有精度损失的。

整型类型字节数有符号范围无符号范围
FLOAT4字节(-3.40E+38, -1.17E-38)(0, 3.40E+38)
DOUBLE8字节(-1.80E+308, -2.23E-308)(0, 2.23E+308)

可选参数:浮点型[(M,D)] [UNSIGNED] [ZEROFILL]

其中M表示显示的值(包括小数位)最大位数,D表示小数位数。 例如:sara FLOAT(7,3) 规定显示的值不会超过7位数字,小数点后面带有 3位数字。

对于小数点后面的位数超过允许范围的值,MySQL 会自动将它四舍五入为最接近它的值。

注意:浮点数有精度损失的。

3. 定点型

把整数和小数部分分开存储,比较精确。可选参数:DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]

示例:sara DECIMAL(6,2);

4. 字符串

字符串类型字节数描述及存储需求
CHAR0~255定长字符串
VARCHAR0~255变长字符串
TINYBLOB0~255不超过 255 个字符的二进制字符串
TINYTEXT0~255短文本字符串
BLOB0~65535二进制形式的长文本数据
TEXT0~65535长文本数据
MEDIUMBLOB0~2^24-1二进制形式的中等长度文本数据
MEDIUMTEXT0~2^24-1中等长度文本数据
LOGNGBLOB0~2^32-1二进制形式的极大文本数据
LONGTEXT0~2^32-1极大文本数据

注意:

  • char型,如果不够M个字符,内部用空格补齐,取出时会把右侧空格删除,意味着本身有的空格会被丢弃。varchar类型则不会。
  • 速度上定长比不定长的更快。
  • blob是二进制类型,用来储存图像、音频等类型。可以防止字符集问题导致信息丢失。

5. 枚举和集合

  • 枚举:ENUM(‘value1’,‘value2’,…),插入值时,只能在枚举范围中的一个。
  • 集合:SET(‘value1’,‘value2’,…),插入值时,值是在集合的一个或多个。

6. 日期时间类型

类型字节数范围格式
DATE41000-01-01~9999-12-31YYYY-MM-DD
TIME3‘00:00:00’~’23:59:59’HH:MM:SS
YEAR11901~2155YYYY
DATETIME81000-01-01 00:00:00~9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS
TIMESTAMP41970-01-01 00:00:00~2037年某时YYYY-MM-DD HH:MM:SS

注意:TIMESTAMP是系统自动填充的时间戳,效率不高,不建议使用,通常用int unsigned来储存时间戳。

# 获取时间戳
SELECT UNIX_TIMESTAMP() ; #当前时间戳1451588688
SELECT UNIX_TIMESTAMP('2016-01-01 00:00:00');

# 把日期时间转为时间戳
SELECT FROM_UNIXTIME(1451588888, '%Y-%m-%d %h:%i:%s'); # 2016-01-01 03:08:08
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城狮·建哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值