|
@@ -0,0 +1,333 @@
|
|
|
+```sql
|
|
|
+select * from author order by name;
|
|
|
+
|
|
|
+-- Сортировка по возрастанию
|
|
|
+select * from author order by author_id
|
|
|
+select * from author order by author_id asc;
|
|
|
+
|
|
|
+-- Сортировка по убыванию
|
|
|
+select * from author order by author_id desc;
|
|
|
+
|
|
|
+-- Сортировка по author_id в порядке убывания (с указанием порядка null)
|
|
|
+select author_id, name, description
|
|
|
+ from author
|
|
|
+order by 1 nulls last;
|
|
|
+```
|
|
|
+
|
|
|
+```sql
|
|
|
+-- Временная таблица для сортировка
|
|
|
+create temp table author_tmp(
|
|
|
+ author_id bigint generated always as identity primary key,
|
|
|
+ first_name varchar(150) not null,
|
|
|
+ last_name varchar(150) not null
|
|
|
+);
|
|
|
+
|
|
|
+insert into author_tmp (first_name, last_name) values
|
|
|
+ ('Михаил', 'Шишкин'),
|
|
|
+ ('Михаил', 'Веллер'),
|
|
|
+ ('Михаил', 'Шолохов'),
|
|
|
+ ('Михаил', 'Зощенко'),
|
|
|
+ ('Михаил', 'Булгаков'),
|
|
|
+ ('Александр', 'Беляев'),
|
|
|
+ ('Александр', 'Пушкин'),
|
|
|
+ ('Лусиану', 'Рамальо');
|
|
|
+
|
|
|
+-- Ну и теперь сортировка
|
|
|
+select * from author_tmp order by first_name;
|
|
|
+select * from author_tmp order by first_name, last_name;
|
|
|
+select * from author_tmp order by first_name, last_name desc;
|
|
|
+```
|
|
|
+
|
|
|
+~={yellow}Работа с данным, созданными в SQL-запросе=~
|
|
|
+```sql
|
|
|
+select * from (values ('Яблоко'), ('Апельсин'), ('Банан'));
|
|
|
+
|
|
|
+-- сортировка просто по номеру колонки
|
|
|
+select * from (values ('Яблоко'), ('Апельсин'), ('Банан')) t order by 1;
|
|
|
+
|
|
|
+-- даём колонке имя, но сортировка по номеру колонки
|
|
|
+select * from (values ('Яблоко'), ('Апельсин'), ('Банан')) t(fruit) order by 1;
|
|
|
+
|
|
|
+-- даём колонке имя, сортировка по этому имени
|
|
|
+select * from (
|
|
|
+ values
|
|
|
+ ('Яблоко'),
|
|
|
+ ('Апельсин'),
|
|
|
+ ('Банан')
|
|
|
+) as t (fruit) order by fruit;
|
|
|
+
|
|
|
+-- добавляем ещё одну колонку просто для примера
|
|
|
+select * from (
|
|
|
+ values
|
|
|
+ ('Яблоко', 100),
|
|
|
+ ('Апельсин', 200),
|
|
|
+ ('Банан', 150)
|
|
|
+) as t (fruit, price)
|
|
|
+order by fruit;
|
|
|
+```
|
|
|
+
|
|
|
+~={yellow}Задания на сортировку с базой птиц=~
|
|
|
+
|
|
|
+```sql
|
|
|
+select * from family order by family_id desc;
|
|
|
+
|
|
|
+select * from family order by description nulls first;
|
|
|
+select * from family order by description nulls last;
|
|
|
+select family_name from family where family_name like 'Д%' order by family_name;
|
|
|
+```
|
|
|
+
|
|
|
+~={yellow}Ограничение количества результатов запроса=~
|
|
|
+
|
|
|
+```sql
|
|
|
+-- Верунь количество книг
|
|
|
+select count(*) from book;
|
|
|
+
|
|
|
+-- Вернуть 10 записей
|
|
|
+select book_id, name, author_id
|
|
|
+from book
|
|
|
+order by name limit 10;
|
|
|
+
|
|
|
+-- Вернуть сдедующие 10 записей (параметр offset)
|
|
|
+select book_id, name, author_id
|
|
|
+from book
|
|
|
+order by name limit 10 offset 10;
|
|
|
+```
|
|
|
+
|
|
|
+```sql
|
|
|
+--- Наполняем базу данных птиц
|
|
|
+insert into species (species_name, genus_id, description, average_length, average_weight, primary_color) values
|
|
|
+('Большая синица',
|
|
|
+1,
|
|
|
+'Обычная птица из семейства синицевых, обитающая в лесах и садах.',
|
|
|
+14,
|
|
|
+18,
|
|
|
+'жёлтый'),
|
|
|
+('Синица лазоревка',
|
|
|
+1,
|
|
|
+'Маленькая яркая птица из семейства синицевых.',
|
|
|
+12,
|
|
|
+11,
|
|
|
+'голубой и жёлтый'),
|
|
|
+('Синица обыкновенная',
|
|
|
+1,
|
|
|
+'Распространённый вид синиц, обитающий в лесах и парках.',
|
|
|
+13,
|
|
|
+14,
|
|
|
+'зеленоватый'),
|
|
|
+('Гаичка болотная',
|
|
|
+2,
|
|
|
+'Маленькая птица из семейства синицевых, обитающая в болотистых районах.',
|
|
|
+12,
|
|
|
+13,
|
|
|
+'серый'),
|
|
|
+('Гаичка буроголовая',
|
|
|
+2,
|
|
|
+'Маленькая птица с коричневой головой.',
|
|
|
+11,
|
|
|
+12,
|
|
|
+'коричневый и серый'),
|
|
|
+('Гаичка черноголовая',
|
|
|
+2,
|
|
|
+'Маленькая птица с черной головой.',
|
|
|
+10,
|
|
|
+11,
|
|
|
+'чёрный и серый'),
|
|
|
+('Ворон обыкновенный',
|
|
|
+3,
|
|
|
+'Крупная птица из семейства врановых, обитающая в различных средах обитания.',
|
|
|
+64,
|
|
|
+1500,
|
|
|
+'чёрный'),
|
|
|
+('Грач',
|
|
|
+3,
|
|
|
+'Птица из семейства врановых с характерным внешним видом.',
|
|
|
+46,
|
|
|
+400,
|
|
|
+'чёрный'),
|
|
|
+('Клушица',
|
|
|
+3,
|
|
|
+'Птица из семейства врановых, обитающая в горах.',
|
|
|
+60,
|
|
|
+1200,
|
|
|
+'чёрный'),
|
|
|
+('Сорока обыкновенная',
|
|
|
+4,
|
|
|
+'Птица из семейства врановых с характерной черно-белой окраской.',
|
|
|
+45,
|
|
|
+200,
|
|
|
+'чёрный и белый'),
|
|
|
+('Сорока чернокрылая',
|
|
|
+4,
|
|
|
+'Птица с черными крыльями и белым телом.',
|
|
|
+44,
|
|
|
+190,
|
|
|
+'чёрный и белый'),
|
|
|
+('Сорока голубая',
|
|
|
+4,
|
|
|
+'Птица с голубыми крыльями и хвостом.',
|
|
|
+43,
|
|
|
+180,
|
|
|
+'голубой и белый'),
|
|
|
+('Дрозд рябинник',
|
|
|
+5,
|
|
|
+'Певчая птица из семейства дроздовых, обитающая в лесах и садах.',
|
|
|
+25,
|
|
|
+100,
|
|
|
+'коричневый'),
|
|
|
+('Дрозд певчий',
|
|
|
+5,
|
|
|
+'Певчая птица с мелодичным голосом.',
|
|
|
+23,
|
|
|
+90,
|
|
|
+'коричневый и белый'),
|
|
|
+('Дрозд черный',
|
|
|
+5,
|
|
|
+'Птица с черным оперением и мелодичным пением.',
|
|
|
+24,
|
|
|
+95,
|
|
|
+'чёрный'),
|
|
|
+('Дрозд белобровик',
|
|
|
+5,
|
|
|
+'Птица с белыми бровями и ярким оперением.',
|
|
|
+22,
|
|
|
+85,
|
|
|
+'коричневый и белый'),
|
|
|
+('Дрозд пересмешник',
|
|
|
+5,
|
|
|
+'Птица, способная имитировать звуки других птиц.',
|
|
|
+26,
|
|
|
+110,
|
|
|
+'серый и коричневый'),
|
|
|
+('Синица белая',
|
|
|
+1,
|
|
|
+'Белая синица, обитающая в северных регионах.',
|
|
|
+15,
|
|
|
+20,
|
|
|
+'белый и серый'),
|
|
|
+('Синица сибирская',
|
|
|
+1,
|
|
|
+'Птица, обитающая в Сибири, с ярким оперением.',
|
|
|
+16,
|
|
|
+21,
|
|
|
+'жёлтый и зелёный'),
|
|
|
+('Синица черноголовая',
|
|
|
+1,
|
|
|
+'Синица с черной головой и белыми щеками.',
|
|
|
+14,
|
|
|
+19,
|
|
|
+'чёрный и белый'),
|
|
|
+('Гаичка хохлатая',
|
|
|
+2,
|
|
|
+'Гаичка с характерным хохолком на голове.',
|
|
|
+12,
|
|
|
+14,
|
|
|
+'серый и чёрный'),
|
|
|
+('Гаичка горная',
|
|
|
+2,
|
|
|
+'Птица, обитающая в горных районах.',
|
|
|
+11,
|
|
|
+13,
|
|
|
+'коричневый и серый'),
|
|
|
+('Гаичка рыжеголовая',
|
|
|
+2,
|
|
|
+'Гаичка с рыжей головой и серым телом.',
|
|
|
+13,
|
|
|
+15,
|
|
|
+'рыжий и серый'),
|
|
|
+('Ворон пустынный',
|
|
|
+3,
|
|
|
+'Ворон, обитающий в пустынях.',
|
|
|
+62,
|
|
|
+1400,
|
|
|
+'чёрный'),
|
|
|
+('Ворон северный',
|
|
|
+3,
|
|
|
+'Ворон, обитающий в северных регионах.',
|
|
|
+63,
|
|
|
+1450,
|
|
|
+'чёрный'),
|
|
|
+('Ворон лесной',
|
|
|
+3,
|
|
|
+'Ворон, предпочитающий лесные районы.',
|
|
|
+61,
|
|
|
+1350,
|
|
|
+'чёрный'),
|
|
|
+('Сорока зеленая',
|
|
|
+4,
|
|
|
+'Сорока с зеленым оттенком в оперении.',
|
|
|
+46,
|
|
|
+210,
|
|
|
+'зелёный и белый'),
|
|
|
+('Сорока крапчатая',
|
|
|
+4,
|
|
|
+'Сорока с крапчатым оперением.',
|
|
|
+44,
|
|
|
+190,
|
|
|
+'чёрный и белый'),
|
|
|
+('Сорока длиннохвостая',
|
|
|
+4,
|
|
|
+'Сорока с длинным хвостом.',
|
|
|
+47,
|
|
|
+220,
|
|
|
+'чёрный и белый'),
|
|
|
+('Дрозд лесной',
|
|
|
+5,
|
|
|
+'Дрозд, предпочитающий лесные районы.',
|
|
|
+25,
|
|
|
+100,
|
|
|
+'коричневый'),
|
|
|
+('Дрозд полевой',
|
|
|
+5,
|
|
|
+'Дрозд, обитающий на полях и лугах.',
|
|
|
+24,
|
|
|
+95,
|
|
|
+'коричневый и белый'),
|
|
|
+('Дрозд луговой',
|
|
|
+5,
|
|
|
+'Дрозд, предпочитающий луговые районы.',
|
|
|
+23,
|
|
|
+90,
|
|
|
+'коричневый'),
|
|
|
+('Дрозд болотный',
|
|
|
+5,
|
|
|
+'Дрозд, обитающий в болотистых районах.',
|
|
|
+26,
|
|
|
+110,
|
|
|
+'серый и коричневый'),
|
|
|
+('Дрозд красногрудый',
|
|
|
+5,
|
|
|
+'Дрозд с ярко-красной грудью.',
|
|
|
+27,
|
|
|
+115,
|
|
|
+'красный и коричневый'),
|
|
|
+('Синица пестрая',
|
|
|
+1,
|
|
|
+'Синица с пестрым оперением.',
|
|
|
+14,
|
|
|
+18,
|
|
|
+'жёлтый и чёрный'),
|
|
|
+('Синица зелёная',
|
|
|
+1,
|
|
|
+'Синица с зелёным оттенком в оперении.',
|
|
|
+15,
|
|
|
+20,
|
|
|
+'зелёный и жёлтый'),
|
|
|
+('Синица красноголовая',
|
|
|
+1,
|
|
|
+'Синица с красной головой и серым телом.',
|
|
|
+14,
|
|
|
+19,
|
|
|
+'красный и серый'),
|
|
|
+('Гаичка зеленоголовая',
|
|
|
+2,
|
|
|
+'Гаичка с зеленым оттенком в оперении.',
|
|
|
+12,
|
|
|
+13,
|
|
|
+'зелёный и серый'),
|
|
|
+('Гаичка сероголовая',
|
|
|
+2,
|
|
|
+'Гаичка с серой головой и белым телом.',
|
|
|
+11,
|
|
|
+12,
|
|
|
+'серый и белый');
|
|
|
+```
|