Mysql数据类型分为:
整数类型、浮点数类型、定点数类型
日期与时间类型
字符串类型
二进制类型
整数类型 字节数 无符号数取值范围 有符号数取值范围
TINYINT 1 0-255 -128-127
SMALLINT 2 0-65535 -32768-32767
MEDIUMINT 3 0-16777215 -8388608-8388607
INT 4 0-4294967295 -2147483648-2147483647
INTGER 4 0-4294967295 -2147483648-2147483647
BIGINT 8
zorefill参数
unsigned参数
插入数据长度超过设置长度但不超过默认长度允许插入
浮点数类型
FLOAT(M,D) M是长度,D是小数点后位数 4字节
DOUBLE(M,D) M是长度,D是小数点后位数 8字节
插入时四舍五入
定点数类型
DECIMAL(M,D) M是长度,D是小数点后位数
插入截取,有警告
如果不指定精度,FLOAT和DOUBLE默认会保存实际精度,但和实际操作系统和硬件有关。DECIMAL默认是10位的整数。
日期与时间类型
YEAR类型表示年份;
1字节 YYYY形式 范围1901-2155 超过范围变成0000
使用两位字符串输入: 00到69转换为2000到2069 输入70到99转换为1970-1999
TIME类型表示时间;
3字节 HH:MM:SS形式 范围-838:59:59到838:59:59
"D HH:MM:SS" D表示天数 范围0-34
“HHMMSS" 转换为HH:MM:SS 0和'0'转换为0000:00:00
CURRENT_TIME和NOW()输入当前时间
DATE类型表示日期
4个字节 YYYY-MM-DD 1000-01-01到9999-12-31
YYYY-MM-DD或者YYYYMMDD格式输入 YYYY/MM/DD YYYY@MM@DD YYYY.MM.DD
DATAETIME类型表示日期和时间
TIMESTAMP类型表示日期和时间
4个字节 形式YYYY-MM-DD HH:MM:SS 范围1970-0101 08:00:01到2038-01-19 11:14:07
字符串类型:
CHAR类型 0-255长度 长度固定
VARCHAR类型 0-65535长度 长度可变 占用实际长度+1
在创建表时指定最大长度 字符串类型(M)
TEXT类型
TINYTEXT 0-255字节 占用实际长度+2
TEXT 0-65535字节 占用实际长度+2
MEDIUMTEXT 占用实际长度+3
LONGTEXT 占用实际长度+4
ENUM类型
SET类型
二进制类型
BINARY和VARBINARY类型
创建表时指定最大类型
BIT类型
BLOG类型
如何选择数据类型?