我知道在mysql中boolean是tinyint (1)
。
今天我看到一个表,它定义了一个整数,比如tinyint(2)
,还有其他的,比如int(4)
,int(6)
……
类型为integer和tinyint的字段中的大小是什么意思?
发布于 2012-10-11 20:56:41
(m)
表示列的显示宽度;MySQL客户机等应用程序在显示查询结果时使用它。
例如:
| v | a | b | c |
+-----+-----+-----+-----+
| 1 | 1 | 1 | 1 |
| 10 | 10 | 10 | 10 |
| 100 | 100 | 100 | 100 |
这里,a
、b
和c
分别使用TINYINT(1)
、TINYINT(2)
和TINYINT(3)
。如您所见,它使用显示宽度填充左侧的值。
重要的是要注意,它不会影响该特定类型的可接受的值范围,即TINYINT(1)
仍然接受[-128 .. 127]
。
发布于 2014-04-17 15:09:20
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)
发布于 2012-10-11 20:55:57
关于INT,TINYINT...这是不同的数据类型,INT是4字节的数字,TINYINT是1字节的数字。更多信息请点击此处- INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT。
TINYINT数据类型的语法是TINYINT(M),其中M表示最大显示宽度(仅当MySQL客户端支持时才使用)。
https://stackoverflow.com/questions/12839927
复制相似问题