一、数值型
1. 整型
整数类型 | 字节 | 范围 |
---|---|---|
Tinyint | 1 | 有符号:-128~127 无符号:0~255 |
Smallint | 2 | 有符号:-32768~32767 无符号:0~65535 |
Mediumint | 3 | -8388608~-8388607 |
Int、integer | 4 | -217483648~2147483647 |
Bigint | 8 | -9223372036854775808~9223372036854775807 |
特点:
- 默认有符号,设置无符号,添加unsigned关键字
- 如果插入的数值超出了整型的范围,会报out of range异常,并且插入临界值
- 如果不设置长度,会有默认的长度,使用zerofill关键字会将长度不够的数前填充0
2. 小数:
- 浮点数
浮点数类型 | 字节 | 范围 |
---|---|---|
float(M,D) | 4 | ... |
double(M,D) | 8 | ... |
- 定点数
定点数类型 | 字节 | 范围 |
---|---|---|
DEC(M,D) 、 DECIMAL(M,D) | M+2 | 最大取值范围和double相同,给定decimal的有效取值范围由M和D决定 |
特点:
- M和D:M代表有效数字位数,D代表小数点后的位数。
- M和D可省略,如果是decimal,则M默认为10,D默认为0,如果时候float和double,会根据插入的数值的精度来决定精度。
- 对精度要求较高,考虑使用定点数。
二、字符型
1. 较短的文本
字符串类型 | 最多字符数 | 范围 |
---|---|---|
char(M) | M | M为0~255的整数 |
varchar(M) | M | M为0~65535之间的整数 |
特点:
- char的长度固定,varchar的长度可变
- char的效率高,varchar的效率低
其他:binary和varbinaey保存较短的二进制、enum保存枚举、set保存集合
2. 较长的文本
- text
- blob(较长的二进制数据)
三、日期型
日期和时间类型 | 字节 | 最小值 | 最大值 |
---|---|---|---|
date | 4 | 1000-01-01 | 9999-12-31 |
datetime | 8 | 1001-01-01 00:00:00 | 9999-12-31 23:59:59 |
timestamp | 4 | 19700101080001 | 2038年的某个时刻 |
time | 3 | -838:59:59 | 838:59:59 |
year | 1 | 1901 | 2155 |
datetime不受时区影响,timestamp受时区影响