In der modernen Anwendungsentwicklung ist die Verwaltung halbstrukturierter Daten eine häufige Herausforderung. Die in Version 5.7 eingeführte Unterstützung von MySQL für JSON bietet eine leistungsstarke Möglichkeit, solche Daten in einer relationalen Datenbank zu speichern, abzufragen und zu bearbeiten. In diesem Beitrag werden die wesentlichen JSON-Funktionen von MySQL anhand praktischer Beispiele erläutert, die den Einstieg erleichtern.
Das Speichern von JSON-Daten in relationalen Datenbanken kann die Handhabung halbstrukturierter oder hierarchischer Daten vereinfachen. Es ermöglicht:
Sie können JSON-Objekte oder Arrays mit den Funktionen JSON_OBJECT() und JSON_ARRAY() erstellen.
Beispiel:
SELECT JSON_OBJECT('id', 1, 'name', 'Alice', 'roles', JSON_ARRAY('admin', 'editor')) AS json_data;
Ausgabe:
{"id": 1, "name": "Alice", "roles": ["admin", "editor"]}
Um JSON-Daten zu speichern, verwenden Sie den JSON-Datentyp für Spalten.
Beispiel:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, details JSON NOT NULL ); INSERT INTO users (details) VALUES ('{"name": "Bob", "age": 30, "roles": ["viewer", "editor"]}');
MySQL bietet mehrere Funktionen zum Extrahieren von Daten aus JSON-Dokumenten:
Beispiel:
SELECT JSON_EXTRACT(details, '$.name') AS name, details->'$.age' AS age FROM users;
Ausgabe:
Sie können Elemente zu JSON-Daten aktualisieren oder hinzufügen mit:
Beispiel:
UPDATE users SET details = JSON_SET(details, '$.city', 'New York') WHERE id = 1; SELECT details FROM users;
Ausgabe:
{"name": "Bob", "age": 30, "roles": ["viewer", "editor"], "city": "New York"}
Verwenden Sie JSON_REMOVE(), um Elemente aus einem JSON-Dokument zu löschen.
Beispiel:
UPDATE users SET details = JSON_REMOVE(details, '$.roles') WHERE id = 1; SELECT details FROM users;
Ausgabe:
{"name": "Bob", "age": 30, "city": "New York"}
Die Funktion JSON_CONTAINS() prüft, ob ein JSON-Dokument einen bestimmten Wert enthält.
Beispiel:
SELECT JSON_CONTAINS(details, '"New York"', '$.city') AS has_city FROM users;
Ausgabe:
Die Funktionen JSON_ARRAYAGG() und JSON_OBJECTAGG() helfen dabei, Abfrageergebnisse in JSON-Strukturen zusammenzufassen.
Beispiel:
SELECT JSON_ARRAYAGG(name) AS names FROM ( SELECT JSON_EXTRACT(details, '$.name') AS name FROM users ) AS subquery;
Ausgabe:
SELECT JSON_OBJECT('id', 1, 'name', 'Alice', 'roles', JSON_ARRAY('admin', 'editor')) AS json_data;
Die Funktion JSON_VALID() prüft, ob eine Zeichenfolge gültiges JSON ist.
Beispiel:
{"id": 1, "name": "Alice", "roles": ["admin", "editor"]}
Ausgabe:
Verwenden Sie JSON_PRETTY() für menschenlesbare JSON-Formatierung.
Beispiel:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, details JSON NOT NULL ); INSERT INTO users (details) VALUES ('{"name": "Bob", "age": 30, "roles": ["viewer", "editor"]}');
Ausgabe:
SELECT JSON_EXTRACT(details, '$.name') AS name, details->'$.age' AS age FROM users;
MySQL bietet eine breite Palette an JSON-Funktionen, die über die im Detail beschriebenen hinausgehen. Nachfolgend finden Sie weitere JSON-Funktionen:
Die JSON-Funktionen von MySQL bieten leistungsstarke Tools für die Verwaltung halbstrukturierter Daten in relationalen Datenbanken. Sie erleichtern das Speichern, Abfragen und Bearbeiten von JSON direkt in SQL. Das Verständnis dieser Funktionen kann dazu beitragen, Arbeitsabläufe zu vereinfachen und neue Ansätze für das Datenbankdesign zu eröffnen.
Das obige ist der detaillierte Inhalt vonArbeiten mit JSON in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!