【MySQL】MySQL的数据类型

数据类型

整数类型

整数类型字节范围(有符号)范围(无符号)用途
TINYINT1(-128,127)(0,255)
SMALLINT2(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT3(-8 388 608,8 388 607)(0,16 777 215)大整数值
INT或INTEGER4(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
BIGINT8(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
FLOAT4单精度浮点数值
DOUBLE8双精度浮点数值
DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值

字符串类型

字符串类型字节大小描述
CHAR0-255定长字符串
VARCHAR0-255变长字符串
TINYBLOB0-255不超过255个字符的二进制字符串
TINYTEXT0-255短文本字符串
BLOB0-65535二进制形式的长文本数据
TEXT0-65535长文本数据
MEDIUMBLOB0-16 777 215二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215中等长度文本数据
LOGNGBLOB0-4 294 967 295二进制形式的极大文本数据
LONGTEXT0-4 294 967 295字节极大文本数据
VARBINARY(M)允许长度0-M个字节的定长字节符串,值的长度+1个字节
BINARY(M)允许长度0-M个字节的定长字节符串
CHAR和VARCHAR
  • MySQL处理长度指示器不同
    • CHAR为定长,必须在圆括号内用一个大小修饰符来定义,比指定长度大的值将被截短,而比指定长度小的值将会用空格作填补;VARCHAR是一种可变长度的字符串类型,并且也必须带有一个范围在 0-255 之间的指示器。
    • CHAR 把这个大小视为值的大小,不长度不足的情况下就用空格补足。而 VARCHAR 类型把它视为最大值并且只使用存储字符串实际需要的长度(增加一个额外字节来存储字符串本身的长度)来存储值。所以短于指示器长度的 VARCHAR 类型不会被空格填补,但长于指示器的值仍然会被截短。
  • 都可以使用BINARY修饰符。用于比较运算式,以二进制方式参与运算。

日期和时间类型

类型字节格式用途
DATE4YYYY-MM-DD日期值
TIME3HH:MM:SS时间值或持续时间
YEAR1YYYY年份值
DATETIME8YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP4YYYYMMDD HHMMSS混合日期和时间值

复合类型

  • ENUM
    ENUM 类型因为只允许在集合中取得一个值或使用null值,有点类似于单选项。(比如人的性别)ENUM 类型字段可以从集合中取得一个值或使用 null 值,
    除此之外的输入将会使 MySQL 在这个字段中插入一个空字符串。另外如果插入值的大小写与集合中值的大小写不匹配,MySQL 会自动使用插入值的大小写转换成与集合中大小写一致的值。
  • SET
    SET 类型可以从预定义的集合中取得任意数量的值。并且与 ENUM 类型相同的是任何试图在 SET 类型字段中插入非预定义的值都会使
    MySQL 插入一个空字符串。如果插入一个即有合法的元素又有非法的元素的记录,MySQL 将会保留合法的元素,除去非法的元素。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值