MySQL int类型

您所在的位置:网站首页 代码中int MySQL int类型

MySQL int类型

2024-05-21 15:14| 来源: 网络整理| 查看: 265

在本教程中,您将了解MySQL INT或整数数据类型以及如何在数据库表设计中使用它。 另外,我们将向您展示如何使用表中整数列的显示宽度和ZEROFILL属性。

MySQL INT类型简介

在MySQL中,INT代表整数。整数可以写成没有分数的数值,例如,它可以是1,100,4,-10等,它不能是1.2,5/3等。整数可以是零,正和负。

MySQL支持所有标准SQL整数类型INTEGER、INT和SMALLINT。 此外,MySQL提供TINYINT, MEDIUMINT,BIGINT作为标准SQL的扩展。

MySQL INT数据类型可以是有符号或无符号。下表说明了每个整数类型的特性,包括以字节为单位的存储,最小值和最大值。

在列中使用INT

由于整数类型表示精确数字,因此通常将其用作表的主键。此外,INT列可以具有AUTO_INCREMENT属性。

当在INT AUTO_INCREMENT列中插入NULL值或0时,列的值将设置为下一个序列值。 请注意,序列值以1开始。

在AUTO_INCREMENT列中插入不为NULL或零的值时,列接受该值。 此外,序列将重置为插入值的下一个值。

我们来看一个使用带有AUTO_INCREMENT属性的整数列的表的例子。

首先,使用以下语句创建一个名为items的新表,其中整数列为主键:

USE testdb; CREATE TABLE items ( item_id INT AUTO_INCREMENT PRIMARY KEY, item_text VARCHAR(255) );

可以在上面的CREATE TABLE语句中使用INT或INTEGER,因为它们是可互换的。 每当在items表中插入一个新行时,item_id列的值将增加1。

接下来,以下INSERT语句在items表中插入三行数据。

INSERT INTO items(item_text) VALUES('laptop'), ('mouse'),('headphone');

然后,使用以下SELECT语句从items表查询数据:

SELECT * FROM items;

之后,插入一个新的行,该行的item_id列的值要明确指定。

INSERT INTO items(item_id,item_text) VALUES(10,'Server');

因为item_id列的当前值为10,所以序列将重置为11。如果插入新行,则AUTO_INCREMENT列将使用11作为下一个值。

INSERT INTO items(item_text) VALUES('Router');

最后,再次查询items表中的数据,如下结果。

SELECT * FROM items;

请注意,由于自MySQL 5.1版本起,AUTO_INCREMENT列只接受正值。AUTO_INCREMENT列不支持负数值。

MySQL INT和显示宽度属性

MySQL提供了一个扩展,允许您指定显示宽度以及INT数据类型。显示宽度包含在INT关键字后面的括号内,例如,INT(5)指定一个显示宽度为五位数的INT。

要注意的是,显示宽度属性不能控制列可以存储的值范围。显示宽度属性通常由应用程序用于格式化整数值。 MySQL将显示宽度属性作为返回结果集的元数据。

具有ZEROFILL属性的MySQL INT

除了显示宽度之外,MySQL还提供了非标准的ZEROFILL属性。 在这种情况下,MySQL将空格替换为零。请参考以下示例。

首先,使用以下语句创建一个名为zerofill_tests的表:

USE testdb; CREATE TABLE zerofill_tests( id INT AUTO_INCREMENT PRIMARY KEY, v1 INT(2) ZEROFILL, v2 INT(3) ZEROFILL, v3 INT(5) ZEROFILL );

其次,在zerofill_tests表中插入一个新行。

INSERT into zerofill_tests(v1,v2,v3) VALUES(1,6,9);

第三,从zerofill_tests表查询数据。

SELECT v1, v2, v3 FROM zerofill_tests;

v1列的显示宽度为2,包括ZEROFILL,它的值为1,因此在输出中看到01。 MySQL将第一个空格替换为0。

v2列具有包含ZEROFILL的显示宽度3。 它的值为6,因此将看到有00作为前导零。

v3列具有包含ZEROFILL的显示宽度5,它的值为9,因此MySQL在输出数字的开头填零为0000。

请注意,如果对整数列使用ZEROFILL属性,MySQL将自动将一个UNSIGNED属性添加到该列。

在本教程中,我们向您展示了如何在表中使用MySQL INT数据类型,并向您介绍了整数列的显示宽度和ZEROFILL属性。

以下是纠正/补充内容: signed 和 unsigned图表中对应的 min 和 max值有误, TINYINT signed min 应该为 -2^7 max 应该为 2^7, 以此类推SMALLINT MEDIUMINT INT BIGINT  提交时间:2021-10-12

上一篇: MySQL数据类型 下一篇: MySQL技巧


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3