Глава 4. Типы данных СУБД PostgreSQL 32. Изучая приемы работы с массивами, можно, как и в других случаях, пользовать-
ся способностью команды SELECT обходиться без создания таблиц. Покажем
лишь два примера.
Для объединения (конкатенации) массивов служит функция array_cat:
SELECT array_cat( ARRAY[ 1, 2, 3 ], ARRAY[ 3, 5 ] ); array_cat
-------------
{1,2,3,3,5}
(1 строка)
Удалить из массива элементы, имеющие указанное значение, можно таким об-
разом:
SELECT array_remove( ARRAY[ 1, 2, 3 ], 3 ); array_remove
--------------
{1,2}
(1 строка)
Для работы с массивами предусмотрено много различных функций и операто-
ров, представленных в разделе документации 9.18 «Функции и операторы для
работы с массивами». Самостоятельно ознакомьтесь с ними, используя описан-
ную технологию работы с командой SELECT.
33.* В разделе документации 8.15 «Массивы» сказано, что массивы могут быть мно-
гомерными и в них могут содержаться значения любых типов. Давайте сначала
рассмотрим одномерные массивы текстовых значений.
Предположим, что пилоты авиакомпании имеют возможность высказывать
свои пожелания насчет конкретных блюд, из которых должен состоять их обед
во время полета. Для учета пожеланий пилотов необходимо модифицировать
таблицу pilots, с которой мы работали в разделе 4.5.
CREATE TABLE pilots ( pilot_name text, schedule integer[], meal text[] ); 90
Контрольные вопросы и задания Добавим строки в таблицу:
INSERT INTO pilots VALUES ( 'Ivan', '{ 1, 3, 5, 6, 7 }'::integer[], '{ "сосиска", "макароны", "кофе" }'::text[] ), ( 'Petr', '{ 1, 2, 5, 7 }'::integer [], '{ "котлета", "каша", "кофе" }'::text[]