MySql_05 MySQL中的数据类型
MySQL中的数据类型大概包含:
- 整数类型
- 浮点类型
- 字符串类型
- 日期时间类型
- 二进制类型
1、整数类型:
数据类型 | 存储范围 |
---|---|
TINYINT | 有符号值:-128 到 127(-27 到 27-1) 无符号值:0 到 255(0 到 28-1) |
SMALLINT | 有符号值:-32768 到 32768(-215 到 215-1) 无符号值:0 到 65535(0 到 216-1) |
MEDIUMINT | 有符号值:-8388608 到 8388607(-223 到 223-1) 无符号值:0 到 16777215(0 到 224-1) |
INT | 有符号值:-2147683648 到 2147683647(-231 到 231-1) 无符号值:0 到 4294967295(0 到 232-1) |
BIGINT | 有符号值:-9223372036854775808 到 9223373036854775807(-263 到 263-1) 无符号值:0 到 18446744073709551615(0 到 264-1) |
BOOL,BOOLEAN | 等价于TINYINT(1),0为false,其余为true |
取值范围无需记住,我们可以通过帮助手册来查询,例如我们忘记了 TINYINT 的取值范围:
1 | mysql> help TINYINT |
我们有三种方法查看手册:
- help TINYINT
- ? TINYINT
- \h TINYINT
2、浮点类型:
数据类型 | 存储范围 |
---|---|
FLOAT[(M,D)] | 负数取值范围为-3.40E+38到-1.17E-38、0和1.175E-38到3.40E+38。 M是数字总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。 |
DOUBLE[(M,D)] | -1.79E+308到-2.22E-308、0和2.22E-308到1.79E+308。 |
DECIMAL[(M,D)] | 和DOUBLE一样,内部以字符串形式存储数值 |
3、字符串类型:
列表型 | 存储需求 |
---|---|
CHAR(M,D) | M个字节,0 <= M <= 255 |
VARCHAR(M) | L+1个字节,其中L<= M 且 0 <= M <= 65535 |
TINYTEXT | L+1个字节,其中 L < 28 |
TEXT | L+2个字节,其中 L < 216 |
MEDIUMTEXT | L+3个字节,其中 L < 224 |
LONGTEXT | L+4个字节,其中 L < 232 |
ENUM(‘value1’,’value2’,…) | 1或2字节,取决于枚举值个数,最多65636个值 |
SET(‘value1’,’value2’,…) | 1或2字节,取决于SET成员的个数,最多64个值 |
4、日期时间类型:
列表型 | 存储范围 |
---|---|
TIME | -838:59:59~838:59:59 |
DATE | 1000-01-01~9999-12-31 |
DATETIME | 1000-01-01 00:00:00~9999-12-31 23:59:59 |
TIMESTAMP | 1970-01-01 00:00:01 UTC~2038-01-19 03:14:07 |
YEAR | 1901~2155 |
5、二进制类型
一般保存二进制文件,用的比较少