Skip to main content

通过示例介绍MySQL文本数据类型的基础知识

MySQL文本数据类型简介

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

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

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

请注意,文本数据不存储在数据库服务器的内存中,因此,无论何时查询文本数据,MySQL都必须从磁盘读取,这比CHAR和VARCHAR慢得多。

MySQL提供四种文本类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。

下面显示了每种文本类型的大小,假设我们使用的字符集需要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
);

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

文本–64KB(65535个字符)

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

文本可以容纳文章的正文。考虑下面的例子:

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

在本例中,我们使用ALTER table语句将带有文本数据类型的body列添加到articles表中。

MEDIUMTEXT–16MB(16777215个字符)

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

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

CREATE TABLE whitepapers (
id INT AUTO_INCREMENT PRIMARY KEY,
body MEDIUMTEXT NOT NULL,
published_on DATE NOT NULL
);

LONGTEXT–4GB(4294967295个字符)

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

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