Работа с JSON данными в СУБД Mysql 5.7

Работа с JSON данными в СУБД Mysql 5.7

От автора: создавая различные проекты, достаточно часто возникает задача, сохранения некоторой информации в базу данных. Но согласитесь – это довольно обыденная операция для любого разработчика. Но что если необходимо сохранить в одну из таблиц массив или объект — конечно в явном виде, данные типы данных сохранить не возможно, но если привести их к формату JSON, сохранение реализуется очень просто, так как JSON это обычная строка.

скачать исходникискачать урок

При этом если – это строка, то использовать ее для построения различных SQLзапросов не представляется возможным, особенно если необходимо выбрать значение некоторого свойства.

Но с выходом системы управления базами данных MySQL версии 5.7, все значительно изменилось, так как разработчики добавили новый тип данных для полей создаваемых таблиц, под названием MySQL JSON. Говоря тем самым, что был добавлен функционал благодаря которому можно работать с информацией хранящейся в строке формата JSON и использовать ее для построения SQLзапросов. Поэтому в данном уроке я хотел показать, как работать с JSON данными, используя СУБД MySQL.

Бесплатный курс по PHP программированию

Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Для начала, хотел бы отметить, что поддержка данных формата JSON введена в систему управлениями базами данных MySQL начиная с версии 5.7, а значит для хорошего понимания данного урока и тестирования результатов работы, Вам необходимо проверить версию используемой СУБД MySQL и при необходимости выполнить обновление. Если Вы используете программное обеспечение OpenServer, в качестве инструмента для веб-разработки, то выше указанная, версия баз данных, входит в комплект версии 5.2.2 пакета OpenServer.

Теперь давайте создадим новую базу данных, под названием test, которую мы будем использовать для тестирования доступных функций. После этого откроем консоль продукта OpenServer и соединимся с сервером базы данных, используя команду:

При этом после символов -u через пробел указывается имя пользователя, а после -р пароль.

Далее, Вам предложат повторить пароль для указанного пользователя. Но так как по умолчанию пользователь root, зарегистрирован без пароля, значит просто, пропускаем данный шаг, нажимая клавишу Enter.

После этого мы увидим сообщение, что соединение с сервером MySQL успешно выполнено.

Далее, создадим таблицу articles, которую мы будем использовать для добавления данных. При этом все так же используем консоль, а значит, первым делом выберем базу данных для работы, используя команду.

Затем выполним SQL запрос, для создания новой таблицы.

Обратите внимание, на создаваемое поле ‘keys’, тип данный которого определен как json. По сути, в данном поле будет храниться обычная строка JSON данных, но используя специальные функции, Вы получите возможность использовать данное поле для формирования различных условий получения данных.

Итак, таблица создана, а значит, давайте добавим несколько записей. При этом консоль нам уже не потребуется, так как дальнейшее кодирование мы будем вести, с помощью языка PHP. Для этого выполним соединение с ранее созданной базой данных.

Далее создадим массив, который после кодирования в строку JSON, сохраним в базу данных в поле ‘keys’ таблицы ‘articles’.

Затем непосредственно записываем информацию в базу данных.

Далее, аналогичным образом запишем объект в поле ‘keys’.

Бесплатный курс по PHP программированию

Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

И последняя запись – более сложный много-мерный массив.

Конечно, сохранение информации в базу данных в поле формата JSON осуществляется после декодирования массива или объекта в строку. То есть, по сути, аналогичным образом мы можем сохранить данную строку в поле произвольного типа. Но только поле формата JSON предоставляет возможность использовать данные хранящиеся в строке JSON для формирования разнообразных условий в SQL запросах.

Теперь давайте посмотрим, как мы можем использовать данные формата JSON. Для начала осуществим выборку записей из таблицы “articles”, в которой в поле “keys” располагается простой индексный массив формата JSON в одной из ячеек которого сохранено значение “one”:

При этом на экране браузера мы увидим следующий результат.

Функция JSON_CONTAINS() – возвращает истину если в поле, имя которого передается в качестве первого параметра, содержится значение указанное в качестве второго аргумента. Теперь, используя вышеуказанную функцию, выберем записи, у которых в поле “keys” располагается объект формата JSON, с определенным свойством.

Далее рассмотрим функцию JSON_EXTRACT(), которая возвращает конкретное значение строки формата JSON.

При этом функция JSON_EXTRACT(), в качестве первого аргумента принимает строку JSON, в которой будет осуществляться поиск элемента, указанного в первом параметре функции. Обратите внимание, что первый аргумент формируется с помощью вложенного запроса типа SELECT. Во втором аргументе Вы указываете в виде шаблона, какие данные необходимо выбрать из строки первого аргумента. Соответственно в шаблоне Вы можете использовать следующие элементы:

$[] – метка обозначающая индексный массив;

$[x] – представляет ячейку массива с индексом х;

$[*] – представляет произвольную ячейку массива.

$. – метка, представляющая объект.

$.* — представляет собой произвольное свойство объекта.

В следующем примере давайте получим значение под индексом 1, свойства five, которое принадлежит объекту, располагающегося в произвольной ячейке массива формата JSON.

Так же данные хранящиеся в строке формата JSON, Вы можете использовать для формирования SQL запросов, без использования функций.

Обратите внимание, что обращение к значениям строки JSON, осуществляется с помощью знака ->. То есть указываем имя поля, в котором располагается строка JSON, затем специальный оператор -> и наконец, шаблон для поиска необходимого значения.

Помимо этого, Вы можете использовать значения поля формата JSON, для формирования условия WHERE при создании SQL запроса.

То есть по аналогии с предыдущим примером – для поиска необходимого значения JSON, используется шаблон. На этом данный урок завершен. Всего Вам доброго и удачного кодирования!!!

Бесплатный курс по PHP программированию

Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Хотите изучить MySQL?

Прямо сейчас посмотрите 24-х часовой курс по базе данных MySQL!

Смотреть курс

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Я не робот.

Spam Protection by WP-SpamFree