1、查看帮助
在进入MySQL命令行界面后,可以使用如下命令查看帮助文档,也可以访问 http://dev.mysql.com/doc 来查看官方文档
help;
? contents
? data types
2、创建测试库和表
create database `ucenter`;
use `ucenter`;
create table `t_datatypes`(
`id` int primary key auto_increment comment 'ID主键'
) comment '数据类型测试表';
3、数值类型
3.1、整数类型
关于整数类型中M类型的含义解释如下,例如int(M)
1、对于整数数据类型,M指示最大显示宽度。最大显示宽度为255。显示宽度与类型可以存储的值的范围无关
2、当存储的字符长度超过M值时,没有任何的影响,只要不超过数值类型限制的范围
3、当存储的字符长度小于M值时,只有在设置了zerofill用0来填充,才能够看到效果,换句话就是说,没有zerofill,M值就是无用的
4、从MySQL 8.0.17开始,对于整数数据类型,不建议使用M属性,并且在将来的MySQL版本中将不再支持该属性
类型 | 字节 | 最小值 | 最大值 |
---|---|---|---|
tinyint | 1 | 有符号-128 无符号0 | 有符号127 无符号255 |
smallint | 2 | 有符号-32768 无符号0 | 有符号32767 无符号65535 |
mediumint | 3 | 有符号-8388608 无符号0 | 有符号8388607 无符号16777215 |
int、integer | 4 | 有符号-2147483648 无符号0 | 有符号2147483647 无符号4294967295 |
bigint | 4 | 有符号-9223372036854775808 无符号0 | 有符号9223372036854775807 无符号18446744073709551615 |
3.2、浮点数类型(近似值)
m是总位数,d是后面的位数
类型 | 字节 | 最小值 | 最大值 | 备注 |
---|---|---|---|---|
float(m,d) | 4 | 单精度浮点型,是近似值,谨慎用于货币存储 | ||
double(m,d) | 8 | 双精度浮点型,是近似值,谨慎用于货币存储 |
3.3、定点数类型(精确值)
m是最大位数,从1-65,d是小数位,范围从0-30,不能大于m
类型 | 字节 | 最小值 | 最大值 | 备注 |
---|---|---|---|---|
dec(m,d)、decimal(m, d) | m+2 | 取值范围由m,d决定 | 取值范围由m,d决定 | 一般用于精确货币类型存储 |
3.4、位类型
类型 | 字节 | 最小值 | 最大值 | 备注 |
---|---|---|---|---|
bit(m) | 1-8 | bit(1) | bit(64) | m范围1-64,最大8个字节 |
4、日期和时间类型
类型 | 字节 | 最小值 | 最大值 | 备注 |
---|---|---|---|---|
date | 4 | 1000-01-01 | 9999-12-31 | 只能存储年月日 |
time | 3 | -838:59:59.000000 | 838:59:59.000000 | 只能存储时分秒 |
year | 1 | 1000 | 9999 | 只能存储年份 |
datetime | 8 | 1000-01-01 00:00:00.000000 | 9999-12-31 23:59:59.999999 | 存储年月日时分秒 |
timestamp | 4 | 1970-01-01 00:00:01.000000 | 2038-01-19 03:14:07.999999 | 时间戳类型,创建表时,可以设置默认为当前值,可以通过时间戳赋值 |
5、二进制类型
类型 | 字节 | 最小值 | 最大值 | 备注 |
---|---|---|---|---|
tinyblob | 255 | - | - | 存储二进制数据 |
blob | 65535 | - | - | 存储二进制数据 |
mediumblob | 16777215 | - | - | 存储二进制数据 |
longblob | 4294967295 | - | - | 存储二进制数据 |
6、字符串类型
类型 | 字节 | 最小值 | 最大值 | 备注 |
---|---|---|---|---|
char(m) | 4 | 0 | 255 | 定长字符串,始终用空格填充到字符串右边,所以无法存字符串,省略m时,m默认为1 |
varchar(m) | - | 0 | 65535 | 变长字符串,可以在末尾存字符串,m最大值65535 |
tinytext | 255 | - | - | 存储大文本数据 |
text | 65535 | - | - | 存储大文本数据 |
mediumtext | 16777215 | - | - | 存储大文本数据 |
longtext | 4294967295 | - | - | 存储大文本数据 |