在本教學中,您將學習如何使用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
可以儲存的最大字元是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
,相當於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
個字元。它需要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
位元組開銷。
在本教學中,您已經學會了如何使用各種MySQL TEXT
資料型別來儲存資料庫表中的文字。