MySQL的数据类型

MySQL支持多种类型,大致可以分为三类:数值、日期、字符串类型。

数值类型

MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值类型(INTEGER,SMALLINT,DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT,REAL 和 DOUBLE PRECISION)

类型大小范围(有符号)范围(无符号)用途
TINYINT1字节(-128,127)(0,255)小整数值
SMALLINT2字节(-2^15,2^15-1)(0,2^16-1)大整数
MEDIUNINT3字节(-2^23,2^23-1)(0,2^24-1)大整数
INT或INTEGER4字节(-2^31,2^31-1)(0,2^32-1)大整数
BIGINT8字节(-2^63,2^63-1)(0,2^64-1)极大整数
FLOAT4字节  单精度,浮点数
DOUBLE8字节  双精度,浮点数
DECIMAL(M,D)M+2字节  对小数更精确的存储

自MySQL3.23以来,DECIMAL 值是根据ANSI 规范进行处理的, ANSI 规范规定DECIMAL(M, D) 必须能够表示M 位数字及D 位小数的任何值。M的取值范围1~65,默认值为10 。D的取值范围0~30 。

例如,DECIMAL(5, 2) 必须能够表示从-999.99 到999.99 的所有值。而且必须存储符号和小数点,因此DECIMAL 值占M + 2 个字节。对于DECIMAL(5, 2),“最长”的值(-999.99)需要7个字节。而正数取值范围这一段不需要正号,因此MySQL数据类型利用它扩充了取值范围,使其超过了ANSI 所规范所要求的取值范围。如DECIMAL(5, 2) 的最大值为9999.99,因为有7 个字节可用。

日期和时间

每个时间类型有一个有效值范围和一个‘零’值,当指定不合法的MySQL的时间值时使用‘零’值。

类型大小(字节)范围格式用途
DATE31000-01-01,9999-12-31YYYY-MM-DD日期值
TIME3‘-838:59:59’,‘838:59:59’HH:MM:SS时间值
YEAR11901,2155YYYY年份值
DATETIME8

1000-01-01 00:00:00,

9999-12-31 23:59:59

YYYY-MM-DD 

HH:MM:SS

混合日期和时间值
TIMESTAMP4

1970-01-01 00:00:00,

结束时间是第2147483647秒。

格林尼治时间2038-01-19 03:14:07

YYYYMMDD HHMMSS

混合日期和时间值,

时间戳

字符串类型

类型大小用途
CHAR0-255字节定长字符串
VARCHAR0-65535 字节变长字符串
TINYBLOB0-255字节不超过 255 个字符的二进制字符串
TINYTEXT0-255字节短文本字符串
BLOB0-65 535字节二进制形式的长文本数据
TEXT0-65 535字节长文本数据
MEDIUMBLOB0-16 777 215字节二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215字节中等长度文本数据
LONGBLOB0-4 294 967 295字节二进制形式的极大文本数据
LONGTEXT0-4 294 967 295字节极大文本数据

CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值