📜  如何在 MySQL 中将 BLOB 转换为文本?

📅  最后修改于: 2022-05-13 01:54:38.785000             🧑  作者: Mango

如何在 MySQL 中将 BLOB 转换为文本?

在本文中,我们将看到 MySQL 中 BLOB 到 TEXT 的转换。

BLOB:它代表二进制大对象。它是 MySQL 中的一种数据类型,可以将文件或图像以二进制格式存储在数据库中。它有四种类型,即TINYBLOB、BLOB、MEDIUMBLOB 和LONGBLOB。这四种类型都是相似的,它们之间唯一的区别是它们可以容纳的数据量。

顾名思义,在这四种类型中,LONGBLOB 可以容纳的数据量最大,而 TINYBLOB 可以容纳的数据量最少。

MySQL 中的 TEXT 数据类型用于在数据库中存储长文本字符串。它就像 VARCHAR。为了将 BLOB 转换为 TEXT,我们将使用 CONVERT 语句。

句法:

CONVERT( column_name using utf8);

utf8 是 Unicode字符的编码方式。建议在创建网页和数据库时使用ut8。为了演示,请按照以下步骤操作:

第一步:创建数据库

我们可以使用以下命令创建一个名为 geeks 的数据库。

询问:

CREATE DATABASE geeks;

第二步:使用数据库

使用以下 SQL 语句将数据库上下文切换到极客:

询问:

USE geeks;

第三步:表定义

我们的极客数据库中有 demo_table。

询问:

CREATE TABLE demo_table(
   NAME VARCHAR(20),
   AGE INT,
  CITY VARCHAR(20),
   FILE BLOB);

第 4 步:将数据插入表中

询问:

INSERT INTO demo_table VALUES ('Romy', 21, 
 'Delhi', 'My name is romy kumari,
 I am 21 yrs old'),
('Pushkar', 22, 'Delhi', 
'My name is Pushkar jha,
 I am 22 yrs old'),
 ('Rinkle', 22, 'Punjab',
  'My name is Rinkle Arora,
  I am 22 yrs old'),
('Ayushi', 22, 'Patna', 'My name is
 Ayushi choudhary, I am 22 yrs old');

第五步:查看内容

执行以下查询以查看表的内容

询问:

SELECT * FROM demo_table;

输出:

我们可以看到 FILE 列的内容是编码格式的。

第 6 步:从 BLOB 转换为 TEXT。

询问:

SELECT convert(File using utf8)
from demo_table;

如果要将 BLOB 数据类型列更新为 TEXT 数据类型列。跟着这些步骤:

  • 更改表并添加数据类型为 TEXT 的列。
  • 将 BLOB 数据转换为 TEXT 日期后,将内容添加到该列。
  • 删除 BLOB 列。

第 1 步:添加列

语法

ALTER Table demo_table ADD 
COLUMN AFTER_CONERSION TEXT;

第 2 步:将内容添加到列

UPDATE demo_table SET AFTER_CONERSION 
 = CONVERT (FILE using utf8);

第 3 步:删除 BLOB 列

ALTER TABLE demo_table 
 DROP COLUMN FILE;