Chuẩn bị năm bảng dữ liệu customers, categories, products, billsbill_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);

Lệnh Order By.

Lệnh Group By.

Lệnh Having.

Lệnh Join.

Lệnh Subquery.