3.1、数据类型介绍
* MySQL支持多种数据类型,主要有数值类型、日期/时间类型和字符串类型。
1、数值数据类型:
(1)、整数:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT
(2)、浮点小数:单精度FLOAT、双精度DOUBLE
(3)、定点小数类型:DECIMAL
浮点类型和定点类型都可以用(M,N)来表示,其中M表示精度,表示总共的位数;N表示标度,是表示小数的位数。
类型名称 |
说明 |
存储需求 |
float |
单精度浮点型 |
4个字节 |
double |
双精度浮点型 |
8个字节 |
decimal(M,D) |
压缩的“严格”定点数 |
M+2个字节 |
温馨提示:不论是定点还是浮点类型,如果用户指定的精度超出精度范围,就会四舍五入地进行处理。
例:创建表tmp2,其中x、y、z数据类型依次为float(5,1),double(5,1)和decimal(5,1),向表中插入数据5.12、5.15和5.123,如下:
2、时间与时间类型:
MySQL表示日期的数据类型:DATETIME、DATE、TIMESTAMP、TIME、YEAR
日期与时间数据类型:
类型 |
描述 |
存储需求 |
范围 |
DATETIME |
格式为YYYY-MM-DD HH:MM:SS |
8 |
1000-01-01 00:00:00~9999-12-31 23:59:59 |
DATE |
格式为YYYY-MM-DD |
3 |
1000-01-01~9999-12-31 |
TIMESTAMP |
格式为YYYY-MM-DD HH:MM:SS |
4 |
1970-01-01 00:00:01 UTC~2038-01-19 03:14:07 |
TIME |
HH:MM:SS |
3 |
-838:59:59~838:59:59 |
YEAR |
YYYY |
1 |
1901-2155 |
NOW()函数返回当前系统的日期和时间值,格式为“YYYY-MM-DD HH-:MM:SS”。
例子:
(1)、创建数据表tmp3,定义数据类型为YEAR的字段y,并向表中插入2010、'2010'
先创建数据库,并打开使用:
创建表tmp3
向表中插入数据,并查看:
(2)、向tmp3表中y字段插入2位字符串表示的YEAR值,为‘0’ ‘00’ ‘77’ 和‘10’。
先删除表中的数据:
向表中插入数据:
查看结果:
结果:字符串‘0’和‘00’的作用相同,都转换成2000年;‘77’转换为1977;‘10’转换2010。
(3)、创建表tmp4,定义数据类型为DATETIME的字段dt,向表中插入“YYYY-MM-DD HH:MM:SS ”和“YYYYMMDDHHMMSS”字符串格式好日期和时间值。
创建表tmp4:
向表中插入“YYYY-MM-DD HH:MM:SS ”和“YYYYMMDDHHMMSS”格式日期:
查看插入结果:
提示:1、为TIME列分配简写时,要注意如果没有冒号,MySQL解释值时,假定最右边的两位表示秒。
2、在使用‘D HH’格式时,小时一定要使用双位数值,如果是小于10的小时数,要在前面加0。
3、 使用CURRENT_DATE或者NOWO,插入当前系统日期。