MySQL 中将 Blob 数据转换为文本格式
本文将重点介绍 MySQL 数据库中的 BLOB 数据类型。 我们将深入了解 BLOB 数据类型并讨论其各种类型。
在本文的后面,我们将回顾将数据从 blob 字段转换为非二进制格式的不同方法。
MySQL 中的 BLOB 数据类型
大型二进制对象 (BLOB) 可以包含可变范围的信息。 它是MySQL中的一种数据类型,提供文件或图像的二进制存储。
有四种不同的类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。
这四个类别之间的主要区别在于它们可以存储的数据量。 LONGBLOB,顾名思义,可以容纳最多的数据,而 TINYBLOB 可以容纳最少的数据。
BLOB 值的处理方式类似于二进制字符串(字节字符串)。 它们具有二进制字符集、排序规则,并且比较和排序是在列值中字节的数值的帮助下完成的。
- TINYBLOB 最多可以存储 255 个字节。
- BLOB 最多可以存储 65535 字节,即 64 KB 的数据。
- 一个 MEDIUMBLOB 最多可以存储 16777215 字节,即 16MB 的数据。
- 一个 LONGBLOB 最多可以存储 4294967295 字节,即 4GB 的数据。
在 MySQL 中创建数据库
让我们从在 MYSQL 中创建一个数据库开始。 我们将在整篇文章中使用 MySQL Shell 与数据库进行交互。
保持专注并按照步骤清楚地理解它。
这个屏幕出现在我们第一次启动 MySQL Shell 时。 大家可能已经注意到了,JS是用MySQL写的,说明这个目前是JavaScript处理模式。
既然我们要运行SQL语句,那么在执行命令之前必须先切换到SQL模式。
为此,请键入 \sql 并按 Enter。
现在 SQL 模式已激活。 现在我们需要把Shell和MySQL Server连接起来,然后我们就可以编写和执行SQL命令了。
对于连接,我们写 \connect root@localhost 并按 Enter。 这里的root是你安装MySQL Shell时设置的用户名。
按 Enter 后,它会询问您在安装过程中输入的密码。 输入密码,您的连接将处于活动状态。
观察写在控制台上的消息。 它表示没有选择数据库。
让我们创建一个来使用。 要创建数据库,请编写 create database tech,其中 tech 是数据库名称。
您可以自由使用您选择的任何名称。 我们必须在创建数据库后指定 Shell 应该使用哪个数据库。
要选择数据库,请输入命令:use tech
。
现在我们可以看到 tech 是在 SQL 之前编写的,这意味着我们当前位于 tech 数据库中,可以直接在其上执行查询。
让我们在 tech 数据库中创建一个表,其中包含一些 BLOB 数据类型的字段。 要创建表,请在 Shell 中键入以下命令:
CREATE TABLE BLOB_DEMO
(
FIRST_NAME VARCHAR(20),
LAST_NAME VARCHAR(20),
AGE INT,
DESCRIPTION BLOB
);
该表将被创建。 我们已将 Description 字段的数据类型指定为 BLOB。
当我们在 MySQL Shell 中工作时,我们将通过向其中插入一些文本来观察 BLOB 数据类型的行为。 要将数据插入表中,请在 Shell 中键入以下命令。
INSERT INTO BLOB_DEMO VALUES
(
"WILLIAM",
"JOHN",
27,
"William John is a computer scientist."
),
(
"BEN",
"MARK",
32,
"Ben is a doctor. He lives in America."
);
数据现在已插入表中。 让我们从表中获取所有行。
要从表中检索所有数据,请在 Shell 中编写以下命令:
SELECT * FROM BLOB_DEMO
输出:
观察描述栏。 正如我们上面所讨论的,BLOB 数据类型的行为是它像二进制字符串一样处理数据,我们在这里看到的是二进制编码数据。
现在,重点是我们如何以文本或非二进制格式检索我们的实际可读数据。 MySQL 为我们提供了两种方法来完成这项任务。
让我们在下面详细了解它们。
在 MySQL 中使用 CONVERT() 函数将 Blob 数据转换为文本
MySQL 提供了一个 CONVERT()
函数,可以将值转换为特定类型。 它在不同字符集之间转换数据。
CONVERT()
函数的语法是:
CONVERT(expr USING transcoding_name)
如果 expr
为 NULL,则函数返回 NULL。
在 Shell 中键入以下命令,以非二进制格式获取描述字段的数据。
SELECT CONVERT(DESCRIPTION USING UTF8) FROM BLOB_DEMO
输出:
这里值得注意的一点是 Shell 给出的警告。 在未来的版本中,UTF8 将是 UTFMB4 的别名。
最好用 UTFMB4 来明确。
在 MySQL 中使用 CAST() 函数将 Blob 数据转换为文本
MySQL 为我们提供了另一个名为 CAST()
的函数,它将一个值转换为特定类型。
CAST()
函数的语法是:
CAST(expression as type)
CAST()
函数将任何表达式转换为所需类型的值。
要以非二进制格式从描述字段中获取数据,请在 Shell 中输入以下命令:
SELECT CAST(DESCRIPTION AS CHAR(10000) CHARACTER SET UTFMB4) FROM BLOB_DEMO
输出:
相关文章
使用 Mysqldump 备份 MySQL 中的数据
发布时间:2023/05/09 浏览次数:192 分类:MySQL
-
本篇文章将介绍如何使用 mysqldump 只备份数据。 在这里,我们将探讨 --no-create-info 、--compact 、--skip-triggers 和 --no-create-db 选项。
更新 MySQL 表中的主键
发布时间:2023/05/09 浏览次数:61 分类:MySQL
-
本篇文章介绍如何更新 MySQL 表中的主键。 我们将使用 ALTER 命令对主键进行任何更改。更新 MySQL 表中的主键 我们可以在多种情况下更新 MySQL 表中的主键。
在 MySQL 中获取命令历史记录
发布时间:2023/05/09 浏览次数:150 分类:MySQL
-
本文重点介绍了在 Windows 和 Linux 中获取我们已执行的 MySQL 命令历史记录的各种方法。MySQL命令历史
Oracle 的 decode 函数在 MySQL 中的等价物
发布时间:2023/05/09 浏览次数:115 分类:MySQL
-
本篇文章介绍了三种替代实现,我们可以将它们用作 MySQL 中 Oracle 的 decode() 函数的等价物。 为此,我们将使用 IF()、CASE 以及 FIELD() 和 ELT() 的组合。
使用 Ubuntu 连接远程 MySQL 服务器的不同方法
发布时间:2023/05/09 浏览次数:97 分类:MySQL
-
在本文中我们将学习如何使用 Ubuntu 连接远程 MySQL 服务器来操作数据以及启动和停止 MySQL 服务器。
在 Linux 中安装 MySQL 客户端
发布时间:2023/05/09 浏览次数:72 分类:MySQL
-
在 Linux 中安装 MySQL 客户端的命令。Linux 和 Unix 等环境作为命令行界面工作,仅在命令的帮助下运行。
在 MySQL 中转换为十进制
发布时间:2023/05/09 浏览次数:150 分类:MySQL
-
有时,我们可能需要将一种数据类型转换为另一种数据类型。 下面是我们如何使用带有 DECIMAL(M,D) 的 CAST() 和 CONVERT() 函数在 MySQL 中转换为十进制。
在 MySQL 中获取当前日期和时间
发布时间:2023/05/09 浏览次数:145 分类:MySQL
-
本篇文章我们将学习 NOW()、CURRENT_TIMESTAMP()(也写为 CURRENT_TIMESTAMP)和 SYSDATE() 来获取 MySQL 中的当前日期和时间。 我们还将看到这三个功能之间的比较。在 MySQL 中获取当前日期和时间
更改 MySQL 服务器中的 max_allowed_packet Size
发布时间:2023/05/09 浏览次数:142 分类:MySQL
-
本篇文章介绍如何更改 MySQL 服务器中的 max_allowed_packet 大小。 为了了解这一点,我们将使用两个操作系统,Windows 10 和 Linux (Ubuntu)。