Oracle создать json примеры

Обновлено: 06.07.2024

Массивы

JSON

Но некоторые СУБД пошли дальше и реализовали возможность обращаться не по индексу к значению (например, найти 5 телефон), а по ключу. То есть, здесь мы работаем уже с именованным массивом, форматом данных JSON. Такой способ взаимодействия будет удобен для данных, у которых поля постоянно изменяются.

Например, для разных документов нужны разные данные. Если у нас база данных с договорами, то у каждого договора своя форма и свои поля для заполнения. И будет удобно посмотреть, с кем мы заключили договоры типа А или какие типы договоров у нас заключены с человеком Х.

PostgreSQL

Самой продвинутой оказалась PostgreSQL. Современная, написана на языке С+, текущая версия 12.2.

Начиная с 9.1 версии появилась поддержка массивов. Выглядит она так:

Выше приведено создание таблицы с массивом значений авторов. В скобках можно указать максимальное число элементов в массиве.

Теперь разберемся со вставкой строк:

Более того, Postgresql поддерживает двумерные массивы или вообще n-мерные. Просто указывайте скобки [], сколько вам их понадобится. Можно также искать минимальное/максимальное значение в массиве или выводить те строки, у которых среди авторов встречается “Орловский В.”. Это можно сделать следующим образом:

Теперь работа с JSON. Выше уже говорили, зачем нужен JSON в базах данных, здесь поговорим о реализации. Создание полей с таким типом схоже с созданием массива, за исключением того, что вместо ARRAY пишем JSON. Опишем интересные функции при работе с JSON:

Можно узнать есть ли ключ ‘b’ в JSON, можно достать значение по этому ключу, а также можно развернуть JSON в таблицу:

Функционал очень большой, формата статьи точно не хватит, поэтому смотрите официальную доку, там все подробно и с примерами.

Teradata

Для Терадаты написанный выше код не будет синтаксической ошибкой. Мы можем создавать массивы как поле таблицы. Также, как и в Постгресе, мы можем создать двумерные и n-мерные массивы.

Что же у Терадаты с JSON? Создание таблицы выглядит так:

Извлечение информации — вот так:

Можно обращаться к именованному элементу JSON, хранить в значениях ключа массив и обращаться к элементу массива по его индексу.

Все также хорошо, Терадата прекрасно справляется и с JSON.

Остальные нижеприведенные СУБД поддерживают только JSON, по ним кратко посмотрим на примеры кода.

MySQL

Пример кода ниже:

Oracle

СУБД, написанная на Assembly, C, C++. Поддерживает только JSON. Посмотрим на работу с ним:

MS SQL Server

СУБД, разработанная Microsoft на C, C++. Имеет только поддержку JSON, но работа с ним может принести муки, так как обращение к полям структуры не особо очевидное. Пример кода ниже:

Итог

Подытожим и объединим информацию в табличный вид:


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

Читайте также: