MySQL 中的 BLOB 和 TEXT 数据类型有什么区别?

mysqlmysqli database

BLOB 代表二进制大对象,顾名思义,它可用于存储二进制数据,而 TEXT 用于存储大量字符串。BLOB 可用于存储二进制数据,这意味着我们也可以存储图片、视频、声音和程序。

例如,以下图像可以存储到 BLOB 中,因为该图像具有二进制数据。

BLOB

BLOB 值的行为类似于字节字符串,并且 BLOB 没有字符集。因此,比较和排序完全取决于字节的数值。

TEXT 值的行为类似于非二进制字符串或字符串。TEXT 具有字符集,比较/排序完全取决于字符集的集合。

创建具有 TEXT 数据类型的表

mysql> create table TextTableDemo
   -> (
   -> Address TEXT
   -> );
Query OK, 0 rows affected (0.58 sec)

使用 DESC 命令来描述表格。

mysql> DESC TextTableDemo;

以下是输出。

+---------+------+------+-----+---------+-------+
| Field   | Type | Null | Key | Default | Extra |
+---------+------+------+-----+---------+-------+
| Address | TEXT | YES  |     | NULL    |       |
+---------+------+------+-----+---------+-------+
1 row in set (0.08 sec)

在上面的输出中,"Type"表示数据类型,即 TEXT。

创建 BLOB 类型的表

mysql> create table BlobTableDemo
-> (
-> Images BLOB
-> );
Query OK, 0 rows impacted (0.51 sec)

让我们借助 DESC 命令获取表的描述。

mysql> desc BlobTableDemo;

以下是输出。

+--------+------+------+-----+---------+-------+
| Field  | Type | Null | Key | Default | Extra |
+--------+------+------+-----+---------+-------+
| Images | BLOB | YES  |     | NULL    |       |
+--------+------+------+-----+---------+-------+
1 row in set (0.04 sec)

在示例输出中,"Type"表示数据类型为 BLOB。


相关文章