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