MySQL数据库的基本数据类型

数值型数据类型主要用来存储数字,包含的类型有:

TINYINT、SMALLINT、MEDIUMINT、 INT(INTEGER)、 BIGINT。

下面通过一个例子来查看各种类型的所占有的数据空间,注意,我使用的版本是MySQL5.6.28,可以通过下面的命令来查看:

linuxidc_image001

创建表tmp1,其中字段x、y、z、m、n数据类型依次为TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,SQL语句如下:

CREATE TABLE tmp1 ( x TINYINT, y SMALLINT, z MEDIUMINT, m INT, n BIGINT );

执行成功之后,便用DESC查看表结构,结果如下:

DESC tmp1;

linuxidc_image002

可以看到,TINGINT占4位(1个字节),SMALLINT占6位,MEDIUMINT占9位,INT占11位,BIGINT占20位

浮点数类型与定点数类型

MySQL使用浮点数和定点数来表示小数。包含的类型有:

浮点类型:FLOAT、DOUBLE。

定点类型:DECIMAL。

测试案例:

创建表tmp2,其中字段x、y、z数据类型依次为FLOAT(5,1)、DOUBLE(5,1)和DECIMAL(5,1),向表中插入数据5.12、5.15和5.123,SQL语句如下:

CREATE TABLE tmp2 ( x FLOAT(5,1), y DOUBLE(5,1), z DECIMAL(5,1) );

向表中插入数据:

INSERT INTO tmp2 VALUES(5.12, 5.15, 5.123);

linuxidc_image003

可以看到在插入数据时,MySQL给出了一个警告信息,使用SHOW WARNINGS;语句查看警告信息:

SHOW WARNINGS;

linuxidc_image004

说‘z’这一列的数据被截断了,使用下面的SQL语句看看刚刚插入的数据:

SELECT * FROM tmp2;

linuxidc_image005

日期与时间类型

MySQL中有多种表示日期的数据类型。它们是:

DATETIME、DATE、TIMESTAMP、TIME和YEAR。

YEAR类型测试案例:

创建数据表tmp3,定义数据类型为YEAR的字段y,向表中插入值2010,’2010’,’2166’,SQL语句如下:

首先创建表tmp3:

CREATE TABLE tmp3( y YEAR );

向表中插入数据:

INSERT INTO tmp3 values(2010),('2010');

linuxidc_image006

可以知道,YEAR类型的数据在MySQL中是按照字符串格式存储的。查看一下YEAR类型数据所占用的字节空间:

linuxidc_image007

可以看到,MySQL中YEAR类型的数据占用一个字节的数据空间。

再次向表中插入数据:

INSERT INTO tmp3 values ('2166');

语句执行之后,MySQL给出了一条警告提示,使用SHOW查看错误信息:

SHOW WARNINGS;

linuxidc_image008

可以看到,插入的第3个值2166超过了YEAR类型的取值范围,此时不能正常的执行插入操作,查看结果:

SELECT * FROM tmp3;

linuxidc_image009

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/fd3beaf12212e6812c6a415af61ed7be.html