123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- -- -----------------------------------------------------------------
- -- Задания
- -- -----------------------------------------------------------------
- -- 11.16 Выборка данных из других источников
- -- Выборка из подзапроса
- select genus_name from (
- select * from genus
- );
- -- Выборка анбора дат с интервалом в 2 месяца
- select date
- from generate_series('2020-01-01'::date,
- '2024-06-01'::date,
- '2 month'::interval) date;
- --
- select * from (values
- ('The Shawshank Redemption', 9.3, 1994),
- ('The Godfather', 9.2, 1972),
- ('The Dark Knight', 9.1, 2008),
- ('Inception', 8.8, 2010)
- ) t(movie, imdb_rating, year);
- -- -----------------------------------------------------------------
- -- 11.18 Фильтрация данных
- table family;
- select * from family where family_name='Дроздовые';
- select * from family where family_name='Дроздовые' or family_name='Синицевые';
- select * from family where family_name in ('Дроздовые', 'Синицевые');
- select * from family where family_name like '%а%';
- select * from family where family_name like '%а%' or family_name like '%с%';
- select * from family where family_name ilike '%а%';
- -- -----------------------------------------------------------------
- -- 11.19 Особое значение NULL, coalesce
- select family_id, family_name, coalesce(description, 'не заполнено') as description from family;
- select * from family where description is null;
- select * from family where description is null or family_name like '%Д%';
- -- -----------------------------------------------------------------
- -- 11.20 Сортировка данных
- select * from family order by family_id;
- select * from family order by description nulls first;
- select * from family order by sescription nulls last;
- select family_name from family where family_name like 'Д%' order by family_name;
- -- -----------------------------------------------------------------
- -- 11.21 Ограничение количества результатов запроса
- table species;
- select * from species order by species_name, description
- limit 10 offset 10;
- select species_id, species_name from species where primary_color ilike '%бел%'
- order by species_name
- limit 5;
- -- -----------------------------------------------------------------
- -- 11.22 Измененяем данные в БД
- select 'Птичка: ' || species_name птичка from species order by species_name;
- -- или через функцию format
- select format('Птичка: %s', species_name) as 'птичка'
- from species order by species_name;
- -- Обновить записа
- update species set species_name='Древесный дрозд'
- where species_name='Дрозд лесной';
- -- Удалить таблицу. Но команда упадет с ошибкой если таблицы нет или если
- -- на таблицу ссылается другая таблица.
- drop table something;
- -- Удалить таблицу. Но команда упадет если на таблицу ссылается другая таблица.
- drop table if exists something;
- -- Удалить таблицу.
- drop table if exists something cascade;
|