什么是MySQL中的“unsigned”,何时使用它?

什么是MySQL中的“unsigned”,何时使用它?

MySQL中的“unsigned”是一种数据类型。每当我们将无符号数据写入任何列时,这意味着您无法插入负数。假设对于一个非常大的数字,您可以使用无符号类型。

无符号int的最大范围为4294967295。

注意:如果您插入负值,将会出现MySQL错误。

以下是无符号类型演示的示例。让我们首先创建一个带有“unsigned”列的表。以下是创建表的查询:

mysql> create table UnsignedDemoWithPositiveValue
   -> (
   -> Distance int unsigned
   -> );
Query OK, 0 rows affected (0.86 sec)

如果您尝试使用无符号4294967295插入上限值,则将生成错误,因为该值超出了范围。

插入超出范围的值。

mysql> insert into UnsignedDemoWithPositiveValue values(4294967296);
ERROR 1264 (22003): Out of range value for column 'Distance' at row 1

在上面的例子中,我插入了超出范围的4294967296,因此会生成错误。

现在我将另一个值4294967295插入表中。

mysql> insert into UnsignedDemoWithPositiveValue values(4294967295);
Query OK, 1 row affected (0.30 sec)

上面,您可以看到查询成功执行。

现在,让我们看另一个例子。如果您插入负记录,则可能会看到以下错误 –

mysql> insert into UnsignedDemoWithPositiveValue values(-124);
ERROR 1264 (22003): Out of range value for column 'Distance' at row 1

现在我只插入值为124的正值。查询如下 –

mysql> insert into UnsignedDemoWithPositiveValue values(124);
Query OK, 1 row affected (0.86 sec)

如上所述,查询成功执行。

让我们使用select语句显示记录。查询如下 –

mysql> select *from UnsignedDemoWithPositiveValue;

以下是输出 –

+------------+
| Distance   |
+------------+
| 4294967295 |
| 124        |
+------------+
2 rows in set (0.00 sec)

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程