Загрузка данных


CREATE DATABASE IF NOT EXISTS bookstore;
USE bookstore;

-- ======================
-- Таблица покупателей
-- ======================
CREATE TABLE customers (
    ID_C INT AUTO_INCREMENT PRIMARY KEY,
    surname_c VARCHAR(50),
    name_c VARCHAR(32),
    login VARCHAR(50),
    password VARCHAR(32),
    phone VARCHAR(15),
    email VARCHAR(32),
    passport_ser VARCHAR(6),
    passport_num VARCHAR(8)
);

-- ======================
-- Таблица жанров
-- ======================
CREATE TABLE genes (
    ID_G INT AUTO_INCREMENT PRIMARY KEY,
    name_g VARCHAR(25),
    description VARCHAR(400)
);

-- ======================
-- Таблица авторов
-- ======================
CREATE TABLE authors (
    ID_A INT AUTO_INCREMENT PRIMARY KEY,
    surname VARCHAR(50),
    name VARCHAR(50),
    midname VARCHAR(50),
    country VARCHAR(25),
    auth_img BLOB
);

-- ======================
-- Таблица книг
-- ======================
CREATE TABLE books (
    ID_B INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(50),
    pages INT,
    quantity INT,
    year VARCHAR(10),
    price FLOAT,

    id_g INT,
    id_a INT,

    reserve_to_basket INT,

    CONSTRAINT fk_book_gene
        FOREIGN KEY (id_g)
        REFERENCES genes(ID_G)
        ON DELETE CASCADE
        ON UPDATE CASCADE,

    CONSTRAINT fk_book_author
        FOREIGN KEY (id_a)
        REFERENCES authors(ID_A)
        ON DELETE CASCADE
        ON UPDATE CASCADE
);

-- ======================
-- Корзина
-- ======================
CREATE TABLE basket (
    ID_Bas INT AUTO_INCREMENT PRIMARY KEY,

    id_c INT,
    id_b INT,

    quantity_bas INT,
    data_bas DATETIME,

    CONSTRAINT fk_basket_customer
        FOREIGN KEY (id_c)
        REFERENCES customers(ID_C)
        ON DELETE CASCADE
        ON UPDATE CASCADE,

    CONSTRAINT fk_basket_book
        FOREIGN KEY (id_b)
        REFERENCES books(ID_B)
        ON DELETE CASCADE
        ON UPDATE CASCADE
);


USE bookstore;

-- ======================
-- Жанры
-- ======================

INSERT INTO genes (name_g, description)
VALUES
('Фэнтези', 'Книги с магией, вымышленными мирами и существами'),
('Детектив', 'Расследования преступлений и загадок'),
('Научная фантастика', 'Будущее, технологии и космос'),
('Роман', 'Произведения о человеческих отношениях'),
('Ужасы', 'Страшные истории и мистические события');



-- ======================
-- Авторы
-- ======================

INSERT INTO authors
(surname,name,midname,country,auth_img)
VALUES
('Толкин','Джон','Рональд','Великобритания',NULL),

('Кинг','Стивен','','США',NULL),

('Достоевский','Фёдор','Михайлович','Россия',NULL),

('Азимов','Айзек','','США',NULL),

('Конан Дойл','Артур','','Великобритания',NULL);



-- ======================
-- Книги
-- ======================

INSERT INTO books
(title,pages,quantity,year,price,id_g,id_a,reserve_to_basket)
VALUES

('Властелин колец',1200,14,'1954',35.50,1,1,0),

('Сияние',540,8,'1977',22.90,5,2,0),

('Преступление и наказание',671,12,'1866',18.75,4,3,0),

('Основание',450,10,'1951',25.40,3,4,0),

('Шерлок Холмс',350,16,'1892',20.00,2,5,0),

('Оно',950,6,'1986',31.90,5,2,0),

('Хоббит',310,18,'1937',16.50,1,1,0);



-- ======================
-- Покупатели
-- ======================

INSERT INTO customers
(surname_c,name_c,login,password,phone,email,passport_ser,passport_num)
VALUES

('Иванов','Алексей',
'alex123',
'pass111',
'79001234567',
'alex@mail.com',
'4510',
'123456'),

('Петров','Дмитрий',
'dima44',
'pass222',
'79005558877',
'dmitrii@mail.com',
'4511',
'654321'),

('Сидорова','Мария',
'maria01',
'pass333',
'79007776655',
'maria@mail.com',
'4512',
'987654');



-- ======================
-- Корзина
-- ======================

INSERT INTO basket
(id_c,id_b,quantity_bas,data_bas)
VALUES

(1,1,1,'2026-05-26 10:20:00'),

(1,3,2,'2026-05-26 10:30:00'),

(2,5,1,'2026-05-26 11:00:00'),

(2,2,1,'2026-05-26 11:05:00'),

(3,7,3,'2026-05-26 11:40:00');