MySQL text型別

2019-10-16 22:58:34

在本教學中,您將學習如何使用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資料型別來儲存資料庫表中的文字。