Иногда требуется развернуть массив в виде столбца таблицы. В таком случае поможет
функция unnest:
SELECT unnest( schedule ) AS days_of_week
FROM pilots
WHERE pilot_name = 'Ivan';
days_of_week
--------------
1
3
6
7
(4 строки)
Подробно использование массивов рассмотрено в документации в разделах 8.15
«Массивы» и 9.18 «Функции и операторы для работы с массивами».
4.6 Типы JSON
Типы JSON предназначены для сохранения в столбцах таблиц базы данных таких зна-
чений, которые представлены в формате JSON (JavaScript Object Notation). Существу-
ет два типа: json и jsonb. Основное различие между ними заключается в быстродей-
ствии. Если столбец имеет тип json, тогда сохранение значений происходит быстрее,
потому что они записываются в том виде, в котором были введены. Но при после-
дующем использовании этих значений в качестве операндов или параметров функ-
ций будет каждый раз выполняться их разбор, что замедляет работу. При использо-
вании типа jsonb разбор производится однократно, при записи значения в таблицу.
Это несколько замедляет операции вставки строк, в которых содержатся значения
данного типа. Но все последующие обращения к сохраненным значениям выполня-
ются быстрее, т. к. выполнять их разбор уже не требуется.
Есть еще ряд отличий, в частности, тип json сохраняет порядок следования ключей в
объектах и повторяющиеся значения ключей, а тип jsonb этого не делает. Рекомен-
дуется в приложениях использовать тип jsonb, если только нет каких-то особых аргу-
ментов в пользу выбора типа json.
Для иллюстрации использования типов JSON обратимся к тематике авиаперевозок.
Предположим, что руководство авиакомпании всемерно поддерживает стремление
пилотов улучшать свое здоровье, повышать уровень культуры и расширять круго-
зор. Поэтому разработчики базы данных авиакомпании получили задание создать
специальную таблицу, в которую будут заноситься сведения о тех видах спорта, ко-
торыми занимается пилот, будет отмечаться наличие у него домашней библиотеки,
а также фиксироваться количество стран, которые он посетил в ходе туристических
поездок.
Достарыңызбен бөлісу: