-- Создание таблицы для магазинов
CREATE TABLE Stores (
StoreID INT IDENTITY(1,1) PRIMARY KEY,
StoreName VARCHAR(100) NOT NULL,
Location VARCHAR(255),
ContactNumber VARCHAR(20),
WorkingHours VARCHAR(50)
);
-- Создание таблицы для категорий
CREATE TABLE Categories (
CategoryID INT IDENTITY(1,1) PRIMARY KEY,
CategoryName VARCHAR(100) NOT NULL
);
-- Создание таблицы для поставщиков
CREATE TABLE Suppliers (
SupplierID INT IDENTITY(1,1) PRIMARY KEY,
SupplierName VARCHAR(100) NOT NULL,
ContactNumber VARCHAR(20),
Location VARCHAR(255)
);
-- Создание таблицы для продуктов
CREATE TABLE Products (
ProductID INT IDENTITY(1,1) PRIMARY KEY,
ProductName VARCHAR(100) NOT NULL,
Price DECIMAL(10, 2) NOT NULL,
StockQuantity INT NOT NULL,
CategoryID INT,
StoreID INT,
SupplierID INT,
FOREIGN KEY (CategoryID) REFERENCES Categories(CategoryID),
FOREIGN KEY (StoreID) REFERENCES Stores(StoreID),
FOREIGN KEY (SupplierID) REFERENCES Suppliers(SupplierID)
);
-- Вставка данных в таблицу магазинов
INSERT INTO Stores (StoreName, Location, ContactNumber, WorkingHours)
VALUES
('Tech Shop', 'Алматы, Абая даңғылы, 75', '+7 727 123 45 67', '09:00-18:00'),
('Fashion Store', 'Нұр-Сұлтан, Мәңгілік Ел, 123', '+7 717 234 56 78', '10:00-20:00'),
('Supermart', 'Алматы, Достық даңғылы, 25', '+7 727 567 89 01', '09:00-22:00');
-- Вставка данных в таблицу категорий
INSERT INTO Categories (CategoryName)
VALUES
('Электроника'),
('Киім'),
('Азық-түлік'),
('Техникалық құралдар'),
('Аяқ киім');
-- Вставка данных в таблицу поставщиков
INSERT INTO Suppliers (SupplierName, ContactNumber, Location)
VALUES
('Samsung', '+7 701 234 56 78', 'Алматы'),
('H&M', '+7 705 678 90 12', 'Швеция'),
('Apple', '+7 701 345 67 89', 'АҚШ'),
('Sony', '+7 705 123 45 67', 'Жапония');
-- Вставка данных в таблицу продуктов
INSERT INTO Products (ProductName, Price, StockQuantity, CategoryID, StoreID, SupplierID)
VALUES
('Ноутбук', 150000, 10, 1, 1, 1),
('Телефон', 80000, 15, 1, 1, 2),
('Көйлек', 20000, 25, 2, 2, 3),
('Шалбар', 15000, 30, 2, 2, 3),
('Телевизор', 100000, 5, 4, 1, 4),
('Спорт аяқ киім', 25000, 50, 5, 3, 2);
-- Запрос для получения всех продуктов с их ценами, количеством и магазинами
SELECT p.ProductName, p.Price, p.StockQuantity, s.StoreName, c.CategoryName
FROM Products p
JOIN Stores s ON p.StoreID = s.StoreID
JOIN Categories c ON p.CategoryID = c.CategoryID
ORDER BY p.Price DESC; -- Сортировка по цене (по убыванию)
-- Запрос для получения всех покупок и информации о них
SELECT p.ProductName, pur.Quantity, pur.PurchaseDate, pur.PriceAtPurchase
FROM Purchases pur
JOIN Products p ON pur.ProductID = p.ProductID
ORDER BY pur.PurchaseDate DESC; -- Сортировка по дате покупки (по убыванию)