在 MySQL 中 unsigned
本教程旨在了解 MySQL 中的 unsigned。
在 MySQL 中使用 unsigned
关键字
企业和组织必须为某些列分配数据类型为无符号。但是,在使用此数据类型之前了解何时何地使用它很重要。
虽然我们知道 int
可用于提供从 -2147483648 到 2147483647 范围内的任何值,但无符号数据类型的工作方式略有不同。
它不能支持负值。此外,它的范围从 0 增加到 4294967295。
因此,很明显有两个特定的实例可以选择使用无符号数据类型。
-
当业务不需要特定列的负值时,我们可以在这种情况下选择无符号数据类型。例如,考虑一家以产品为基础的公司。
如果公司要为其表的销售列分配数据类型,他们可以为销售列分配无符号数据类型。这是因为 sales 列中的值永远不会是负数。
-
其次,如果一个组织需要非常大的正整数值用于列,他们可能会为该列分配无符号数据类型。例如,如果一个基于产品的组织要了解其销售的总收入,它可能必须处理非常大的数字。
这些数字可能会导致整数范围或限制溢出。组织可以为该列分配无符号数据类型以消除这种情况。
现在我们知道什么时候使用这种数据类型了。让我们了解这种数据类型是如何工作的,并在表格中将其可视化。
但是,在开始之前,我们创建了三个虚拟数据集以供使用。在这里,我们创建了一个表 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 数据类型。