-- Bookstores (дүкендер) кестесі
CREATE TABLE Bookstores (
StoreID INT AUTO_INCREMENT PRIMARY KEY,
StoreName VARCHAR(100) NOT NULL,
Location VARCHAR(255),
ContactNumber VARCHAR(20),
WorkingHours VARCHAR(50)
);
-- Genres (жанрлар) кестесі
CREATE TABLE Genres (
GenreID INT AUTO_INCREMENT PRIMARY KEY,
GenreName VARCHAR(100) NOT NULL
);
-- Publishers (баспалар) кестесі
CREATE TABLE Publishers (
PublisherID INT AUTO_INCREMENT PRIMARY KEY,
PublisherName VARCHAR(100) NOT NULL,
ContactNumber VARCHAR(20),
Location VARCHAR(255)
);
-- Books (кітаптар) кестесі
CREATE TABLE Books (
BookID INT AUTO_INCREMENT PRIMARY KEY,
Title VARCHAR(150) NOT NULL,
Author VARCHAR(100),
Price DECIMAL(10,2) NOT NULL,
StockQuantity INT NOT NULL,
GenreID INT,
StoreID INT,
PublisherID INT,
FOREIGN KEY (GenreID) REFERENCES Genres(GenreID),
FOREIGN KEY (StoreID) REFERENCES Bookstores(StoreID),
FOREIGN KEY (PublisherID) REFERENCES Publishers(PublisherID)
);
-- Purchases (сатып алулар) кестесі
CREATE TABLE Purchases (
PurchaseID INT AUTO_INCREMENT PRIMARY KEY,
BookID INT,
Quantity INT NOT NULL,
PurchaseDate DATETIME NOT NULL,
PriceAtPurchase DECIMAL(10,2) NOT NULL,
FOREIGN KEY (BookID) REFERENCES Books(BookID)
);
-- Bookstores мәліметтері
INSERT INTO Bookstores (StoreName, Location, ContactNumber, WorkingHours)
VALUES
('Book City', 'Алматы, Қабанбай батыр 12', '+7 727 100 20 30', '09:00-19:00'),
('Kitap House', 'Нұр-Сұлтан, Бейбітшілік 77', '+7 717 500 50 50', '10:00-21:00'),
('Literarium', 'Шымкент, Төле би 88', '+7 725 333 44 55', '09:00-20:00');
-- Genres мәліметтері
INSERT INTO Genres (GenreName)
VALUES
('Фантастика'),
('Романдар'),
('Өмірбаян'),
('Балалар әдебиеті'),
('Ғылыми әдебиет');
-- Publishers мәліметтері
INSERT INTO Publishers (PublisherName, ContactNumber, Location)
VALUES
('Steppe Publishing', '+7 701 123 45 67', 'Алматы'),
('AstanaBooks', '+7 702 234 56 78', 'Нұр-Сұлтан'),
('World Books', '+7 703 345 67 89', 'АҚШ'),
('Knowledge Press', '+7 704 456 78 90', 'Ұлыбритания');
-- Books мәліметтері
INSERT INTO Books (Title, Author, Price, StockQuantity, GenreID, StoreID, PublisherID)
VALUES
('Абай жолы', 'Мұхтар Әуезов', 3500, 20, 2, 1, 1),
('Harry Potter', 'J.K. Rowling', 5000, 15, 1, 2, 4),
('Елбасы жолы', 'Нұрсұлтан Назарбаев', 4500, 10, 3, 1, 2),
('Кішкентай ханзада', 'Антуан де Сент-Экзюпери', 3000, 25, 4, 3, 3),
('Қызықты физика', 'Л. Перельман', 4000, 12, 5, 1, 4),
('Фантастика әлемі', 'Айбек Нұр', 3800, 18, 1, 2, 1);
-- Purchases мәліметтері
INSERT INTO Purchases (BookID, Quantity, PurchaseDate, PriceAtPurchase)
VALUES
(1, 3, '2025-04-20 14:00:00', 3500),
(2, 5, '2025-04-22 16:30:00', 5000),
(3, 2, '2025-04-23 10:00:00', 4500),
(4, 4, '2025-04-24 11:15:00', 3000),
(5, 1, '2025-04-25 13:00:00', 4000),
(6, 2, '2025-04-26 15:30:00', 3800);
-- Кітаптар туралы сұраныс
SELECT b.Title, b.Author, b.Price, b.StockQuantity, bs.StoreName, g.GenreName
FROM Books b
JOIN Bookstores bs ON b.StoreID = bs.StoreID
JOIN Genres g ON b.GenreID = g.GenreID;
-- Сатып алулар туралы сұраныс
SELECT b.Title, p.Quantity, p.PurchaseDate, p.PriceAtPurchase
FROM Purchases p
JOIN Books b ON p.BookID = b.BookID;