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



Pdf көрінісі
бет53/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   49   50   51   52   53   54   55   56   ...   256
sql osnovi yazika

Глава 4. Типы данных СУБД PostgreSQL
Проверим, что получилось:
SELECT pilot_name, hobbies
FROM pilot_hobbies
WHERE pilot_name = 'Boris';
pilot_name |
hobbies
------------+------------------------------------------------------
Boris
| {"trips": 0, "sports": ["хоккей"], "home_lib": true}
(1 строка)
Если впоследствии Boris захочет возобновить занятия футболом, то с помощью функ-
ции jsonb_set можно будет обновить сведения о нем в таблице:
UPDATE pilot_hobbies
SET hobbies = jsonb_set( hobbies, '{ sports, 1 }', '"футбол"' )
WHERE pilot_name = 'Boris';
UPDATE 1
Второй параметр функции указывает путь в пределах JSON-объекта, куда нужно до-
бавить новое значение. В данном случае этот путь состоит из имени ключа (sports)
и номера добавляемого элемента в массиве видов спорта (номер 1). Нумерация эле-
ментов начинается с нуля. Третий параметр имеет тип jsonb, поэтому его литерал
заключается в одинарные кавычки, а само добавляемое значение берется в двойные
кавычки. В результате получается — '"футбол"'.
Проверим успешность выполнения этой операции:
SELECT pilot_name, hobbies
FROM pilot_hobbies
WHERE pilot_name = 'Boris';
pilot_name |
hobbies
------------+------------------------------------------------------
Boris
| {"trips": 0, "sports": ["хоккей", "футбол"],
"home_lib": true}
(1 строка)
Подробно использование типов JSON рассмотрено в документации в разделах 8.14
«Типы JSON» и 9.15 «Функции и операторы JSON».
72


Контрольные вопросы и задания
Контрольные вопросы и задания
1. Создайте таблицу, содержащую атрибут типа numeric(precision, scale).
Пусть это будет таблица, содержащая результаты каких-то измерений.
Команда может быть, например, такой:


Достарыңызбен бөлісу:
1   ...   49   50   51   52   53   54   55   56   ...   256




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

    Басты бет