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、年齡和得分。

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列將自動為Alice、Bob和Charlie分别分配1、2和3。這就像有一個幫助你為條目編號的有用的助手!

MySQL INT UNGINED

有時候,你只需要正數。這時UNGINED就派上用場了。它有效地將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