insert into family (family_name) values (
	'Синицевые'
);

insert into family (family_name, description) values (
	'Врановые',
	'Семейство птиц, включающее воронов, грачей, сорок и других'
), (
	'Дроздовые',
	'Семейство певчих птиц, включающее дроздов, дрозд-рябинников и других'
);

insert into genus (genus_name, family_id) values (
	'Синица',
	1
), (
	'Гаичка',
	1
), (
	'Ворон',
	2
), (
	'Сорока',
	2
), (
	'Дрозд',
	3
);


table genus;

select genus_name from genus;

select genus_name, genus_id from genus;

select genus_name as bird_genus, genus_id from genus;

select genus_name as bird_genus, genus_id from public.genus;
	
select * from family where family_name='Дроздовые' or family_name='Синицевые';
select * from family where family_name in ('Дроздовые', 'Синицевые');

select * from family where family_name='Дроздовые' and family_name='Синицевые';

select * from family where family_name like '%а%' or family_name like '%с%';

select * from family;

-- Используем функцию coalesce для полей со значением null

select family_id, family_name, coalesce(description, 'не заполнено') description from family;

select * from family where description is null or family_name like '%Д%';


-- Временная таблица для сортировка
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;
select * from author_tmp order by first_name;

select * from family order by family_id desc;

select * from family order by description nulls first;

select * from family;
select family_name from family where family_name like 'Д%' order by family_name;

select * from (
    values (2, 3), (3, 20), (2, 4), (1, 20), (3, 4), (1, 19)
) as something(a, b)


select * from (
    values (2, 3), (3, 20), (2, 4), (1, 20), (3, 4), (1, 19)
) as something(a, b)
order by a, b;

select * from (
    values (3, 20), (2, 4), (1, 20), (3, 4), (3, null), (1, 19), (2, 1), (2, null)
) as something(a, b)
order by a, b desc nulls last;


table genus;
table species;

insert into species (species_id, species_name, genus_id, description, average_length, average_weight, primary_color) values (

), (
);

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,
'серый и белый')

);