Heim >Datenbank >MySQL-Tutorial >Detaillierte Erläuterung der Betriebsfunktionen der JSON-Serie in Mysql_MySQL
Vorwort
JSON ist ein leichtes Datenaustauschformat, das ein sprachunabhängiges Textformat verwendet, ähnlich wie XML, aber einfacher, leichter zu lesen und leichter zu schreiben als XML. Es ist für Maschinen einfach zu analysieren und zu generieren und verringert die Übertragungsbandbreite im Netzwerk.
Das Format von JSON ist sehr einfach: Name/Schlüsselwert. In früheren Versionen von MySQL wurde zur Implementierung einer solchen Speicherung entweder VARCHAR- oder TEXT-Großtext verwendet. Nach der Veröffentlichung von MySQL 5.7 wurden der JSON-Datentyp sowie der Abruf und das Parsen anderer Funktionen dieses Typs speziell entwickelt.
Machen wir es in der Praxis.
Tabelle mit JSON-Feldern erstellen
Eine „Artikel“-Tabelle enthält beispielsweise Felder, die
enthaltenID, Titeltitel, Tags
Ein Artikel verfügt über mehrere Tags und Tags können auf den JSON-Typ eingestellt werden
Die Anweisung zur Tabellenerstellung lautet wie folgt:
CREATE TABLE `article` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(200) NOT NULL, `tags` json DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;
Daten einfügen
Fügen Sie ein Datenelement mit JSON-Inhalt ein und führen Sie die Einfügeanweisung aus:
INSERT INTO `article` (`title`, `tags`) VALUES ( '体验 Mysql JSON', '["Mysql", "Database"]' );
Was hier eingefügt wird, ist ein JOSN-Array [“Mysql”, “Database”]
Fragen Sie alle Inhalte in der Artikeltabelle ab und Sie können die neu eingefügten Daten sehen
Abfrage
Verwenden Sie JSON-Funktionen, um zwei einfache Abfragen durchzuführen
1. Finden Sie alle Artikel mit dem Tag „Mysql“
SELECT * FROM `article` WHERE JSON_CONTAINS(tags, '["Mysql"]');
2. Finden Sie Artikel, die mit „Daten“ im Tag beginnen
SELECT * FROM `article` WHERE JSON_SEARCH(tags, 'one', 'Data%') IS NOT NULL;
Die Bedeutung der drei Parameter in der JSON_SEARCH-Funktion:
1. Zu findende Dokumente
2. Suchbereich, es gibt zwei Optionen: „Eins“ findet den ersten, der die Bedingungen erfüllt, „Alle“ findet alle, die die Bedingungen erfüllen
3. Suchbedingungen
JSON-Pfad
Der JSON-Pfad wird verwendet, um das Zielfeld im Dokument zu finden, z. B.
SELECT JSON_EXTRACT( '{"id": 1, "name": "mysql"}', '$.name' );
Das Ergebnis ist: MySQL
JSON_EXTRACT()
ist eine JSON-Extraktionsfunktion, $.name
ist ein JSON path
, das das Namensfeld
JSON path
beginnt mit $, hier sind einige weitere Beispiele
{ "num": 123, "arr": [1, 2], "obj": { "a": 3, "b": 4 } } $.num //结果:123 $.arr //结果:[1, 2] $.arr[1] //结果:1 $.obj.a //结果:3 $**.b //结果:4
Abfragebeispiel mit JSON path
SELECT tags->"$[0]" as 'tag' FROM `article`;
Daten aktualisieren
Wenn Sie beispielsweise einem Artikel ein „dev“-Tag hinzufügen möchten, lautet die Aktualisierungsbedingung, dass er bereits das „Mysql“-Tag enthält und keine Daten für das „dev“-Tag vorhanden sind
Die Aktualisierungserklärung lautet wie folgt:
UPDATE `article` SET tags = JSON_MERGE(tags, '["dev"]') WHERE JSON_SEARCH(tags, 'one', 'dev') IS NULL AND JSON_SEARCH(tags, 'one', 'Mysql') IS NOT NULL;
Sie können sehen, dass das Tag „dev“ erfolgreich hinzugefügt wurde
Als weiteres Beispiel: Wenn Sie die Bezeichnung „Mysql“ auf „Mysql 5.7.13“ aktualisieren möchten, lautet die Aktualisierungsanweisung wie folgt:
UPDATE `article` set tags = JSON_SET(tags, ‘$[0]', ‘Mysql 5.7.13') ;
Ich habe oben JSON_MERGE
und JSON_SET
erlebt. Es gibt viele weitere Funktionen zum Ändern von JSON, wie zum Beispiel:
JSON_INSERT(doc, path, val[, path, val]…)
Daten einfügen
JSON_REPLACE(doc, path, val[, path, val]…)
Daten ersetzen
JSON_ARRAY_APPEND(doc, path, val[, path, val]…)
Daten an das Ende des Arrays anhängen
JSON_REMOVE(doc, path[, path]…)
Daten vom angegebenen Speicherort entfernen
Aufgrund der ersten Betriebserfahrung habe ich das Gefühl, dass der JSON-Betrieb von MySQL relativ reibungslos verläuft. Es ist in der Tat sehr praktisch, die Dokumentstruktur in MySQL in Zukunft zu verwenden.
Die neue Version von MySQL bietet auch eine Javascript-Konsole, die der MongoDB-Shell ähnelt und auch sehr praktisch ist, was später zusammengefasst wird. Ich hoffe, dass dieser Artikel allen beim Erlernen von MySQL hilfreich sein wird. Vielen Dank für Ihre Unterstützung.