在 MySQL 中 unsigned

Preet Sanghavi 2022年5月13日
在 MySQL 中 unsigned

本教程旨在了解 MySQL 中的 unsigned。

在 MySQL 中使用 unsigned 关键字

企业和组织必须为某些列分配数据类型为无符号。但是,在使用此数据类型之前了解何时何地使用它很重要。

虽然我们知道 int 可用于提供从 -2147483648 到 2147483647 范围内的任何值,但无符号数据类型的工作方式略有不同。

它不能支持负值。此外,它的范围从 0 增加到 4294967295。

因此,很明显有两个特定的实例可以选择使用无符号数据类型。

  1. 当业务不需要特定列的负值时,我们可以在这种情况下选择无符号数据类型。例如,考虑一家以产品为基础的公司。

    如果公司要为其表的销售列分配数据类型,他们可以为销售列分配无符号数据类型。这是因为 sales 列中的值永远不会是负数。

  2. 其次,如果一个组织需要非常大的正整数值用于列,他们可能会为该列分配无符号数据类型。例如,如果一个基于产品的组织要了解其销售的总收入,它可能必须处理非常大的数字。

    这些数字可能会导致整数范围或限制溢出。组织可以为该列分配无符号数据类型以消除这种情况。

现在我们知道什么时候使用这种数据类型了。让我们了解这种数据类型是如何工作的,并在表格中将其可视化。

但是,在开始之前,我们创建了三个虚拟数据集以供使用。在这里,我们创建了一个表 student_details_dummy 以及几行。

-- create the table student_details
CREATE TABLE student_details_dummy(
  stu_id int unsigned,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details_dummy
INSERT INTO student_details_dummy(stu_id,stu_firstName,stu_lastName)
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

如我们所见,我们将 stu_id 设置为表 student_details 的主键。它将确保此列中的值不能重复或 NULL

此外,我们将 stu_id 列的数据类型设置为 unsigned。上面的查询创建了一个表,其中包含学生的名字和姓氏。

要查看数据中的条目,我们使用以下代码。

SELECT * FROM student_details_dummy;

上面的代码将给出以下输出。

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

现在让我们尝试使用 MySQL 中的 DESCRIBE TABLE 语句来可视化该表的详细信息。

DESCRIBE 语句帮助我们可视化表格,以便我们可以深入了解表格的每个字段。

它还向我们展示了分配给任何列的任何键、分配给每列的数据类型以及与表相关的任何其他额外信息。可以借助以下查询来说明此语句。

DESCRIBE name_of_the_table;

在我们的例子中,我们需要编写以下查询来检查与表中每一列关联的数据类型。

DESCRIBE student_details_dummy;

该查询将获取我们以下输出。

Field				Type			Null	Key		Default		Extra
stu_id				int unsigned	NO		PRI
stu_firstName		varchar(255)	YES
stu_lastName		varchar(255)	YES

因此,借助 unsigned 关键字和 DESCRIBE 语句,我们可以有效地从 MySQL 中的表中分配和可视化 unsigned 数据类型。

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub