13.7 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数据类型来存储数据库表中的文本。

Last updated