整数类型
- tinyint:1个字节(微小整数)
- smallint:2个字节(小整数)
- mediumint:3个字节(中等大小整数)
- int(integer):4个字节(普通大小整数)
- bigint:8个字节(大整数)
浮点数类型
- float:4个字节,单精度(最多5位小数)
- double:8个字节,双精度(最多16位小数)
定点数类型
decimal:定点数类型,底层实际上采用字符串形式存储数字。语法:decimal(m, d),例如:decimal(3, 2)表示3个有效数字,2个小数(有效数字最多65个,小数位最多30个)。
日期时间类型
- year:1个字节,只存储年,格式YYYY
- time:3个字节,只存储时间,格式HH:MM:SS / HHMMSS
- date:3个字节,只存储年月日,格式:YYYY-MM-DD
- datetime:8个字节,存储年月日+时分秒,格式:YYYY-MM-DD HH:MM:SS(范围从公元1000年~公元9999年)
- timestamp:4个字节,存储年月日+时分秒,格式:YYYY-MM-DD HH:MM:SS(范围从公元1970年~公元2038年,TIMESTAMP会受时区影响)或者格式为 YYYYMMDDHHMMSS(采用这种格式不需要使用单引号,当然想使用单引号也可以)
字符类型
- char(m)
m表示列长,范围是0~255个字符。保存时,在右侧填充空格以达到指定长度。例如,char(4)定义了一个固定长度的字符串列,包含的字符个数最大为4。当插入字符长度大于4,则报错(除非超过4个长度之后都是空格字符,则空格字符会自动被删除用来保证插入的成功) - varchar(m)
m长度是0~16383个字符,长度可变的字符串。例如,varchar(50)定义了一个最大长度为50的字符串,如果插入字符串只有10个,则实际存储的字符串为10个字符和一个字符串结束字符。varchar在值保存和检索时尾部的空格仍保留。varchar最大实际长度由最长行大小和使用字符集确定,而实际占用空间为字符串实际长度加1 text类型
- tinytext 表示长度为255字符的text列
- text 表示长度为65535字符的text列
- mediumtext 表示长度为16777215字符的text列
- longtext 表示长度为 4294967295 或 4GB 字符的text列
- enum类型
语法:<字段名> enum('值1', '值2', ...)。该字段插入值时,只能是指定的枚举值 - set类型
语法:<字段名> set('值1', '值2', ...)。该字段插入值时,只能是指定的值。注意:值不可重复
二进制类型
BLOB类型:二进制大对象,可以存储图片、声音、视频等文件:
- blob:小的,最大长度65535个字节
- mediumblob:中等,最大长度16777215个字节
- longblob:大的,最大长度4GB的字节