Vorwort JSON ist ein leichtes Datenaustauschformat, das ein sprachunabhängiges Textformat verwendet, das XML ähnelt, aber einfacher als XML sowie leichter zu lesen und zu schreiben ist. Es lässt sich für Maschinen einfacher analysieren und generieren und reduziert die Netzwerkbandbreite bei der Übertragung. Das Format von JSON ist sehr einfach: Name/Schlüssel-Wert. In früheren MySQL-Versionen wurde zur Implementierung eines solchen Speichers entweder VARCHAR oder TEXT großer Text verwendet. Nach der Veröffentlichung von MySQL 5.7 wurden der JSON-Datentyp sowie das Abrufen und andere Funktionsparsing dieses Typs speziell entwickelt. Lassen Sie es uns in die Praxis umsetzen. Erstellen einer Tabelle mit einem JSON-Feld Beispielsweise enthält eine Tabelle „Artikel“ folgende Felder: ID, Titel, Tags Ein Artikel kann mehrere Tags haben und Tags können auf den JSON-Typ gesetzt werden Die Anweisung zur Tabellenerstellung lautet wie folgt: CREATE TABLE Artikel` ( id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, Titel` varchar (200) NICHT NULL, Tags` json DEFAULT NULL , PRIMÄRSCHLÜSSEL (`id`) )ENGINE=InnoDB; Einfügen von Daten Um Daten mit JSON-Inhalt einzufügen, führen Sie die Insert-Anweisung aus: INSERT INTO Artikel` (`Titel`, `Tags`) WERTE ( „Mysql JSON erleben“, '["Mysql", "Datenbank"]' ); Was hier eingefügt wird, ist ein JOSN-Array ["Mysql", "Database"] Fragen Sie den gesamten Inhalt der Artikeltabelle ab und Sie können die neu eingefügten Daten sehen. Abfrage Verwenden von JSON-Funktionen zum Ausführen zweier einfacher Abfragen 1. Alle Artikel mit dem Tag "MySQL" finden SELECT * FROM Artikel` WO JSON_CONTAINS(Tags, '["Mysql"]'); 2. Artikel mit Tags finden, die mit „Daten“ beginnen SELECT * FROM Artikel` WO JSON_SEARCH(Tags, „eins“, „Data%“) NICHT NULL IST; Die Bedeutung der drei Parameter in der JSON_SEARCH-Funktion: 1. Zu findende Dokumente 2. Für den Suchbereich gibt es zwei Optionen: „eins“, um den ersten zu finden, der die Bedingungen erfüllt, und „alle“, um alle zu finden, die die Bedingungen erfüllen. 3. Suchbedingungen JSON-Pfad Der JSON-Pfad wird verwendet, um das Zielfeld im Dokument zu lokalisieren, zum Beispiel: WÄHLEN SIE JSON_EXTRACT( '{"id": 1, "name": "mysql"}', '$.name' ); Das Ergebnis ist:mysql JSON_EXTRACT() ist eine JSON-Extraktionsfunktion. $.name ist ein JSON-Pfad, d. h. das Namensfeld des gefundenen Dokuments. Der JSON-Pfad beginnt mit $. Sehen wir uns einige weitere Beispiele an. { "Zahl" : 123, "arr" : [1, 2], "Objekt" : { "ein" : 3, "b" : 4 } } $.num //Ergebnis: 123 $.arr //Ergebnis: [1, 2] $.arr[1] //Ergebnis: 1 $.obj.a //Ergebnis: 3 $**.b //Ergebnis: 4 Abfragebeispiel mit JSON-Pfad WÄHLEN tags-> "$[0]" als 'Tag' VON Artikel`; Daten aktualisieren Möchte man beispielsweise einem Artikel ein „dev“-Tag hinzufügen, so ist als Update-Voraussetzung, dass dieser bereits das „MySQL“-Tag enthält und noch keine Daten mit dem „dev“-Tag vorhanden sind. Die Update-Anweisung lautet wie folgt: Artikel aktualisieren` SET-Tags = JSON_MERGE(Tags, '["dev"]') WO JSON_SEARCH(Tags, 'eins', 'dev') IST NULL UND JSON_SEARCH(Tags, „eins“, „Mysql“) ist nicht NULL; Sie können sehen, dass das Tag „dev“ erfolgreich hinzugefügt wurde Wenn Sie beispielsweise das Tag „Mysql“ auf „Mysql 5.7.13“ aktualisieren möchten, lautet die Update-Anweisung wie folgt: Wir haben oben JSON_MERGE und JSON_SET kennengelernt. Es gibt viele andere Funktionen zum Ändern von JSON, wie zum Beispiel: Einfügen von Daten Ersetzen von Daten Daten an das Ende eines Arrays anhängen Daten vom angegebenen Speicherort entfernen Aufgrund meiner anfänglichen Erfahrungen mit der Bedienung habe ich den Eindruck, dass die JSON-Bedienung von MySQL relativ reibungslos verläuft. Es ist wirklich praktisch, die Dokumentstruktur in MySQL in Zukunft zu verwenden. Das könnte Sie auch interessieren:
|
<<: Beispiel für eine automatische Importmethode für allgemeine Vue3.0-Komponenten
>>: Lösung für den Fehler bei der Installation von Docker auf der CentOS-Version
Vorwort Ich bin es gewohnt, Less/Sass zu schreibe...
Inhaltsverzeichnis 1. Prozesskontrolle 2. Sequent...
Bevor wir über die CSS-Priorität sprechen, müssen...
In diesem Artikel wird das grafische Tutorial zur...
In diesem Artikelbeispiel wird der spezifische Co...
Manchmal müssen wir steuern, ob HTML-Elemente auf ...
Dieser Artikel beschreibt, wie man Redis- und php...
1. Laden Sie den MySQL-JDBC-Treiber (mysql-connec...
Ab diesem Abschnitt erklären wir das Implementier...
Dieser Artikel veranschaulicht anhand eines Beisp...
Als ich kürzlich Docker lernte, stellte ich fest,...
Systemumgebung: Ubuntu 16.04LTS In diesem Artikel...
1. Hintergrund 1.1 Probleme In einem aktuellen Pr...
Heute habe ich einem Klassenkameraden geholfen, e...
Anforderung: Manchmal, wenn der Seiteninhalt kurz...