首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySql: Tinyint (2)和tinyint(1) -有什么不同?

MySql: Tinyint (2)和tinyint(1) -有什么不同?
EN

Stack Overflow用户
提问于 2012-10-11 20:49:16
回答 4查看 270.3K关注 0票数 217

我知道在mysql中boolean是tinyint (1)

今天我看到一个表,它定义了一个整数,比如tinyint(2),还有其他的,比如int(4)int(6)……

类型为integer和tinyint的字段中的大小是什么意思?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-12-03 02:33:34

意思是display width

无论您使用tinyint(1)还是tinyint(2),都没有任何区别。

我总是使用tinyint(1)和int(11),我使用了几个mysql客户端(navicat,sequel pro)。

这根本没有任何意义!我运行了一个测试,上面所有的客户端,甚至命令行客户端似乎都忽略了这一点。

但是,如果您使用的是ZEROFILL选项,则display width是最重要的,例如,您的表格有以下两列:

A tinyint(2) zerofill

B零位(4)零位

两列的值都为1,对于A列,输出为01;对于B,输出为0001,如下面的屏幕截图所示:)

票数 129
EN

Stack Overflow用户

发布于 2012-10-11 20:56:41

(m)表示列的显示宽度;MySQL客户机等应用程序在显示查询结果时使用它。

例如:

代码语言:javascript
运行
复制
| v   | a   |  b  |   c |
+-----+-----+-----+-----+
| 1   | 1   |  1  |   1 |
| 10  | 10  | 10  |  10 |
| 100 | 100 | 100 | 100 |

这里,abc分别使用TINYINT(1)TINYINT(2)TINYINT(3)。如您所见,它使用显示宽度填充左侧的值。

重要的是要注意,它不会影响该特定类型的可接受的值范围,即TINYINT(1)仍然接受[-128 .. 127]

票数 245
EN

Stack Overflow用户

发布于 2014-04-17 15:09:20

代码语言:javascript
运行
复制
mysql> CREATE TABLE tin3(id int PRIMARY KEY,val TINYINT(10) ZEROFILL);
Query OK, 0 rows affected (0.04 sec)

mysql> INSERT INTO tin3 VALUES(1,12),(2,7),(4,101);
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM tin3;
+----+------------+
| id | val        |
+----+------------+
|  1 | 0000000012 |
|  2 | 0000000007 |
|  4 | 0000000101 |
+----+------------+
3 rows in set (0.00 sec)

mysql>

mysql> SELECT LENGTH(val) FROM tin3 WHERE id=2;
+-------------+
| LENGTH(val) |
+-------------+
|          10 |
+-------------+
1 row in set (0.01 sec)


mysql> SELECT val+1 FROM tin3 WHERE id=2;
+-------+
| val+1 |
+-------+
|     8 |
+-------+
1 row in set (0.00 sec)
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12839927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档