Convierta datos de blob en formato de texto en MySQL

Neha Imran 15 febrero 2024
  1. el tipo de datos BLOB en MySQL
  2. Crear una base de datos en MySQL
  3. Use la función CONVERT() para convertir datos de blob en texto en MySQL
  4. Utilice la función CAST() para convertir datos de blob en texto en MySQL
Convierta datos de blob en formato de texto en MySQL

Este artículo se centrará en el tipo de datos BLOB en las bases de datos MySQL. Aprenderemos sobre el tipo de datos BLOB en profundidad y discutiremos sus diversos tipos.

Más adelante en el artículo, revisaremos diferentes formas de convertir datos del campo blob a un formato no binario.

el tipo de datos BLOB en MySQL

Los objetos binarios grandes (BLOB) pueden contener un rango variable de información. Es un tipo de tipo de datos en MySQL que proporciona almacenamiento binario de archivos o imágenes.

Hay cuatro tipos diferentes: TINYBLOB, BLOB, MEDIUMBLOB y LONGBLOB.

La principal distinción entre las cuatro categorías es el volumen de datos que pueden almacenar. LONGBLOB, como su nombre lo indica, puede contener la mayor cantidad de datos, mientras que TINYBLOB puede tener la menor cantidad.

Los valores BLOB se manejan como cadenas binarias (cadenas de bytes). Tienen un conjunto de caracteres binarios, la clasificación, la comparación y la clasificación se realizan con la ayuda de los valores numéricos de los bytes en los valores de la columna.

  1. TINYBLOB puede almacenar un máximo de 255 bytes.
  2. BLOB puede almacenar un máximo de 65535 bytes, es decir, 64 KB de datos.
  3. Un MEDIUMBLOB puede almacenar un máximo de 16777215 bytes, es decir, 16 MB de datos.
  4. Un LONGBLOB puede almacenar un máximo de 4294967295 bytes, es decir, 4 GB de datos.

Crear una base de datos en MySQL

Comencemos por crear una base de datos en MYSQL. Usaremos MySQL Shell a lo largo de este artículo para interactuar con la base de datos.

Mantente enfocado y sigue los pasos para entenderlo claramente.

shell mysql

Esta pantalla aparece la primera vez que iniciamos MySQL Shell. Es posible que haya notado que JS está escrito con MySQL, lo que indica que actualmente se encuentra en el modo de procesamiento de JavaScript.

Dado que deseamos ejecutar sentencias SQL, primero debemos cambiar al modo SQL antes de ejecutar los comandos.

Para hacer esto, escriba \sql y presione Enter.

Modo SQL

Ahora el modo SQL está activado. Ahora necesitamos conectar el Shell con el servidor MySQL, y luego podemos escribir y ejecutar los comandos SQL.

Para la conexión escribimos \connect root@localhost y presionamos Enter. Aquí, root es el nombre de usuario que configuró al instalar MySQL Shell.

Después de presionar Enter, le pedirá la contraseña que ingresó durante la instalación. Escriba la contraseña y su conexión estará activa.

Conexión SQL

Observe el mensaje que está escrito en la consola. Indica que no se ha elegido ninguna base de datos.

Vamos a crear uno para usar. Para crear una base de datos, escriba crear tecnología de base de datos, donde tecnología es el nombre de la base de datos.

Eres libre de usar cualquier nombre que elijas. Debemos especificar qué base de datos debe usar Shell después de crear la base de datos.

Para seleccionar una base de datos, ingrese el comando: use tech.

Crear shell de base de datos

Ahora puede ver que tech está escrito antes de SQL, lo que significa que actualmente estamos en la base de datos de tecnología y podemos ejecutar las consultas directamente.

Vamos a crear una tabla en la base de datos tech con algunos campos del tipo de datos BLOB. Para crear una tabla, escriba el siguiente comando en el Shell:

CREATE TABLE BLOB_DEMO
(
    FIRST_NAME VARCHAR(20),
    LAST_NAME VARCHAR(20),
    AGE INT,
    DESCRIPTION BLOB
);

Se creará la tabla. Hemos especificado el tipo de datos del campo Descripción como un BLOB.

Mientras trabajamos en MySQL Shell, observaremos el comportamiento del tipo de datos BLOB insertando algún texto en él. Para insertar los datos en la tabla, escriba el siguiente comando en el 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."
);

Los datos ahora se insertan en la tabla. Busquemos todas las filas de la tabla.

Para recuperar todos los datos de la tabla, escriba el siguiente comando en el Shell:

SELECT * FROM BLOB_DEMO

Producción:

Mostrar datos de tabla en Shell

Observe la columna DESCRIPCIÓN. Como discutimos anteriormente, el comportamiento del tipo de datos BLOB es que maneja los datos como cadenas binarias, y lo que vemos aquí son los datos codificados en binario.

Ahora, el punto de enfoque es cómo podemos recuperar nuestros datos legibles reales en formato de texto o no binario. MySQL nos ha proporcionado dos métodos para realizar esta tarea.

Veámoslos en detalle a continuación.

Use la función CONVERT() para convertir datos de blob en texto en MySQL

MySQL proporciona una función CONVERT() que convierte un valor en un tipo específico. Convierte datos entre diferentes conjuntos de caracteres.

La sintaxis de la función CONVERTIR() es:

CONVERT(expr USING transcoding_name)
```.
Si `expr` es NULL, la función devuelve NULL.

Escriba el siguiente comando en el Shell para obtener los datos del campo de descripción en formato no binario.

```sql
SELECT CONVERT(DESCRIPTION USING UTF8) FROM BLOB_DEMO

Producción:

MySQL Blob a Cadena - CONVERTIR

Un punto notable aquí es la advertencia dada por Shell. En el lanzamiento futuro, UTF8 será un alias de UTFMB4.

Es bueno usar UTFMB4 para no tener ambigüedades.

Utilice la función CAST() para convertir datos de blob en texto en MySQL

MySQL nos proporciona otra función llamada CAST() que arroja un valor como un tipo específico.

La sintaxis de la función CAST() es:

CAST(expression as type)

La función CAST() convierte cualquier expresión en un valor del tipo deseado.

Para obtener los datos del campo de descripción en un formato no binario, ingrese el siguiente comando en el Shell:

SELECT CAST(DESCRIPTION AS CHAR(10000) CHARACTER SET UTFMB4) FROM BLOB_DEMO

Producción:

MySQL Blob a cadena - CAST