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



Download 1,88 Mb.
Pdf ko'rish
bet49/256
Sana21.02.2022
Hajmi1,88 Mb.
#24505
TuriУчебное пособие
1   ...   45   46   47   48   49   50   51   52   ...   256
Bog'liq
morgunov e p postgresql osnovy yazyka sql

UPDATE pilots
SET schedule[ 1 ] = 2, schedule[ 2 ] = 3
WHERE pilot_name = 'Petr';
UPDATE 1
А можно было бы, используя срез (slice) массива, сделать и так:
UPDATE pilots
SET schedule[ 1:2 ] = ARRAY[ 2, 3 ]
WHERE pilot_name = 'Petr';
UPDATE 1
В вышеприведенной команде запись 1:2 означает индексы первого и последнего
элементов диапазона массива. Нотация с использованием ключевого слова ARRAY —
это альтернативный способ создания массива (он соответствует стандарту SQL). Та-
ким образом, присваивание новых значений производится сразу целому диапазону
элементов массива.
SELECT * FROM pilots;
pilot_name | schedule
------------+-----------
Boris
| {3,5,6,7}
Pavel
| {1,2,5,6}
Ivan
| {1,3,6,7}
Petr
| {2,3,5,7}
(4 строки)
66


4.5. Массивы
Теперь продемонстрируем основные операции, которые можно применять к масси-
вам, выполняя выборки из таблиц. Получим список пилотов, летающих по средам:
SELECT * FROM pilots
WHERE array_position( schedule, 3 ) IS NOT NULL;
pilot_name | schedule
------------+-----------
Boris
| {3,5,6,7}
Ivan
| {1,3,6,7}
Petr
| {2,3,5,7}
(3 строки)
Функция array_position возвращает индекс первого вхождения элемента с ука-
занным значением в массив. Если же такого элемента нет, она возвратит NULL. Вы-
берем пилотов, летающих по понедельникам и воскресеньям:
SELECT * FROM pilots
WHERE schedule @> '{ 1, 7 }'::integer[];
pilot_name | schedule
------------+-----------
Ivan
| {1,3,6,7}
(1 строка)
Оператор @> означает проверку того факта, что в левом массиве содержатся все эле-
менты правого массива. Конечно, при этом в левом массиве могут находиться и дру-
гие элементы, что мы и видим в графике этого пилота.
Еще аналогичный вопрос: кто летает по вторникам и/или по пятницам? Для полу-
чения ответа воспользуемся оператором &&, который проверяет наличие общих эле-
ментов у массивов, т. е. пересекаются ли их множества значений. В нашем примере
число общих элементов, если они есть, может быть равно одному или двум. Здесь мы
использовали нотацию с ключевым словом ARRAY, а не '{2, 5}'::integer[]. Вы
можете применять ту, которая принята в рамках выполнения вашего проекта.

Download 1,88 Mb.

Do'stlaringiz bilan baham:
1   ...   45   46   47   48   49   50   51   52   ...   256




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish