Задание.md 11 KB

Создание простой таблицы и обновление значений

create table smth (a int);
insert into smth(a) values (1), (2), (3);
table smth;
update smth set a = a * 2;

Хитрое создание таблицы без указания ее столбцов

create table crows as select * from species where genus_id=(
    select genus_id from genus where genus_name='Ворон'
)

или

select * into crows from species s where s.genus_id=(
    select genus_id from genus g where g.genus_name='Ворон'
);

Удалить таблицу

drop table something;
drop table if exists something;
drop table if exists something cascade;

Варианты не идентичны, конечно. Первый удаляет таблицу и команда падает с ошибкой, если таблицы нет, или если на таблицу ссылается другая таблица. Второй вариант не падает, если таблицы нет, но падает, если на таблицу кто-то ссылается. Последний вариант не падает, если таблицы нет, и не падает, если на таблицу ссылается другая таблица. Обновление данных в базе

update species
set species_name='Древесный дрозд'
where species_name='Дрозд лесной'

~={green}Пример хранения данных в текстовом файлу в формате ключ=значение:=~

название=Тихий Дон
автор=Михаил Шолохов
описание=Одно из наиболее значительных, масштабных и талантливых произведений русскоязычной литературы, принесшее автору Нобелевскую премию.
обложка=https://cdn.rroom.io/17558b4d-59dd-4f8e-b2c7-51b0d7da5216.png

~={green}Пример хранения тех же данных в текстовом файле в формате JSON:=~

{
    "name": "Тихий Дон",
    "author": "Михаил Шолохов",
    "description": "Одно из наиболее значительных, масштабных и талантливых произведений русскоязычной литературы, принесшее автору Нобелевскую премию.",
    "cover": "https://cdn.rroom.io/17558b4d-59dd-4f8e-b2c7-51b0d7da5216.png"
}

~={green}Пример хранения тех же данных в текстовом файле в формате XML:=~

<book>
    <name>Тихий Дон</name>
    <author>Михаил Шолохов</author>
    <description>Одно из наиболее значительных, масштабных и талантливых произведений русскоязычной литературы, принесшее автору Нобелевскую премию.</description>
    <cover>https://cdn.rroom.io/17558b4d-59dd-4f8e-b2c7-51b0d7da5216.png</cover>
</book>

~={cyan}Упражнения=~

{
    "cities": [
        {
            "name": "Москва",
            "population": 13149803,
            "child_cities": [
                {
                    "name": "Зеленоград"
                }
            ]
        },
        {
            "name": "Санкт-Петербург",
            "population": 5597763
        },
        {
            "name": "Кемпендяй",
            "population": 357
        },
        {
            "name": "Пеледуй",
            "population": 3578
        },
        {
            "name": "Чаплыгин"
        }
    ]
}

<cities>
<city>
<name>Москва</name>
<population>13149803</population>
<child_cities>
<city>
<name>Зеленоград</name>
</city>
</child_cities>
</city>
<city>
<name>Санкт-Петербург</name>
<population>5597763</population>
</city>
<city>
<name>Кемпендяй</name>
<population>357</population>
</city>
<city>
<name>Пеледуй</name>
<population>3578</population>
</city>
<city>
<name>Чаплыгин</name>
</city>
</cities>

~={yellow}Пагинация=~

Напиши запрос, который вернёт птиц для второй страницы. Нумерация страниц начинается с единицы, конечно, как все привыкли на веб-сайтах.

select * from species 
order by species_name, description 
limit 10 offset 10;

Пополнение базы данных птиц

--- Наполняем базу данных птиц
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,
'серый и белый');