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
的表,其中包含三个列:id
、age
和score
。所有这些列都使用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