MySQL TEXT 数据类型的基础知识

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

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

MySQL TEXT 数据类型介绍

MySQL TEXT 数据类型

除了 CHAR 和 VARCHAR 字符类型时,MySQL为我们提供了 TEXT 具有更多的功能,其类型 CHAR 和 VARCHAR 不能覆盖。

的 TEXT 是用于存储可以采取从1个字节到4 GB长格式文本字符串是有用的。我们经常 TEXT 在新闻网站中找到存储文章正文的数据类型,在电子商务网站中找到产品描述。

与 CHAR and不同的是 VARCHAR ,当您 TEXT 为列使用类型时,您不必指定存储长度。此外,在检索或插入文本数据时,MySQL 不会删除或填充空格,如 CHAR 和 VARCHAR 。

请注意, TEXT 数据不存储在数据库服务器的内存中,因此,只要你查询 TEXT 的数据,MySQL不得不从它从磁盘,这是慢得多与比较时 CHAR 和 VARCHAR 。

MySQL的提供了四种 TEXT 类型: TINYTEXT , TEXT , MEDIUMTEXT ,和 LONGTEXT 。

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

TINYTEXT – 255 字节(255 个字符)

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

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

请参阅以下实例:

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

在此实例中,我们创建了一个名为 articles 的新表,该表包含一个数据类型为 TINYTEXT 的摘要列 summary。

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

TEXT 数据类型可以容纳多达 64KB,等效于 65,535(2^16 - 1)个字符。此外还需要 2 个字节的存储开销。

TEXT 列通常可用于存储文章的正文内容。考虑以下示例:

ALTER TABLE articles 
ADD COLUMN body TEXT NOT NULL
AFTER summary;

在此实例中,我们使用 ALTER TABLE 语句向 articles 表中添加了数据类型为 TEXT 的 body 列。

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
);

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

LONGTEXT 可以存储高达 4GB 的文本数据,能够满足极大规模的文本存储需求。它需要 4 个字节的额外开销。

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