Konvertieren Sie Blob-Daten in das Textformat in MySQL

Neha Imran 15 Februar 2024
  1. der BLOB-Datentyp in MySQL
  2. Erstellen Sie eine Datenbank in MySQL
  3. Verwenden Sie die Funktion CONVERT(), um Blob-Daten in Text in MySQL umzuwandeln
  4. Verwenden Sie die Funktion CAST(), um Blob-Daten in Text in MySQL umzuwandeln
Konvertieren Sie Blob-Daten in das Textformat in MySQL

Dieser Artikel konzentriert sich auf den Datentyp BLOB in MySQL-Datenbanken. Wir werden den Datentyp BLOB eingehend kennenlernen und seine verschiedenen Typen besprechen.

Später in diesem Artikel gehen wir auf verschiedene Möglichkeiten zum Konvertieren von Daten aus dem Blob-Feld in ein nicht-binäres Format ein.

der BLOB-Datentyp in MySQL

Große binäre Objekte (BLOB) können eine Vielzahl von Informationen enthalten. Es ist eine Art Datentyp in MySQL, der eine binäre Speicherung von Dateien oder Bildern bereitstellt.

Es gibt vier verschiedene Arten: TINYBLOB, BLOB, MEDIUMBLOB und LONGBLOB.

Der Hauptunterschied zwischen den vier Kategorien ist das Datenvolumen, das sie speichern können. LONGBLOB kann, wie der Name schon sagt, die meisten Daten enthalten, während TINYBLOB die wenigsten haben kann.

BLOB-Werte werden wie binäre Strings (Byte-Strings) behandelt. Sie haben einen binären Zeichensatz, Vergleich und Sortierung erfolgen mit Hilfe der Zahlenwerte der Bytes in den Spaltenwerten.

  1. TINYBLOB kann maximal 255 Bytes speichern.
  2. BLOB kann maximal 65535 Bytes speichern, also 64 KB Daten.
  3. Ein MEDIUMBLOB kann maximal 16777215 Bytes speichern, also 16 MB Daten.
  4. Ein LONGBLOB kann maximal 4294967295 Bytes speichern, also 4 GB Daten.

Erstellen Sie eine Datenbank in MySQL

Beginnen wir mit dem Erstellen einer Datenbank in MYSQL. Wir werden in diesem Artikel MySQL Shell verwenden, um mit der Datenbank zu interagieren.

Bleiben Sie konzentriert und folgen Sie den Schritten, um es klar zu verstehen.

MySQL-Shell

Dieser Bildschirm erscheint, wenn wir die MySQL-Shell zum ersten Mal starten. Sie haben vielleicht bemerkt, dass JS mit MySQL geschrieben wurde, was darauf hinweist, dass es sich derzeit im JavaScript-Verarbeitungsmodus befindet.

Da wir SQL-Anweisungen ausführen möchten, müssen wir zunächst in den SQL-Modus wechseln, bevor wir die Befehle ausführen.

Geben Sie dazu \sql ein und drücken Sie Enter.

SQL-Modus

Jetzt ist der SQL-Modus aktiviert. Jetzt müssen wir die Shell mit dem MySQL-Server verbinden, und dann können wir die SQL-Befehle schreiben und ausführen.

Für die Verbindung schreiben wir \connect root@localhost und drücken Enter. Hier ist root der Benutzername, den Sie bei der Installation der MySQL-Shell festgelegt haben.

Nachdem Sie Enter gedrückt haben, werden Sie nach dem Passwort gefragt, das Sie während der Installation eingegeben haben. Geben Sie das Passwort ein und Ihre Verbindung ist aktiv.

SQL-Verbindung

Beachten Sie die Meldung, die auf der Konsole steht. Es zeigt an, dass keine Datenbank ausgewählt wurde.

Lassen Sie uns eine erstellen, die Sie verwenden können. Um eine Datenbank zu erstellen, schreiben Sie create database tech, wobei tech der Datenbankname ist.

Es steht Ihnen frei, einen beliebigen Namen zu verwenden. Wir müssen angeben, welche Datenbank Shell verwenden soll, nachdem wir die Datenbank erstellt haben.

Um eine Datenbank auszuwählen, geben Sie den Befehl ein: use tech.

Datenbank-Shell erstellen

Nun sieht man, dass tech vor SQL geschrieben wird, d.h. wir befinden uns gerade in der tech-Datenbank und können die Abfragen direkt darauf ausführen.

Lassen Sie uns eine Tabelle in der Datenbank tech mit einigen Feldern des Datentyps BLOB erstellen. Um eine Tabelle zu erstellen, geben Sie den folgenden Befehl in die Shell ein:

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

Die Tabelle wird erstellt. Wir haben den Datentyp des Felds Beschreibung als BLOB angegeben.

Während wir in der MySQL-Shell arbeiten, werden wir das Verhalten des Datentyps BLOB beobachten, indem wir Text darin einfügen. Um die Daten in die Tabelle einzufügen, geben Sie den folgenden Befehl in die Shell ein.

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."
);

Die Daten werden nun in die Tabelle eingefügt. Lassen Sie uns alle Zeilen aus der Tabelle abrufen.

Um alle Daten aus der Tabelle abzurufen, schreiben Sie den folgenden Befehl in die Shell:

SELECT * FROM BLOB_DEMO

Ausgang:

Tabellendaten in der Shell anzeigen

Beachten Sie die Spalte BESCHREIBUNG. Wie wir oben besprochen haben, ist das Verhalten des Datentyps BLOB, dass er die Daten wie binäre Strings behandelt, und was wir hier sehen, sind die binär codierten Daten.

Jetzt liegt der Fokus darauf, wie wir unsere tatsächlich lesbaren Daten im Text- oder nicht-binären Format abrufen können. MySQL hat uns zwei Methoden zur Verfügung gestellt, um diese Aufgabe zu erledigen.

Sehen wir sie uns unten im Detail an.

Verwenden Sie die Funktion CONVERT(), um Blob-Daten in Text in MySQL umzuwandeln

MySQL bietet eine CONVERT()-Funktion, die einen Wert in einen bestimmten Typ umwandelt. Es konvertiert Daten zwischen verschiedenen Zeichensätzen.

Die Syntax für die Funktion CONVERT() lautet:

CONVERT(expr USING transcoding_name)
```.
Wenn `expr` NULL ist, gibt die Funktion NULL zurück.

Geben Sie den folgenden Befehl in die Shell ein, um die Daten des Beschreibungsfelds im nicht-binären Format abzurufen.

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

Ausgang:

MySQL-Blob in String – KONVERTIEREN

Auffällig ist hier die Warnung der Shell. In der zukünftigen Version wird UTF8 ein Alias von UTFMB4 sein.

Es ist gut, UTFMB4 zu verwenden, um eindeutig zu sein.

Verwenden Sie die Funktion CAST(), um Blob-Daten in Text in MySQL umzuwandeln

MySQL stellt uns eine weitere Funktion namens CAST() zur Verfügung, die einen Wert in einen bestimmten Typ umwandelt.

Die Syntax für die Funktion CAST() lautet:

CAST(expression as type)

Die Funktion CAST() konvertiert einen beliebigen Ausdruck in einen Wert des gewünschten Typs.

Um die Daten aus dem Beschreibungsfeld in einem nicht-binären Format abzurufen, geben Sie den folgenden Befehl in die Shell ein:

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

Ausgang:

MySQL-Blob in String – CAST