MySQL全面瓦解3:数据类型介绍与分析

MySQL支持很多数据类型,以便我们能在复杂的业务场景中支持各种各样的数据格式,存储适当的数据内容。我们在设计数据库时,正确的使用数据库类型对整个数据库的整洁和高效,会有很大的帮助。

目前常用的数据类型大致上可以分为4大类:整数类型、浮点数类型、字符串(字符)类型、日期/时间类型。详细如下

4大类   主要类型  
整数类型   tinyint smallint mediumint int bigint
 

浮点数类型

  float double decimal
 
字符串(字符)类型   char varchar tinyblob blob mediumblob longblob tinytext text mediumtext longtext
 
日期/时间类型   Date DateTime TimeStamp Time Year
 

 

数值类型

MySQL支持所有标准SQL数值数据类型,包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),还有近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION),所以MySQL中数据类型是丰富且完整的。

而作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。在下面的表格中,我们总结了5个整数类型的存储大小和取值范围。

类型 字节数 有符号值范围 无符号值范围 作用
TINYINT   1 byte   (-128,127)     (0,255)   小整数值  
SMALLINT   2 bytes   (-32 768,32 767)   (0,65 535)   大整数值  
MEDIUMINT   3 bytes   (-8 388 608,8 388 607)   (0,16 777 215)   大整数值  
INT或INTEGER   4 bytes   (-2 147 483 648,2 147 483 647)   (0,4 294 967 295)   大整数值  
BIGINT   8 bytes   (-9,223,372,036,854,775,808,9 223 372 036 854 775 807)   (0,18 446 744 073 709 551 615)   极大整数值  

 

我们创建表赋予的类型默认是有符号类型的,无符号的需要在类型需要后面跟上unsigned 标记,上面的数据范围是根据字节对应二进制换算,比如一个字节转化为十进制最大为255(11111111),最小为0(00000000),具体可以去查下二进制表示相关资料。

测试一下:

1 mysql> create table tinyintdemo( 2 tiny TINYINT, 3 tinyunsi TINYINT UNSIGNED 4 ); 5 Query OK, 0 rows affected 6 7 mysql> insert into tinyintdemo values(-128,-128); 8 1264 - Out of range value for column 'tinyunsi' at row 1 9 mysql> insert into tinyintdemo values(-128,0); 10 Query OK, 1 row affected 11 12 mysql> insert into tinyintdemo values(255,255); 13 1264 - Out of range value for column 'tiny' at row 1 14 mysql> insert into tinyintdemo values(127,255); 15 Query OK, 1 row affected

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

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