The Basics Of MySQL TEXT Data Type

摘要:在本教程中,您将学习如何使用 MySQL TEXT在数据库表中存储文本数据。

MySQL TEXT数据类型简介

MySQL TEXT 数据类型

除了CHARVARCHAR字符类型之外,MySQL还为我们提供了TEXT类型,它具有更多CHARVARCHAR无法涵盖的功能。

TEXT对于存储 1 字节到 4 GB 的长文本字符串非常有用。我们经常会发现TEXT数据类型用于在新闻网站中存储文章正文,在电子商务网站中存储产品描述。

CHARVARCHAR不同,当您对列使用TEXT类型时,无需指定存储长度。此外,MySQL 在检索或插入CHARVARCHAR等文本数据时不会删除或填充空格。

请注意, TEXT数据不存储在数据库服务器的内存中,因此,每当您查询TEXT数据时,MySQL 都必须从磁盘中读取它,这与CHARVARCHAR相比要慢得多。

MySQL 提供四种TEXT类型: TINYTEXTTEXTMEDIUMTEXTLONGTEXT

下面显示了每种TEXT类型的大小,假设我们使用的字符集需要 1 个字节来存储一个字符

TINYTEXT – 255 字节(255 个字符)

TINYTEXT可以存储的最大字符为 255(2^8 = 256,1 字节开销)。

对于需要少于 255 个字符、长度不一致且不需要排序的列(例如博客文章的摘录和文章摘要),您应该使用TINYTEXT

请参见以下示例:

CREATE TABLE articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255),
    summary TINYTEXT
);
Code language: SQL (Structured Query Language) (sql)

在此示例中,我们创建了一个名为articles新表,其中有一个数据类型为TINYTEXT的摘要列。

TEXT – 64KB(65,535 个字符)

TEXT数据类型最多可容纳 64 KB,相当于 65535 (2^16 – 1) 个字符。 TEXT也需要 2 个字节的开销。

TEXT可以保存文章的正文。考虑以下示例:

ALTER TABLE articles 
ADD COLUMN body TEXT NOT NULL
AFTER summary;
Code language: SQL (Structured Query Language) (sql)

在此示例中,我们使用ALTER TABLE语句将具有TEXT数据类型的body列添加到articles表中。

MEDIUMTEXT – 16MB(16,777,215 个字符)

MEDIUMTEXT最多可容纳 16MB 文本数据,相当于 16,777,215 个字符。它需要 3 个字节的开销。

MEDIUMTEXT对于存储相当大的文本数据非常有用,例如书籍文本、白皮书等。例如:

CREATE TABLE whitepapers (
    id INT AUTO_INCREMENT PRIMARY KEY,
    body MEDIUMTEXT NOT NULL,
    published_on DATE NOT NULL
); 
Code language: SQL (Structured Query Language) (sql)

LONGTEXT – 4GB(4,294,967,295 个字符)

LONGTEXT可以存储高达 4 GB 的文本数据,这已经很大了。它需要 4 个字节的开销。

在本教程中,您学习了如何使用各种 MySQL TEXT数据类型在数据库表中存储文本。

本教程有帮助吗?