首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是含义参数TINYINT(参数)?

问什么是含义参数TINYINT(参数)?
EN

Stack Overflow用户
提问于 2014-04-16 22:22:05
回答 2查看 1.5K关注 0票数 2

我不明白为什么会有这样的选择。带符号的TINYINT数据类型可以存储介于-128和127之间的整数值。

代码语言:javascript
复制
mysql> create table b (i tinyint(1));

mysql> insert into b values (42);

mysql> select * from b;
+------+
| i    |
+------+
|   42 |
+------+
EN

回答 2

Stack Overflow用户

发布于 2014-04-16 22:24:15

在数据方面,tinyint(1)、tinyint(2)、tinyint(3)等都是完全相同的。对于SIGNED,它们都在-128到127之间;对于UNSIGNED,它们都在0到255之间。正如其他答案所指出的那样,括号中的数字只是一个显示宽度提示。

不过,您可能需要注意,application=wise看起来可能有所不同。在这里,tinyint(1)可以有特殊的含义。例如,连接器/J (Java connector)将tinyint(1)视为布尔值,它将值转换为true和false,而不是将数值结果返回给应用程序。这可以通过tinyInt1isBit=false连接参数进行更改。

由于数据类型为8位(1字节),tinyint(1)可以保存-128到127范围内的数字-显然,无符号tinyint可以保存0-255之间的值。

它将自动截断超出范围的值:

代码语言:javascript
复制
mysql> create table a
    -> (
    ->    ttt tinyint(1)
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> insert into a values ( 127 );
Query OK, 1 row affected (0.00 sec)

mysql> insert into a values ( -128 );
Query OK, 1 row affected (0.00 sec)

mysql> insert into a values ( 128 );
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into a values ( -129 );
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from a;
+------+
| ttt  |
+------+
|  127 |
| -128 |
|  127 |
| -128 |
+------+
4 rows in set (0.00 sec)

mysql>

..。除非您更改sql_mode或更改服务器配置:

代码语言:javascript
复制
mysql> set sql_mode=STRICT_ALL_TABLES;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into a values ( -129 );
ERROR 1264 (22003): Out of range value for column 'ttt' at row 1
mysql>

如您所料,DDL中用于数据类型(例如: tinyint(1))的值是显示宽度。但是,它是可选的,客户端不必使用它。例如,标准的MySQL客户端不使用它。

票数 4
EN

Stack Overflow用户

发布于 2014-04-16 22:26:28

数值数据类型的lenght参数仅影响显示宽度,而不影响可以存储的值。

代码语言:javascript
复制
TINYINT   -128 to 127 (or 0-255 unsigned)
SMALLINT  -32768 to 32767 (or 0-65535 unsigned)
MEDIUMINT -8388608 to 8388607 (or 0-16777215 unsigned)
INT       -2147483648 to 2147483647 (or 0-4294967295 unsigned)
BIGINT    -9223372036854775808 to 9223372036854775807 (or 0-18446744073709551615 unsigned)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23112203

复制
相关文章

相似问题

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