MySQL 数据类型
1、数值型
类型 | 范围、小数位数 |
---|---|
TINYINT | (-128,127) |
SMALLINT | 正负3w+ |
MEDIUMINT | 正负800w+ |
INT | 正负21亿+ |
BIGINT | 正负900千万亿+ |
FLOAT 单精度 | 10的-38次方 |
DOUBLE 双精度 | 10的-308次方 |
DECIMAL 定点型(小数点 位置固定) |
整型可以指定最大位数,比如int(11),不设置则默认为可存储的最大位数
浮点型(包括decimal)可以指定精度、标度,比如double(10,2),最长10位,小数2位(超出会四舍五入)
2、字符串
类型 | 最大字节数 |
CHAR 定长字符串 | 255 |
VARCHAR 变长字符串 | 6w+ |
TINYTEXT | 255 |
TEXT | 6w+ |
MEDIUMTEXT | 1千万+ |
LONGTEXT | 42亿+ |
TINYBLOB 二进制 | 255 |
BLOB | 6w+ |
MEDIUMBLOB | 1千万+ |
LONGBLOB | 42亿+ |
char 定长字符串,比如char(10),不够10个字符,自动在后面补空格
varchar 可变字符串,字符串长度可变、不固定,比如varchar(10),最多10个字符
二进制数据是以二进制字符串的形式存储的
3、日期时间
类型 | 能表示的时间范围 |
---|---|
YEAR yyyy | 1901 至 2155 |
DATE yyyy-MM-dd | 1000-01-01 至 9999-12-31 |
TIME hh:mm:ss | |
DATETIME yy-MM-dd hh:mm:ss | 1000-01-01 00:00:00 至 9999-12-31 23:59:59 |
TIMESTAMP 时间戳 |
1970-01-01 00:00:00 至 2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 |
时间日期列的值都要用单引引起来。
虽然timestamp叫做时间戳,但值是yyyy-mm-dd hh:mm:ss的格式,示例:insert into tb_user (birthday) values ('2019-02-02 09:02:20'); 查询到的也是这种格式
timestamp默认单位秒