Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да съхранявате JSON данни в MySQL

MySQL ви позволява да съхранявате JSON данни в родния тип данни JSON от версия 5.7.8. Това ви позволява лесно да съхранявате JSON документи и да извличате JSON елементи от данни без преобразуване на данни. В тази статия ще разгледаме как да съхраняваме JSON данни в MySQL.

Типът данни MySQL JSON ви позволява да съхранявате JSON данни, така че да можете лесно да четете или търсите стойности в тях, като използвате индекс на ключ или масив, което го прави наистина бърз. Не е необходимо да конвертирате текст в JSON или обратно за заявка за данни.


Как да съхранявате JSON данни в MySQL

Ще разгледаме как да съхраняваме JSON данни в MySQL, както и как да заявяваме колони с тип данни JSON.

Ето синтаксиса за дефиниране на JSON колона

JSON име_на_колона

Моля, имайте предвид, че колоната с тип данни JSON не може да има стойност по подразбиране, нито може да има индекс.

Прочетете също:Как да сравнявате нулеви стойности в MySQL


Пример за тип данни на MySQL JSON

Ето пример за таблица потребители(идентификатор, подробности) където id е цяло число и първичен ключ, докато подробности е колона с тип данни JSON.

<предварително създаване на потребители на таблицата ( id int auto_increment първичен ключ, подробности json );


Как да вмъкна JSON в MySQL

Ето SQL заявката за съхраняване на JSON документ в MySQL.

вмъкнете в потребители(подробности) стойности( '{ "page":"/" , "name":"Safari", "os":"Mac", "spend":100, "resolution":{ "x ":1920, "y":1080 } }'),( '{ "page":"/products", "name":"Chrome", "os":"Windows", "spend":150, "resolution ":{ "x":1680, "y":1050 } }'),( '{ "page":"/shoes", "name":"Firefox", "os":"Windows", "spend" :200, "резолюция":{ "x":1280, "y":800 } }');

Ще извлечем данни от JSON колони с помощта на оператор за път на колона (->)

Ето пример за извличане на имена на браузър за всеки потребител.

mysql> изберете идентификатор, подробности->'$.name' подробности от потребители;+----+-----------+| ID | подробности |+----+-----------+| 1 | "Сафари" || 2 | "Хром" || 3 | "Firefox" |+----+----------+3 реда в комплект (0,00 сек)

Ще видите, че колоните с подробности имат двойни кавички. Ако искате да премахнете двойните кавички, използвайте вместо това оператор ->>

mysql> изберете идентификатор, подробности->>'$.name' подробности от потребители;+----+-----------+| ID | подробности |+----+-----------+| 1 | Сафари || 2 | Chrome || 3 | Firefox |+----+-----------+3 реда в комплект (0,00 сек)

Можете също да агрегирате JSON данни GROUP BY клауза и функции за агрегиране. Ето пример за преброяване на броя на браузърите в нашите данни.

mysql> ИЗБЕРЕТЕ подробности->>'$.name' подробности,count(detail)FROM usersGROUP BY подробности->>'$.name';

Ще видите следния изход

+--------+----------------+| подробности | брой (подробности) |+---------+----------------+| Сафари | 1 || Firefox | 1 || Chrome | 1 |+---------+----------------+3 реда в комплект (0,02 сек)

По същия начин можете също да използвате JSON данни в клаузата WHERE. Ето пример за избор на данни с разходи> 100

mysql> ИЗБЕРЕТЕ идентифик 

Надяваме се, че тази статия ще ви помогне да работите с JSON данни в MySQL. Ubiq улеснява визуализирането на данни и наблюдението им в табла за управление в реално време. Опитайте Ubiq безплатно.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Странно дублирано поведение от GROUP_CONCAT на две LEFT JOIN от GROUP_BY

  2. Как да промените размера на колоната в MySQL

  3. Създаване на уеб приложение от нулата с помощта на Python Flask и MySQL:Част 4

  4. Ръководство за проектиране на база данни за управление на блогове в MySQL

  5. SQL заявка за създаване на база данни в MySQL