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


'{ { "сосиска", "макароны", "кофе" }



Pdf көрінісі
бет70/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   66   67   68   69   70   71   72   73   ...   256
sql osnovi yazika

'{ { "сосиска", "макароны", "кофе" },
{ "котлета", "каша", "кофе" },
{ "сосиска", "каша", "кофе" },
{ "котлета", "каша", "чай" } }'::text[][]
Сделайте ряд выборок и обновлений строк в этой таблице. Для обращения к эле-
ментам двумерного массива нужно использовать два индекса. Не забывайте,
что по умолчанию номера индексов начинаются с единицы.
34. В тексте раздела 4.6 мы выполняли обновление JSON-объекта с помощью функ-
ции jsonb_set: добавляли значение в массив. Для обновления скалярных зна-
чений, например, по ключу trips, можно сделать так:
UPDATE pilot_hobbies
SET hobbies = jsonb_set( hobbies, '{ trips }', '10' )
WHERE pilot_name = 'Pavel';
UPDATE 1
Второй параметр функции — это путь в пределах JSON-объекта. Он теперь пред-
ставляет собой лишь имя ключа. Однако его необходимо заключить в фигурные
скобки. Третий параметр — это новое значение. Хотя оно числовое, но все равно
требуется записать его в одинарных кавычках.
SELECT pilot_name, hobbies->'trips' AS trips FROM pilot_hobbies;
pilot_name | trips
------------+-------
Ivan
| 3
Petr
| 2
Boris
| 0
Pavel
| 10
(4 строки)
92


Контрольные вопросы и задания
Задание.
Самостоятельно выполните изменение значения по ключу home_lib
в одной из строк таблицы.
35. Изучая приемы работы с типами JSON, можно, как и в случае с массивами, поль-
зоваться способностью команды SELECT обходиться без создания таблиц.
Покажем лишь один пример. Добавить новый ключ и соответствующее ему зна-
чения в уже существующий объект можно оператором ||:
SELECT '{ "sports": "хоккей" }'::jsonb || '{ "trips": 5 }'::jsonb;
?column?
----------------------------------
{"trips": 5, "sports": "хоккей"}
(1 строка)
Для работы с типами JSON предусмотрено много различных функций и опе-
раторов, представленных в разделе документации 9.15 «Функции и операторы
JSON». Самостоятельно ознакомьтесь с ними, используя описанную технологию
работы с командой SELECT.
36.* Объекты JSON в разных строках таблицы могут иметь различные наборы клю-
чей. Добавьте дополнительный ключ и соответствующее ему значение в JSON-
объект какой-нибудь строки таблицы pilots. Используйте оператор ||.
37. Объекты JSON позволяют не только добавлять в них новые ключи, но также и
удалять из них ключи существующие. Удалите один из ключей из JSON-объекта
какой-нибудь строки таблицы pilots. Соответствующее ему значение будет
также удалено, т. к. без ключа оно не может существовать. Воспользуйтесь опе-
ратором -.
93





Достарыңызбен бөлісу:
1   ...   66   67   68   69   70   71   72   73   ...   256




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

    Басты бет