10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册节选

11.3.4 BLOB和TEXT类型

一个是一个二进制大对象,可以保存可变数量的数据。这四个类型是TINYBLOBMEDIUMBLOB,LONGBLOB.它们的区别仅仅在于它们所能容纳的值的最大长度。这四个文本类型是非常小的文本串文本简单,量变.这些对应4类型和具有相同的最大长度和存储要求。看到第11.7节“数据类型存储要求”

值被视为二进制字符串(字节字符串)。他们有二进制字符集和排序,以及比较和排序都基于列值中字节的数值。文本值被视为非二进制字符串(字符串)。他们的性格除了二进制,并根据字符集的排序方式对值进行排序和比较。

如果没有启用严格的SQL模式,并且将值赋给文本如果列的长度超过该列的最大长度,则该值将被截断以适合该列,并生成警告。对于非空格字符的截断,可以使用严格的SQL模式导致发生错误(而不是警告)并抑制值的插入。看到第5.1.11节,“Server SQL模式”

从要插入的值截断多余的尾随空格文本列总是生成一个警告,无论SQL模式是什么。

文本而且列,在插入时不填充,在选择时不剥离字节。

如果一个文本列被索引,索引条目比较在最后被空格填充。这意味着,如果索引需要唯一值,则仅在尾随空格数量上不同的值将发生重复键错误。例如,如果一个表包含“一个”,试图储存“一个”导致重复密钥错误。这对列。

在大多数方面,你可以把列作为一个VARBINARY列可以任意大。类似地,你可以考虑文本列作为一个VARCHAR列。而且文本不同于VARBINARY而且VARCHAR可以通过以下方式:

如果您使用二进制属性与一个文本数据类型,列被赋值为二进制(_bin)列字符集的排序。

而且LONG VARCHAR映射到简单数据类型。这是一个兼容性特性。

MySQL连接器/ ODBC定义值作为LONGVARBINARY而且文本值作为用LONGVARCHAR

因为而且文本值可以非常长,在使用它们时可能会遇到一些限制:

每一个文本值在内部由一个单独分配的对象表示。这与所有其他数据类型相反,其他数据类型在打开表时为每列分配一次存储。

在某些情况下,可能需要将媒体文件等二进制数据存储在文本列。您可能会发现MySQL的字符串处理函数对于处理这些数据很有用。看到第12.8节“字符串函数和操作符”.出于安全性和其他原因,通常最好使用应用程序代码,而不是向应用程序用户提供文件特权。你可以在MySQL论坛(http://forums.10bet靠谱mysql.com/).

请注意

mysql的值,二进制字符串使用十六进制表示法显示——binary-as-hex.有关该选项的更多信息,请参见第4.5.1节,mysql命令行客户端