Chuẩn bị năm bảng dữ liệu customers, categories, products, bills và bill_details phục vụ cho các thao tác tiếp theo:
-- Bảng khách hàng
CREATE TABLE customers (
customer_id VARCHAR(255), -- Mã số khách hàng
customer_name VARCHAR(255), -- Tên khách hàng
email VARCHAR(255), -- Địa chỉ email
phone VARCHAR(20), -- Số điện thoại
address VARCHAR(255), -- Địa chỉ
PRIMARY KEY (customer_id)
);
-- Bảng danh mục
CREATE TABLE categories (
category_id VARCHAR(255), -- Mã số danh mục
category_name VARCHAR(255), -- Tên danh mục
PRIMARY KEY (category_id)
);
-- Bảng sản phẩm
CREATE TABLE products (
product_id VARCHAR(255), -- Mã số sản phẩm
product_name VARCHAR(255), -- Tên sản phẩm
category_id VARCHAR(255), -- Mã số danh mục
price DOUBLE, -- Giá tiền
discount DOUBLE, -- Chiết khấu
PRIMARY KEY (product_id),
FOREIGN KEY (category_id) REFERENCES categories(category_id)
);
-- Bảng hóa đơn
CREATE TABLE bills (
bill_id VARCHAR(255), -- Mã số hoá đơn
customer_id VARCHAR(255), -- Mã số khách hàng
total_amount DOUBLE, -- Tổng số tiền
created_at DATE, -- Ngày tạo
PRIMARY KEY (bill_id),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
-- Bảng chi tiết hóa đơn
CREATE TABLE bill_details (
bill_id VARCHAR(255), -- Mã số hoá đơn
product_id VARCHAR(255), -- Mã số sản phẩm
quantity INT, -- Số lượng
price DOUBLE, -- Giá tiền
discount DOUBLE, -- Chiết khấu
PRIMARY KEY (bill_id, product_id),
FOREIGN KEY (bill_id) REFERENCES bills(bill_id),
FOREIGN KEY (product_id) REFERENCES products(product_id)
);
INSERT INTO customers (customer_id, customer_name, email, phone, address) VALUES
('CUS001', 'Nguyen Van A', '[email protected]', '0901234567', '123 Le Loi, HCM'),
('CUS002', 'Tran Thi B', '[email protected]', '0902345678', '456 Nguyen Hue, HCM'),
('CUS003', 'Le Van C', '[email protected]', '0903456789', '789 Tran Hung Dao, HCM'),
('CUS004', 'Pham Thi D', '[email protected]', '0904567890', '101 Hai Ba Trung, HCM'),
('CUS005', 'Hoang Van E', '[email protected]', '0905678901', '202 Dien Bien Phu, HCM');
INSERT INTO categories (category_id, category_name) VALUES
('CAT001', 'Drink'),
('CAT002', 'Snack'),
('CAT003', 'Candy');
INSERT INTO croducts (product_id, product_name, category_id, price, discount) VALUES
('PROD001', 'Coca Cola', 'CAT001', 10.0, 0.1),
('PROD002', 'Pepsi', 'CAT001', 9.5, 0.08),
('PROD003', 'Orange Juice', 'CAT001', 12.0, 0.12),
('PROD004', 'Apple Juice', 'CAT001', 11.0, 0.1),
('PROD005', 'Water', 'CAT001', 5.0, 0.0),
('PROD006', 'Potato Chips', 'CAT002', 5.5, 0.05),
('PROD007', 'Pretzels', 'CAT002', 6.0, 0.06),
('PROD008', 'Popcorn', 'CAT002', 4.5, 0.03),
('PROD009', 'Chocolate Bar', 'CAT002', 8.0, 0.1),
('PROD010', 'Chupa Chups', 'CAT003', 10.0, 0.1);
INSERT INTO bills (bill_id, customer_id, total_amount, created_at) VALUES
('BILL001', 'CUS001', 50.0, '2024-10-15'),
('BILL002', 'CUS001', 50.0, '2024-10-16'),
('BILL003', 'CUS001', 35.0, '2024-10-17'),
('BILL004', 'CUS002', 60.0, '2024-10-18'),
('BILL005', 'CUS003', 35.0, '2024-10-19'),
('BILL006', null, 35.0, '2024-10-20');
INSERT INTO bill_details (bill_id, product_id, quantity, price, discount) VALUES
('BILL001', 'PROD001', 2, 10.0, 0.1),
('BILL001', 'PROD003', 1, 12.0, 0.12),
('BILL001', 'PROD002', 3, 9.5, 0.08),
('BILL001', 'PROD004', 2, 11.0, 0.1),
('BILL002', 'PROD009', 1, 8.0, 0.1),
('BILL002', 'PROD010', 2, 7.0, 0.08),
('BILL003', 'PROD006', 1, 18.0, 0.18),
('BILL003', 'PROD005', 2, 5.0, 0.0),
('BILL003', 'PROD004', 1, 12.0, 0.12),
('BILL004', 'PROD005', 2, 30.0, 0.1),
('BILL004', 'PROD001', 1, 20.0, 0.05),
('BILL004', 'PROD010', 3, 7.0, 0.1),
('BILL005', 'PROD002', 1, 10.0, 0.1),
('BILL005', 'PROD010', 2, 10.0, 0.1),
('BILL005', 'PROD001', 1, 15.0, 0.15),
('BILL006', 'PROD010', 1, 18.0, 0.18),
('BILL006', 'PROD001', 1, 10.0, 0.1);