Учебно-практическое пособие москва 2017 ббк


SELECT pilot_name, hobbies



Pdf көрінісі
бет48/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   44   45   46   47   48   49   50   51   ...   243
Байланысты:
Язык SQL. Базовый курс

SELECT pilot_name, hobbies
FROM pilot_hobbies
WHERE pilot_name = 'Boris';
53


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 |
i
hobbies
------------+--------------------------------------------------------
Boris
| {"trips": 0, "sports": ["хоккей", "футбол"],
"home_lib": true}
(1 строка)
Подробно использование типов JSON рассмотрено в документации в разделах 8.14
«Типы JSON» и 9.15 «Функции и операторы JSON».
Контрольные вопросы и задания
1. Создайте таблицу, содержащую атрибут типа numeric(precision, scale). Пусть это
будет таблица, содержащая результаты каких-то измерений. Команда может
быть, например, такой:
CREATE TABLE test_numeric
( measurement numeric(5, 2),


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




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

    Басты бет