Mysql 简明教程
MySQL - TINYINT
The MySQL TINYINT Data Type
MySQL TINYINT 数据类型用于将整数值存储在非常小的范围内。它仅占用 1 字节(8 位)存储,对于有符号的 TINYINT 来说可以容纳 -128 到 127 的值,对于无符号的 TINYINT 来说可以容纳 0 到 255 的值。
当你在 MySQL 中定义一个 TINYINT 列时,默认情况下它被认为是有符号的。这意味着它可以在特定范围内容纳正数和负数。此外,你可以使用“TINYINT”或“INT1”来定义这种列,因为它们以相同的方式工作。
Example
首先,让我们使用以下查询创建一个名为 tinyint_table 的表 -
CREATE TABLE tinyint_table (
col1 TINYINT,
col2 TINYINT UNSIGNED,
col3 TINYINT ZEROFILL
);
以下是所获得的输出 −
Query OK, 0 rows affected, 1 warning (0.03 sec)
现在,让我们尝试将某些值(128、128、128)插入这些列,如下所示 -
INSERT INTO tinyint_table VALUES (128, 128, 128);
col1 中的值会生成错误,因为我们插入的值超出了范围 -
ERROR 1264 (22003): Out of range value for column 'col1' at row 1
接下来,如果我们尝试在 TINYINT UNSIGNED 列 (“col2”) 中插入一个负值,它将导致错误,因为 UNSIGNED 值不能是负数 -
INSERT INTO tinyint_table VALUES (127, -120, 128);
显示的错误信息如下 -
ERROR 1264 (22003): Out of range value for column 'col2' at row 1
同样,如果我们将 -128 插入 TINYINT ZEROFILL 列 (“col3”),系统会生成一个错误 −
INSERT INTO tinyint_table VALUES (127, 128, -128);
输出如下所示:
ERROR 1264 (22003): Out of range value for column 'col3' at row 1
但是,如果我们插入有效范围内的值,插入操作会成功,如下所示 −
INSERT INTO tinyint_table VALUES (127, 128, 128);
以下是上面代码的输出: -
Query OK, 1 row affected (0.01 sec)
最后,我们可以使用以下 SELECT 查询检索表中所有已有的记录 −
SELECT * FROM tinyint_table;
该查询将显示以下结果 −