MySQL TEXT数据类型
简介:在本教程中,您将学习如何使用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数据类型在数据库表中存储文本。