MySQL - INT:初学者指南

你好,有抱负的数据库爱好者!今天,我们将深入MySQL的世界,探索它最基本的数据类型之一:INT。如果你是编程新手,不用担心——我会一步一步地引导你,就像我多年来为无数学生所做的那样。那么,让我们卷起袖子开始吧!

MySQL - INT

MySQL INT 数据类型

MySQL中的INT数据类型就像是数值数据类型家族中的强壮、可靠的劳动力。它用于存储不带小数点的整数。把它想象成一个可以容纳从-2,147,483,648到2,147,483,647的数字的盒子。这是一个很大的数字范围!

让我们创建一个简单的表来实际看看INT:

CREATE TABLE my_first_table (
id INT,
age INT,
score INT
);

在这个例子中,我们创建了一个名为my_first_table的表,其中包含三个列:idagescore。所有这些列都使用INT数据类型。

现在,让我们添加一些数据:

INSERT INTO my_first_table (id, age, score) VALUES (1, 25, 95);
INSERT INTO my_first_table (id, age, score) VALUES (2, 30, 88);
INSERT INTO my_first_table (id, age, score) VALUES (3, 22, 100);

在这里,我们向表中添加了三行数据。每个INSERT语句都会添加一个具有其id、age和score的新人。

MySQL INT 的自动递增

INT的一个很酷的功能是它可以自动递增。当你想为表中的每一行生成唯一标识符时,这非常有用。让我向你展示它是如何工作的:

CREATE TABLE auto_increment_example (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);

INSERT INTO auto_increment_example (name) VALUES ('Alice');
INSERT INTO auto_increment_example (name) VALUES ('Bob');
INSERT INTO auto_increment_example (name) VALUES ('Charlie');

在这个例子中,id列将自动分别分配1、2和3给Alice、Bob和Charlie。就像有一个帮助你为条目编号的好助手!

MySQL INT UNSIGNED

有时,你只需要正数。这时UNSIGNED就派上用场了。它有效地将INT可以持有的最大值翻倍,从0到4,294,967,295。

CREATE TABLE positive_numbers (
id INT UNSIGNED,
quantity INT UNSIGNED
);

INSERT INTO positive_numbers (id, quantity) VALUES (1, 100);
INSERT INTO positive_numbers (id, quantity) VALUES (2, 4294967295);

这个表只接受正数,这对于像数量或年龄这样的东西来说非常完美。

MySQL INT 的显示宽度属性

显示宽度属性不影响INT可以存储的值范围,但它可以使显示的数据看起来更美观。下面是如何工作的:

CREATE TABLE display_width_example (
id INT(4),
code INT(6) ZEROFILL
);

INSERT INTO display_width_example (id, code) VALUES (1, 123);
INSERT INTO display_width_example (id, code) VALUES (1000, 456789);

当你检索这些数据时,code将分别显示为000123和456789。就像在所有数字前面添加前导零以使它们具有相同的宽度。

MySQL INT 的 ZEROFILL 属性

ZEROFILL就像是显示宽度的最佳朋友。它自动用零填充你的数字以达到指定的宽度。让我们看看它是如何工作的:

CREATE TABLE zerofill_example (
id INT(5) ZEROFILL
);

INSERT INTO zerofill_example (id) VALUES (1);
INSERT INTO zerofill_example (id) VALUES (100);
INSERT INTO zerofill_example (id) VALUES (10000);

当你检索这些数据时,你将看到00001、00100和10000。这对于创建外观一致的代码或ID非常有用。

使用客户端程序使用 INT 数据类型

现在,让我们使用客户端程序将所有这些知识付诸实践。我将使用MySQL命令行客户端作为示例,但这些原则适用于任何MySQL客户端。

-- 连接到MySQL
mysql -u your_username -p

-- 创建数据库
CREATE DATABASE int_examples;

-- 使用数据库
USE int_examples;

-- 创建一个使用各种INT类型的表
CREATE TABLE int_showcase (
id INT AUTO_INCREMENT PRIMARY KEY,
regular_int INT,
unsigned_int INT UNSIGNED,
display_width_int INT(4),
zerofill_int INT(6) ZEROFILL
);

-- 插入一些数据
INSERT INTO int_showcase (regular_int, unsigned_int, display_width_int, zerofill_int)
VALUES (-1000, 1000, 123, 123);

INSERT INTO int_showcase (regular_int, unsigned_int, display_width_int, zerofill_int)
VALUES (2000000, 3000000, 45678, 45678);

-- 检索数据
SELECT * FROM int_showcase;

当你运行这段代码时,你将看到每种INT类型的行为都不同。regular_int可以持有负值,unsigned_int只持有正值,display_width_int看起来正常,而zerofill_int添加了前导零。

以下是我们在本文中介绍过的INT变体的总结表:

INT 类型 范围 示例用途
INT -2,147,483,648到2,147,483,647 通用整数存储
INT UNSIGNED 0到4,294,967,295 只存储正整数
INT AUTO_INCREMENT 与INT相同,但自动递增 主键,唯一标识符
INT(N) 与INT相同,但影响显示宽度 格式化输出
INT(N) ZEROFILL 与INT相同,用零填充 创建宽度一致的代码

好了,各位!我们已经穿越了MySQL INT的土地,从基础到一些小巧的技巧。记住,像学习任何新技能一样,掌握MySQL需要练习。所以不要害怕尝试这些概念。谁知道呢?你可能会成为编程圈子中的INT专家!愉快的查询!

Credits: Image by storyset