Mysql数据类型

MySQL的数据类型主要分为以下几大类:

  • 数值类型
    • 整型:tinyint、smallint、mediumint、int、bigint
    • 浮点型:float、double
  • 字符类型
    • 文本:char、varchar、text
    • 二进制:binary、blob
  • 时间类型:date、time、datetime、year、timestamp
  • 复合类型:enum、set

一、数值类型

1.1、整型
类 型字 节范围(signed)范围(unsigned)
tinyint1-128 ~ 1270~255
smallint2-32267 ~ 322670~65535
mediumint3-8388608 ~ 83886080~16777215
int4-2147483648 ~ 21474836470~4294967295
bigint8-9233372036854775808 ~ 922337203685477580718446744073709551615
1.2、浮点型
类 型字 节范围(signed)范围(unsigned)
float4-3.402823466E+38 ~ 1.175494351E-380 ~ 3.402823466351E+38)
double8-1.7976931348623157E+308 ~ 2.2250738585072014E-3080 ~ 1.7976931348623157E+308)
decimal(M,D)m + 2M是数字的最大长度, 取值范围1~65,默认值为10。D是小数点位数,取值范围为0~30,不得超过M的长度

二、字符串类型

类 型字符长度取值范围说明
char0~255定长字符串,如:lating1编码,char(10),占10个字节
varchar0~255可变长度字符串,如:varchar(10),根据实际存放的字符串长度计算存储空间
text0~65535长文本字符串
blob0~65535长文本二进制字符串
tinytext0~255短长度文本字符串
tinyblob0~255短长度二进制字符串
mediumtext0~16777215中长度文本字符串
mediumblob0~16777215中长度二进制字符串
longtext0~4294967295极大文本字符串
longblob0~4294967295极大二进制字符串
binary(M)0~M保存定长二进制字符串,注意它保存的是字节而不是字符,没有字符集限制,区分大小写,不足长度用\0填充
varbinary(M)0~M保存变长的二进制字符串,同binary保存的是字节,没有字符集限制,区分大小写,不足后面不会补\0

三、日期和时间类型

类 型取值范围格式说明
date1000-01-01~9999-12-31yyyy-MM-dd、yyyy/MM/dd、yyyyMMdd,如:2016-07-03、2016/07/03、20160703存储年月日
time-838:59:59 ~ 838:59:59HH:mm:ss,HHmmss,如:08:24:53,082453存储时分秒
year1901~2155yyyy,如:2016存储4位数的年份,不在取值范围用0表示
datetime1000-01-01 00:00:00~9999-12-31 23:59:59yyyy-MM-dd HH:mm:ss,yyyy/MM/dd HH:mm:ssdate和time类型的组合
timestamp1970-01-01 00:00:00 ~ 2037某时yyyy-MM-dd HH:mm:ssdate和time类型的组合,如果没有对该类型的字段赋值或赋值为null,默认值为当前时间

四、复合类型

类 型语法说明
enumenum(‘a’,’b’)一次只能存取其中的一个值,如果不是其中的某一个值,mysql会插入一个空字符串。适合单选值,比如性别
setset(‘a’,’b’,’c’)可以存取其中的多个值,多个字符之间用逗号分隔,最多不能超过64个。如果不是其中的值,mysql会插入一个空字符串。适合多选,比如个人爱好
create table mixtab (
    radiovalue enum('a','b','c'), checkvalue set('a','b','c','d')
);
mysql> insert into mixtab values ('b', 'a,b,c');    # success
mysql> insert into mixtab values ('d', 'a,b');      # error,'d'不在enum范围内
mysql> insert into mixtab values ('d', 'ab');       # error,'ab'没用逗号分隔
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值