1、数值型数据
1.1 整数型
- tinyint:迷你整型,1个字节(常用)
- smallint:2个字节
- mediumint:3个字节
- int:4个字节(常用)
- bigint:8个字节
声明无符号类型: tinyint unsigned
字段的数据类型后边括号内的数字表示
数据的显示宽度。
为保证数据的格式,使用0在数据前填充:
tinyint zerofill
(数值自动变为无符号)
1.2 小数型
1.2.1 浮点型:
- float:单精度,4字节,精度范围7位左右;
- double:双精度,8字节,精度范围15位左右。
声明:
- float 表示没有小数部分;
- float(M,D) 表示M为总长度,D表示小数部分的长度。
1.2.2 定点型:
声明:decimal(M,D)
2、日期时间型
- datetime:日期时间,其格式为
yyyy-MM-dd HH:mm:ss
,表示的范围是从 1000 年到 9999 年,有零值,即0000-00-00 0000:00
; - date:日期,就是datetime的date部分;
- time:时间,或者说是时间段,为指定的某个时间区间之间,包含正负时间;
- timestamp:时间戳,但并不是真正意义上的时间戳,其是从1970年开始计算的,格式和datetime一致,默认为非空;
- year:年份,共有两种格式,分别为year(2)和year(4)。
3、字符串型
- 定长字符串:char(L),浪费空间,但效率高;
- 变长字符串:varchar(L),节省空间,但效率低;
- 文本字符串:text,存储文字,当存储长度超过255个字符,使用text;
- 枚举字符串:enum('元素1','元素2','元素3' ... ),存储的数据只能是事先定义好的数据。
- 集合字符串:set('元素1','元素2','元素3', ... ),可以使用元素列表中的多个元素,用逗号分隔,集合字符串中每一个元素都对应一个二进制位,其中被选中的为
1
,未选中的为0
,最后在反过来,这个二进制数对应的十进制数即为其数据库中实际存储的是数值。
MySQL 中规定:任何一条记录最长不超过 65535 个字节,这意味着varchar永远达不到理论最大值。
varchar实际存储长度由编码字符集决定。