热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

.Mysql数据类型之整型

MYSQL对于整型的划分应该说是最细致的,总共分了5档,由小到大分别是:TINYINT、SMALLINT、MEDIAINT、INT、BIGINT。BOOL类型和BIT类型也可以看做TINYINT(1),但此处还是暂时忽略不计。因为之

MYSQL对于整型的划分应该说是最细致的,总共分了5档,由小到大分别是:TINYINT 、 SMALLINT 、MEDIAINT 、INT 、 BIGINT。BOOL类型和BIT类型也可以看做TINYINT(1),但此处还是暂时忽略不计。因为之前习惯了Oracle中一个number就搞定所有数值的方式,所以最初这超细粒度的类型划分还是给我带来了不小的困惑。

TINYINT[(M)][UNSIGNED][ZEROFILL]
一个微小整数。-128–127(SIGNED);0–255(UNSIGNED),需要一个字节的存储。

SMALLINT[(M)][UNSIGNED][ZEROFILL]
一个小整数。从 -2^15 (-32768) 到 2^15 – 1 (32767) 的整型数据。存储大小为 2 个字节。

MEDIAINT[(M)][UNSIGNED][ZEROFILL]
一个中等整数。从 -2^23 (8388608) 到 2^23 – 1 (8388607) 的整型数据。存储大小为 3 个字节。

INT[(M)][UNSIGNED][ZEROFILL]
从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。

BIGINT[(M)][UNSIGNED][ZEROFILL]
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。

说明:

M的含义:
M indicates the maximum display width for integer types. The maximum legal display width is 255. Display width is unrelated to the range of values a type can contain.

示例1:

mysql> CREATE TABLE test1(id TINYINT(1));
Query OK, 0 rows affected (0.06 sec)

mysql> INSERT INTO test1 VALUES(123);
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM test1;
+------+
| id   |
+------+
|  123 |
+------+
1 row in set (0.00 sec)

从上面示例中可以看出,M并没有限制可以插入的数值。

示例2:

mysql> CREATE TABLE test2(id TINYINT(3) ZEROFILL) ;
Query OK, 0 rows affected (0.06 sec)

mysql> INSERT INTO test2 VALUES(1);
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM test2;
+------+
| id   |
+------+
|  001 |
+------+
1 row in set (0.00 sec)

从上面示例中可以看出,M需要和ZEROFILL配合使用才能发挥作用,用来控制整数数值的显示位数。如果实际数值位数小于所设置的M值,则从左补 0 。

UNSIGNED的含义
表示该字段不允许存储负值。

ZEROFILL的含义
为该值补0,而不是常用的空格,并且将其自动变为 UNSIGNED 。


推荐阅读
author-avatar
燕过无痕GY_274
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有