Учебное пособие Санкт-Петербург «бхв-петербург»



Pdf көрінісі
бет48/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   44   45   46   47   48   49   50   51   ...   256
sql osnovi yazika

( 'Pavel', '{ 2, 5
}'::integer[] ),
( 'Boris', '{ 3, 5, 6
}'::integer[] );
INSERT 0 4
Посмотрим, что получилось:
SELECT * FROM pilots;
pilot_name | schedule
------------+-------------
Ivan
| {1,3,5,6,7}
Petr
| {1,2,5,7}
Pavel
| {2,5}
Boris
| {3,5,6}
(4 строки)
Предположим, что руководство компании решило, что каждый пилот должен летать
4 раза в неделю. Значит, нам придется обновить значения в таблице. Пилоту по имени
Boris добавим один день с помощью операции конкатенации:
UPDATE pilots
SET schedule = schedule || 7
WHERE pilot_name = 'Boris';
UPDATE 1
Пилоту по имени Pavel добавим один день в конец списка (массива) с помощью функ-
ции array_append:
UPDATE pilots
SET schedule = array_append( schedule, 6 )
WHERE pilot_name = 'Pavel';
UPDATE 1
Ему же добавим один день в начало списка с помощью функции array_ prepend
(обратите внимание, что параметры функции поменялись местами):
UPDATE pilots
SET schedule = array_prepend( 1, schedule )
WHERE pilot_name = 'Pavel';
UPDATE 1
65


Глава 4. Типы данных СУБД PostgreSQL
У пилота по имени Ivan имеется лишний день в графике. С помощью функции
array_remove удалим из графика пятницу (второй параметр функции указывает
значение
элемента массива, а не индекс):
UPDATE pilots
SET schedule = array_remove( schedule, 5 )
WHERE pilot_name = 'Ivan';
UPDATE 1
У пилота по имени Petr изменим дни полетов, не изменяя их общего количества.
Воспользуемся индексами для работы на уровне отдельных элементов массива. По
умолчанию нумерация индексов начинается с единицы, а не с нуля. При необходи-
мости ее можно изменить. К элементам одного и того же массива можно обращаться
в предложении SET по отдельности, как будто это разные столбцы.


Достарыңызбен бөлісу:
1   ...   44   45   46   47   48   49   50   51   ...   256




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет