Oracle создать json примеры
Массивы
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 типов данных очень удобно при определенных условиях. Поэтому при проектировании баз данных подумайте, прежде чем использовать старые знакомые типы полей.
Читайте также: