MySQL TEXT数据类型

时间:2019-11-20 08:52:11  来源:igfitidea点击:

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

MySQL TEXT数据类型简介

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

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

与CHAR和VARCHAR不同,当您将TEXT类型用于列时,无需指定存储长度。
另外,在检索或插入文本数据(如CHAR和VARCHAR)时,MySQL不会删除或填充空格。

请注意,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。

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;

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

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

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(4,294,967,295个字符)

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

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