在本教學中,您將學習如何使用MySQL TEXT
在資料庫表中存儲文本數據。
MySQL TEXT數據類型簡介
MySQL TEXT
數據類型是除了CHAR和VARCHAR字元類型,MySQL為我們提供了具有CHAR
和VARCHAR
無法實現的更多功能的TEXT
類型。
TEXT
可用於存儲可以從1
位元組到4GB
長度的文本字串。 我們經常在電子商務網站中找到用於在新聞站點存儲物品的TEXT
數據類型,如:產品詳細描述。
與CHAR
和VARCHAR
不同,您不必在列使用TEXT
類型時指定存儲長度。 此外,當檢索或插入文本數據(如CHAR
和VARCHAR
)時,MySQL不會刪除或填充空格。
請注意,
TEXT
數據不存儲在資料庫伺服器的記憶體中,因此,每當查詢TEXT
數據時,MySQL都必須從磁片讀取它,這與CHAR
和VARCHAR
相比要慢得多。
MySQL提供四種TEXT類型:TINYTEXT
,TEXT
,MEDIUMTEXT
和LONGTEXT
。
下麵顯示每個TEXT
類型的大小,假設我們使用一個字元集,該字元集需要1
個位元組來存儲字元。
TINYTEXT - 1個位元組(255個字元)
TINYTEXT
可以存儲的最大字符是255
(2 ^ 8 = 256
,1
位元組開銷)。
需要少於255
個字元的列應該使用TINYTEXT
類型,長度不一致,不需要排序,例如:博文摘錄,文章摘要等。
請參閱以下示例:
CREATE TABLE articles (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
summary TINYTEXT
);
在本示例中,我們創建了一個名為articles
的新表,該表具有數據類型為TINYTEXT
的summary
列。
TEXT - 64KB(65,535個字元)
TEXT
數據類型最多可容納64KB
,相當於65535
(2 ^ 16 - 1
)個字元。 TEXT
還需要2
位元組開銷。
文本可以容納文章的正文。 請考慮以下示例:
ALTER TABLE articles
ADD COLUMN body TEXT NOT NULL
AFTER summary;
在本示例中,我們使用ALTER TABLE語句將具有TEXT
數據類型的body
列添加到articles
表。
MEDIUMTEXT - 16MB(16,777,215個字元)
MEDIUMTEXT
最多可容納16MB的文本數據,相當於16,777,215
個字元。它需要3
位元組開銷。MEDIUMTEXT
可用於存儲相當大的文本數據,如書籍文本,白皮書等。例如:
USE testdb;
CREATE TABLE whitepapers (
id INT AUTO_INCREMENT PRIMARY KEY,
body MEDIUMTEXT NOT NULL,
published_on DATE NOT NULL
);
LONGTEXT - 4GB(4,294,967,295個字元)
LONGTEXT
可以存儲高達4GB的文本數據,這是非常巨大的。 它需要4
位元組開銷。
在本教學中,您已經學會了如何使用各種MySQL TEXT
數據類型來存儲資料庫表中的文本。