MySQL text類型

在本教學中,您將學習如何使用MySQL TEXT在資料庫表中存儲文本數據。

MySQL TEXT數據類型簡介

MySQL TEXT數據類型是除了CHARVARCHAR字元類型,MySQL為我們提供了具有CHARVARCHAR無法實現的更多功能的TEXT類型。

TEXT可用於存儲可以從1位元組到4GB長度的文本字串。 我們經常在電子商務網站中找到用於在新聞站點存儲物品的TEXT數據類型,如:產品詳細描述。

CHARVARCHAR不同,您不必在列使用TEXT類型時指定存儲長度。 此外,當檢索或插入文本數據(如CHARVARCHAR)時,MySQL不會刪除或填充空格。

請注意,TEXT數據不存儲在資料庫伺服器的記憶體中,因此,每當查詢TEXT數據時,MySQL都必須從磁片讀取它,這與CHARVARCHAR相比要慢得多。

MySQL提供四種TEXT類型:TINYTEXTTEXTMEDIUMTEXTLONGTEXT

下麵顯示每個TEXT類型的大小,假設我們使用一個字元集,該字元集需要1個位元組來存儲字元。

TINYTEXT - 1個位元組(255個字元)

TINYTEXT可以存儲的最大字符是255(2 ^ 8 = 2561位元組開銷)。

需要少於255個字元的列應該使用TINYTEXT類型,長度不一致,不需要排序,例如:博文摘錄,文章摘要等。

請參閱以下示例:

CREATE TABLE articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255),
    summary TINYTEXT
);

在本示例中,我們創建了一個名為articles的新表,該表具有數據類型為TINYTEXTsummary列。

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數據類型來存儲資料庫表中的文本。


上一篇: MySQL數據類型 下一篇: MySQL技巧