MySQL - TINYINT:初學者指南

你好,未來的數據庫大師!今天,我們將進入 MySQL 的世界,並探索一個微小但強大的數據類型:TINYINT。不要讓它的大小愚弄你;這個小東西在存儲小型整數值時效率驚人。所以,戴上你們的虛擬安全帽,讓我們開始探索 TINYINT 的世界吧!

MySQL - TINYINT

MySQL 的 TINYINT 數據類型

TINYINT 是什麼?

TINYINT 是 MySQL 的整數數據類型之一,設計用於存儲小型整數。把它想像成整數世界的微型車——小巧、高效,並且對短途旅行(或者在我們的例子中,小數字)非常合適。

鍵特徵

  1. 大小:TINYINT 使用僅 1 個字节的存儲空間。
  2. 範圍
  • 有符號:-128 至 127
  • 無符號:0 至 255

當使用 TINYINT

TINYINT 非常適合存儲小型整數值的場景。例如:

  • 年齡(0-255 歲應該足夠了,對吧?即使對吸血鬼來說也是!)
  • 評分(1-5 星)
  • 小型計數器
  • 布爾值(0 或 1)

語法

column_name TINYINT[(M)] [UNSIGNED] [ZEROFILL]

讓我們分解一下:

  • M:可選的顯示寬度(0-255)
  • UNSIGNED:將範圍設為 0 至 255
  • ZEROFILL:用前導零填充值的顯示

實戰 TINYINT:使用客戶端程序

現在,讓我們捲起袖子,看看 TINYINT 的實際應用。我們將使用一些例子來說明如何在 MySQL 中使用這個數據類型。

創建包含 TINYINT 的表

讓我們創建一個簡單的表來存儲關於書籍評分系統的信息:

CREATE TABLE book_ratings (
id INT AUTO_INCREMENT PRIMARY KEY,
book_name VARCHAR(100),
rating TINYINT UNSIGNED,
is_recommended TINYINT(1)
);

在這個例子中:

  • rating 使用 TINYINT UNSIGNED 來存儲從 0 至 5 的評分。
  • is_recommended 使用 TINYINT(1) 作為布爾值(0 為假,1 為真)。

插入數據

讓我們添加一些書籍評分:

INSERT INTO book_ratings (book_name, rating, is_recommended)
VALUES
('The MySQL Handbook', 5, 1),
('SQL for Dummies', 3, 0),
('Database Design 101', 4, 1);

查詢 TINYINT 數據

現在,讓我們检索我們的數據:

SELECT * FROM book_ratings;

輸出:

+----+----------------------+--------+----------------+
| id | book_name            | rating | is_recommended |
+----+----------------------+--------+----------------+
|  1 | The MySQL Handbook   |      5 |              1 |
|  2 | SQL for Dummies      |      3 |              0 |
|  3 | Database Design 101  |      4 |              1 |
+----+----------------------+--------+----------------+

在條件中使用 TINYINT

TINYINT 在 WHERE 子句中效果非常好:

SELECT book_name, rating
FROM book_ratings
WHERE rating > 3 AND is_recommended = 1;

這個查詢會檢索評分高且推薦的書籍。

TINYINT 作為布爾值

雖然 MySQL 有 BOOLEAN 類型,但它實際上是 TINYINT(1) 的別名。以下是使用方法:

CREATE TABLE task_list (
id INT AUTO_INCREMENT PRIMARY KEY,
task_name VARCHAR(100),
is_completed BOOLEAN
);

INSERT INTO task_list (task_name, is_completed)
VALUES
('Learn MySQL', TRUE),
('Master TINYINT', FALSE);

SELECT * FROM task_list;

輸出:

+----+----------------+--------------+
| id | task_name      | is_completed |
+----+----------------+--------------+
|  1 | Learn MySQL    |            1 |
|  2 | Master TINYINT |            0 |
+----+----------------+--------------+

TINYINT 的方法和函數

以下是與 TINYINT 一起使用的一些有用的方法和函數:

方法/函數 描述 示例
ABS() 返回絕對值 SELECT ABS(TINYINT_COLUMN) FROM TABLE;
SIGN() 返回標誌(-1、0 或 1) SELECT SIGN(TINYINT_COLUMN) FROM TABLE;
MOD() 返回餘數 SELECT MOD(TINYINT_COLUMN, 3) FROM TABLE;
GREATEST() 返回最大值 SELECT GREATEST(TINYINT_COL1, TINYINT_COL2) FROM TABLE;
LEAST() 返回最小值 SELECT LEAST(TINYINT_COL1, TINYINT_COL2) FROM TABLE;

結論

好了,各位!我們對 MySQL 中的 TINYINT 數據類型進行了一次旋風式的巡禮。從它緊湊的大小到存儲小型整數值甚至布爾值的多用性,TINYINT 證明了有時候最好的東西來自於小包裝。

記住,選擇正確的數據類型對於數據庫的性能和效率至關重要。TINYINT 可能看起來很小,但在處理數百萬行數據時,它可能會產生巨大的影響!

在你繼續 MySQL 的旅程時,請將 TINYINT 留在你的工具箱中。它就像那把可靠的口袋刀——小巧,但在需要時非常有用。祝編程愉快,願你的數據庫總是優化!

Credits: Image by storyset