Создаем таблицу авторов: ```sql create table author ( author_id bigint generated always as identity primary key, name varchar(150) not null check (length(name) >= 3), description text check (length(description) >= 30) ); ``` Создаем таблицу для хранения книжных категорий: ```sql create table book_category ( category_id int generated always as identity primary key, name varchar(150) not null check (length(name) >= 2) ); ``` Создаем таблицу для книг: ```sql create table book ( book_id bigint generated always as identity primary key, name varchar(255) not null check (length(name) >= 2), author_id bigint not null references author(author_id), description text check (length(description) >= 30), cover varchar(255), category_id int not null references book_category(category_id) ); ``` Создание временной таблицы: ```sql => psql create temp table something (id serial, name text) -- Вставляем данные => insert into something (name) values ('hello') => insert into something (name) values ('draturi') -- Получаем данные => select * from something; ``` ~={cyan}Создание таблиц в базе bird из задания=~ ```sql create table family ( family_id bigint generated always as identity primary key, family_name varchar(150) not null, description text ); create table genus ( genus_id bigint generated always as identity primary key, genus_name varchar(150) not null, description text, family_id bigint not null references family(family_id) ); create table species ( species_id bigint generated always as identity primary key, species_name varchar(150) not null, genus_id bigint not null references genus(genus_id), description text, average_length smallint not null, average_weight smallint not null, primary_color varchar(50) not null ); ``` ~={yellow}Сохранение информации=~ ```sql insert into author (name, description) values ( 'Михаил Шолохов', 'Великий русский советский писатель, журналист и киносценарист.' ), ( 'Лусиану Рамальо', 'Автор замечательных книг по языку программирования Python.' ); insert into author (name) values ( 'Жюль Верн' ); insert into book_category (name) values ( 'Художественная литература' ), ( 'Литература по программированию' ); insert into book (name, author_id, description, cover, category_id) values ( 'Тихий Дон', 1, 'Одно из наиболее значительных, масштабных и талантливых произведений русскоязычной литературы, принесшее автору Нобелевскую премию.', 'https://cdn.rroom.io/17558b4d-59dd-4f8e-b2c7-51b0d7da5216.png', 1 ), ( 'Python. К вершинам мастерства', 2, 'Лучшая книга по углубленному изучению Python.', 'https://cdn.rroom.io/2bee8345-a535-4fe3-add9-8db804ea89ae.png', 2 ), ( 'Судьба человека', 1, 'Пронзительный рассказ о временах Великой Отечественной войны, одно из первых произведений советской литературы, в котором война показана правдиво и наглядною.', 'https://cdn.rroom.io/271755e5-046f-4842-85cf-4e22cb17b294.png', 1 ); ``` ~={yellow}Выбор информации=~ ```sql -- Вывод всей таблицы author select * from author; -- Другой способ получить всю таблицу table author; -- В таком запросе тоже можно писать сортировки table author order by name desc limit 1; select name, description from book; -- Alias select name as book_name, description from book; -- Можно указать имя таблицы. И можно указать алиас таблицы select b.name as book_name from book as b; -- Можно указать имя базы данных и имя схемы select name from rroom_db.public.book as b; -- Преобразование к верхнему регистру -- Без alias название колонки будет upper select upper(name) as book_name from book; -- Место где postgres ище схемы show search_path; -- Получить квадратный корень из числа 225 select |/225; ```