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


CREATE TABLE pilot_hobbies



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

CREATE TABLE pilot_hobbies
(
pilot_name text,
hobbies jsonb
);
CREATE TABLE
INSERT INTO pilot_hobbies
VALUES ( 'Ivan',
'{ "sports": [ "футбол", "плавание" ],
"home_lib": true, "trips": 3
}'::jsonb
),
( 'Petr',
'{ "sports": [ "теннис", "плавание" ],
"home_lib": true, "trips": 2
}'::jsonb
),
( 'Pavel',
'{ "sports": [ "плавание" ],
"home_lib": false, "trips": 4
}'::jsonb
),
( 'Boris',
'{ "sports": [ "футбол", "плавание", "теннис" ],
"home_lib": true, "trips": 0
}'::jsonb
);
INSERT 0 4
69


Глава 4. Типы данных СУБД PostgreSQL
SELECT * FROM pilot_hobbies;
pilot_name |
hobbies
------------+------------------------------------------------
Ivan
| {"trips": 3, "sports": ["футбол", "плавание"],
"home_lib": true}
Petr
| {"trips": 2, "sports": ["теннис", "плавание"],
"home_lib": true}
Pavel
| {"trips": 4, "sports": ["плавание"],
"home_lib": false}
Boris
| {"trips": 0, "sports": ["футбол", "плавание",
"теннис"], "home_lib": true}
(4 строки)
Как видно, при выводе строк из таблицы порядок ключей в JSON-объектах не был
сохранен.
Предположим, что нужно сформировать футбольную сборную команду нашей авиа-
компании для участия в турнире. Мы можем выбрать всех футболистов таким спосо-
бом:
SELECT * FROM pilot_hobbies
WHERE hobbies @> '{ "sports": [ "футбол" ] }'::jsonb;
pilot_name |
hobbies
------------+------------------------------------------------
Ivan
| {"trips": 3, "sports": ["футбол", "плавание"],
"home_lib": true}
Boris
| {"trips": 0, "sports": ["футбол", "плавание",
"теннис"], "home_lib": true}
(2 строки)
Можно было эту задачу решить и таким способом:


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




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

    Басты бет