Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save artyom-ivanov/352a75ebd57b62aafaccdc0a7e1c788e to your computer and use it in GitHub Desktop.
Save artyom-ivanov/352a75ebd57b62aafaccdc0a7e1c788e to your computer and use it in GitHub Desktop.
SQL Playground
-- СОЗДАЕМ ТАБЛИЦЫ
-- Таблица "Authors" (Авторы)
CREATE TABLE Authors (
author_id SERIAL PRIMARY KEY,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
birthdate DATE,
country VARCHAR(100)
);
-- Таблица "Genres" (Жанры)
CREATE TABLE Genres (
genre_id SERIAL PRIMARY KEY,
genre_name VARCHAR(100) NOT NULL
);
-- Таблица "Books" (Книги)
CREATE TABLE Books (
book_id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
author_id INT NOT NULL,
genre_id INT NOT NULL,
published_year INT,
FOREIGN KEY (author_id) REFERENCES Authors(author_id),
FOREIGN KEY (genre_id) REFERENCES Genres(genre_id)
);
-- Таблица "Members" (Члены библиотеки)
CREATE TABLE Members (
member_id SERIAL PRIMARY KEY,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
membership_start_date DATE NOT NULL
);
-- Таблица "Loans" (Выдачи книг)
CREATE TABLE Loans (
loan_id SERIAL PRIMARY KEY,
book_id INT NOT NULL,
member_id INT NOT NULL,
loan_date DATE NOT NULL,
return_date DATE,
FOREIGN KEY (book_id) REFERENCES Books(book_id),
FOREIGN KEY (member_id) REFERENCES Members(member_id)
);
-- ЗАПОЛНЯЕМ ТАБЛИЦЫ
INSERT INTO Authors (first_name, last_name, birthdate, country) VALUES
('Джоан', 'Роулинг', '1965-07-31', 'Великобритания'),
('Джордж', 'Оруэлл', '1903-06-25', 'Великобритания'),
('Марк', 'Твен', '1835-11-30', 'США'),
('Джейн', 'Остин', '1775-12-16', 'Великобритания'),
('Фрэнсис Скотт', 'Фицджеральд', '1896-09-24', 'США'),
('Эрнест', 'Хемингуэй', '1899-07-21', 'США'),
('Чарльз', 'Диккенс', '1812-02-07', 'Великобритания'),
('Лев', 'Толстой', '1828-09-09', 'Россия'),
('Герберт Джордж', 'Уэллс', '1866-09-21', 'Великобритания'),
('Айзек', 'Азимов', '1920-01-02', 'США'),
('Артур', 'Конан Дойль', '1859-05-22', 'Великобритания'),
('Герман', 'Мелвилл', '1819-08-01', 'США'),
('Мэри', 'Шелли', '1797-08-30', 'Великобритания'),
('Жюль', 'Верн', '1828-02-08', 'Франция'),
('Агата', 'Кристи', '1890-09-15', 'Великобритания'),
('Виктор', 'Гюго', '1802-02-26', 'Франция'),
('Габриэль Гарсия', 'Маркес', '1927-03-06', 'Колумбия'),
('Франц', 'Кафка', '1883-07-03', 'Австро-Венгрия'),
('Вирджиния', 'Вулф', '1882-01-25', 'Великобритания'),
('Федор', 'Достоевский', '1821-11-11', 'Россия');
INSERT INTO Genres (genre_name) VALUES
('Фэнтези'),
('Научная фантастика'),
('Классика'),
('Романтика'),
('Историческая проза'),
('Детектив'),
('Триллер'),
('Ужасы'),
('Биография'),
('Приключения');
INSERT INTO Books (title, author_id, genre_id, published_year) VALUES
('Гарри Поттер и философский камень', 1, 1, 1997),
('1984', 2, 2, 1949),
('Скотный двор', 2, 2, 1945),
('Гордость и предубеждение', 4, 4, 1813),
('Великий Гэтсби', 5, 3, 1925),
('Старик и море', 6, 3, 1952),
('Повесть о двух городах', 7, 3, 1859),
('Война и мир', 8, 5, 1869),
('Машина времени', 9, 2, 1895),
('Я, робот', 10, 2, 1950),
('Шерлок Холмс: Этюд в багровых тонах', 11, 6, 1887),
('Моби Дик', 12, 3, 1851),
('Франкенштейн', 13, 8, 1818),
('Двадцать тысяч лье под водой', 14, 9, 1870),
('Убийство в "Восточном экспрессе"', 15, 6, 1934),
('Отверженные', 16, 5, 1862),
('Сто лет одиночества', 17, 5, 1967),
('Превращение', 18, 8, 1915),
('К маяку', 19, 4, 1927),
('Преступление и наказание', 20, 5, 1866),
('Над пропастью во ржи', 5, 3, 1951),
('Приключения Гекльберри Финна', 3, 9, 1884),
('Чувство и чувствительность', 4, 4, 1811),
('Приключения Тома Сойера', 3, 9, 1876),
('Война миров', 9, 2, 1898),
('Человек-невидимка', 9, 2, 1897),
('Братья Карамазовы', 20, 5, 1880),
('Дракула', 13, 8, 1897),
('Зов предков', 12, 9, 1903),
('О дивный новый мир', 2, 2, 1932),
('Хоббит', 1, 1, 1937),
('Прощай, оружие!', 6, 3, 1929),
('Грозовой перевал', 4, 4, 1847),
('Мадам Бовари', 16, 4, 1857),
('Одиссея', 12, 9, -800),
('Путешествия Гулливера', 14, 9, 1726),
('Портрет Дориана Грея', 19, 8, 1890),
('Процесс', 18, 8, 1925),
('Лолита', 17, 4, 1955),
('Сердце тьмы', 12, 8, 1899);
INSERT INTO Members (first_name, last_name, membership_start_date) VALUES
('Алексей', 'Иванов', '2021-01-15'),
('Мария', 'Петрова', '2020-03-22'),
('Дмитрий', 'Смирнов', '2022-06-30'),
('Ольга', 'Кузнецова', '2019-09-12'),
('Наталья', 'Соколова', '2023-02-05'),
('Иван', 'Попов', '2021-04-18'),
('Екатерина', 'Лебедева', '2022-11-29'),
('Сергей', 'Козлов', '2020-08-23'),
('Анна', 'Новикова', '2021-10-16'),
('Павел', 'Морозов', '2023-03-10'),
('Елена', 'Федорова', '2019-07-25'),
('Михаил', 'Волков', '2022-12-19'),
('Юлия', 'Алексеева', '2021-06-05'),
('Виктор', 'Белоусов', '2020-11-11'),
('Татьяна', 'Михайлова', '2021-09-14'),
('Андрей', 'Тихонов', '2023-04-22'),
('Ирина', 'Семёнова', '2022-01-30'),
('Александр', 'Егоров', '2021-05-27'),
('Людмила', 'Павлова', '2020-10-09'),
('Николай', 'Григорьев', '2022-07-18'),
('Валентина', 'Рябова', '2021-02-13'),
('Владимир', 'Медведев', '2020-06-01'),
('Светлана', 'Борисова', '2022-09-26'),
('Юрий', 'Зайцев', '2021-08-19'),
('Ксения', 'Макарова', '2023-05-08'),
('Артем', 'Ильин', '2019-04-21'),
('Оксана', 'Гаврилова', '2020-02-17'),
('Роман', 'Герасимов', '2021-12-03'),
('Галина', 'Никитина', '2022-03-15'),
('Василий', 'Сафонов', '2023-06-27');
INSERT INTO Loans (book_id, member_id, loan_date, return_date) VALUES
(1, 1, '2023-01-05', '2023-01-20'),
(2, 2, '2023-01-07', '2023-01-22'),
(3, 3, '2023-01-10', '2023-01-25'),
(4, 4, '2023-01-12', '2023-01-27'),
(5, 5, '2023-01-15', '2023-01-30'),
(6, 6, '2023-01-17', '2023-02-01'),
(7, 7, '2023-01-19', '2023-02-03'),
(8, 8, '2023-01-22', '2023-02-06'),
(9, 9, '2023-01-25', '2023-02-10'),
(10, 10, '2023-01-28', '2023-02-12'),
(11, 11, '2023-02-01', '2023-02-16'),
(12, 12, '2023-02-04', '2023-02-19'),
(13, 13, '2023-02-07', '2023-02-22'),
(14, 14, '2023-02-10', '2023-02-25'),
(15, 15, '2023-02-13', '2023-02-28'),
(16, 16, '2023-02-15', '2023-03-02'),
(17, 17, '2023-02-18', '2023-03-05'),
(18, 18, '2023-02-20', '2023-03-07'),
(19, 19, '2023-02-23', '2023-03-10'),
(20, 20, '2023-02-26', '2023-03-13'),
(21, 21, '2023-03-01', '2023-03-16'),
(22, 22, '2023-03-04', '2023-03-19'),
(23, 23, '2023-03-07', '2023-03-22'),
(24, 24, '2023-03-10', '2023-03-25'),
(25, 25, '2023-03-13', '2023-03-28'),
(26, 26, '2023-03-15', '2023-03-30'),
(27, 27, '2023-03-18', '2023-04-02'),
(28, 28, '2023-03-20', '2023-04-04'),
(29, 29, '2023-03-23', '2023-04-07'),
(30, 30, '2023-03-26', '2023-04-10'),
(1, 5, '2023-04-01', '2023-04-16'),
(2, 6, '2023-04-04', '2023-04-19'),
(3, 7, '2023-04-07', '2023-04-22'),
(4, 8, '2023-04-10', '2023-04-25'),
(5, 9, '2023-04-13', '2023-04-28'),
(6, 10, '2023-04-16', '2023-05-01'),
(7, 11, '2023-04-19', '2023-05-04'),
(8, 12, '2023-04-22', '2023-05-07'),
(9, 13, '2023-04-25', '2023-05-10'),
(10, 14, '2023-04-28', '2023-05-13'),
(11, 15, '2023-05-01', '2023-05-16'),
(12, 16, '2023-05-04', '2023-05-19'),
(13, 17, '2023-05-07', '2023-05-22'),
(14, 18, '2023-05-10', '2023-05-25'),
(15, 19, '2023-05-13', '2023-05-28'),
(16, 20, '2023-05-16', '2023-05-31'),
(17, 21, '2023-05-19', '2023-06-03'),
(18, 22, '2023-05-22', '2023-06-06'),
(19, 23, '2023-05-25', '2023-06-10'),
(20, 24, '2023-05-28', '2023-06-12'),
(21, 25, '2023-06-01', '2023-06-16'),
(22, 26, '2023-06-04', '2023-06-19'),
(23, 27, '2023-06-07', '2023-06-22'),
(24, 28, '2023-06-10', '2023-06-25'),
(25, 29, '2023-06-13', '2023-06-28'),
(26, 30, '2023-06-16', '2023-07-01'),
(27, 1, '2023-06-19', '2023-07-04'),
(28, 2, '2023-06-22', '2023-07-07'),
(29, 3, '2023-06-25', '2023-07-10'),
(30, 4, '2023-06-28', '2023-07-13'),
(1, 5, '2023-07-01', '2023-07-16'),
(2, 6, '2023-07-04', '2023-07-19'),
(3, 7, '2023-07-07', '2023-07-22'),
(4, 8, '2023-07-10', '2023-07-25'),
(5, 9, '2023-07-13', '2023-07-28'),
(6, 10, '2023-07-16', '2023-07-31'),
(7, 11, '2023-07-19', '2023-08-03'),
(8, 12, '2023-07-22', '2023-08-06'),
(9, 13, '2023-07-25', '2023-08-10'),
(10, 14, '2023-07-28', '2023-08-12'),
(11, 15, '2023-08-01', '2023-08-16'),
(12, 16, '2023-08-04', '2023-08-19'),
(13, 17, '2023-08-07', '2023-08-22'),
(14, 18, '2023-08-10', '2023-08-25'),
(15, 19, '2023-08-13', '2023-08-28'),
(16, 20, '2023-08-16', '2023-08-31'),
(17, 21, '2023-08-19', '2023-09-03'),
(18, 22, '2023-08-22', '2023-09-06'),
(19, 23, '2023-08-25', '2023-09-10'),
(20, 24, '2023-08-28', '2023-09-12'),
(21, 25, '2023-09-01', '2023-09-16'),
(22, 26, '2023-09-04', '2023-09-19'),
(23, 27, '2023-09-07', '2023-09-22'),
(24, 28, '2023-09-10', '2023-09-25'),
(25, 29, '2023-09-13', '2023-09-28'),
(26, 30, '2023-09-16', '2023-10-01'),
(27, 1, '2023-09-19', '2023-10-04'),
(28, 2, '2023-09-22', '2023-10-07'),
(29, 3, '2023-09-25', '2023-10-10'),
(30, 4, '2023-09-28', '2023-10-13'),
(1, 5, '2023-10-01', '2023-10-16'),
(2, 6, '2023-10-04', '2023-10-19'),
(3, 7, '2023-10-07', '2023-10-22'),
(4, 8, '2023-10-10', '2023-10-25'),
(5, 9, '2023-10-13', '2023-10-28'),
(6, 10, '2023-10-16', '2023-10-31'),
(7, 11, '2023-10-19', '2023-11-03'),
(8, 12, '2023-10-22', '2023-11-06'),
(9, 13, '2023-10-25', '2023-11-10'),
(10, 14, '2023-10-28', '2023-11-12');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment