Konvertieren Sie Blob-Daten in das Textformat in MySQL
-
der
BLOB
-Datentyp in MySQL - Erstellen Sie eine Datenbank in MySQL
-
Verwenden Sie die Funktion
CONVERT()
, um Blob-Daten in Text in MySQL umzuwandeln -
Verwenden Sie die Funktion
CAST()
, um Blob-Daten in Text in MySQL umzuwandeln
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.
TINYBLOB
kann maximal 255 Bytes speichern.BLOB
kann maximal 65535 Bytes speichern, also 64 KB Daten.- Ein
MEDIUMBLOB
kann maximal 16777215 Bytes speichern, also 16 MB Daten. - 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.
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.
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.
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
.
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:
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:
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: