You are on page 1of 2

-- Tạo cơ sở dữ liệu

CREATE DATABASE QuanLyKinhDoanhAoQuan;

-- Sử dụng cơ sở dữ liệu
USE QuanLyKinhDoanhAoQuan;

-- Tạo bảng tblHoaDon


CREATE TABLE tblHoaDon (
sMaHD INT PRIMARY KEY,
sMaNV INT,
dNgayLap DATE,
fTongHD FLOAT
);

-- Tạo bảng tblChiTietHoadDon


CREATE TABLE tblChiTietHoadDon (
sMaCTHD INT PRIMARY KEY,
sMaHD INT,
sMaSP INT,
iSL INT,
fTong FLOAT,
fGiamGia FLOAT
);

-- Tạo bảng tblNhanVien


CREATE TABLE tblNhanVien (
sMaNV INT PRIMARY KEY,
sTenNV NVARCHAR(255),
bGioiTinh NVARCHAR(255),
sQueQuan NVARCHAR(255),
sDiaChi NVARCHAR(255),
sSDT NVARCHAR(15),
fHSL FLOAT,
fPC FLOAT,
dNgayVaoLam DATE
);

-- Tạo bảng tblSanPham


CREATE TABLE tblSanPham (
sMaSP INT PRIMARY KEY,
sTenSP NVARCHAR(255),
sMaLoaiSP NVARCHAR(255),
sMaNH NVARCHAR(255),
fDonGia FLOAT,
iSoLuongBan INT
);

-- Tạo bảng tblLoaiSanPham


CREATE TABLE tblLoaiSanPham (
sMaLoaiSP NVARCHAR(255) PRIMARY KEY,
sTenLoaiSP NVARCHAR(255)
);

-- Tạo bảng tblNhanHieu


CREATE TABLE tblNhanHieu (
sMaNH NVARCHAR(255) PRIMARY KEY,
sTenNH NVARCHAR(255),
TongSoSanPham INT
);

-- Tạo View cho biết danh sách thông tin đầy đủ của các nhân viên nữ
CREATE VIEW DanhSachNhanVienNu AS
SELECT *
FROM tblNhanVien
WHERE bGioiTinh = N'Nữ';

-- Tạo View cho biết danh sách thông tin đầy đủ của các sản phẩm quần áo của nhãn hiệu "Gucci" và
có đơn giá > 500.000
CREATE VIEW SanPhamGucciGiaCao AS
SELECT sp.*
FROM tblSanPham sp
JOIN tblNhanHieu nh ON sp.sMaNH = nh.sMaNH
WHERE nh.sTenNH = N'Gucci' AND sp.fDonGia > 500000;

-- Tạo View tính tổng số hóa đơn đã lập của từng Nhân viên
CREATE VIEW TongSoHoaDonTheoNhanVien AS
SELECT nv.sMaNV, nv.sTenNV, COUNT(hd.sMaHD) AS TongSoHoaDon
FROM tblNhanVien nv
LEFT JOIN tblHoaDon hd ON nv.sMaNV = hd.sMaNV
GROUP BY nv.sMaNV, nv.sTenNV;

-- Tạo View tính tổng số tiền đã bán của từng quần áo theo tên quần áo
CREATE VIEW TongSoTienBanTheoQuanAo AS
SELECT sp.sTenSP, SUM(cthd.fTong) AS TongSoTienBan
FROM tblChiTietHoadDon cthd
JOIN tblSanPham sp ON cthd.sMaSP = sp.sMaSP
GROUP BY sp.sTenSP;

-- Thêm dữ liệu vào bảng tblNhanVien


INSERT INTO tblNhanVien (sMaNV, sTenNV, bGioiTinh, sQueQuan, sDiaChi, sSDT, fHSL, fPC,
dNgayVaoLam)
VALUES
(1, N'Nguyễn Văn A', N'Nam', N'Hà Nội', N'Hà Nội', '0123456789', 1.2, 2000000, '2023-01-15'),
(2, N'Lê Thị B', N'Nữ', N'Hồ Chí Minh', N'Hồ Chí Minh', '0987654321', 1.1, 1800000, '2023-02-20');

-- Thêm dữ liệu vào các bảng khác tương tự

-- Thêm thuộc tính TongSoSanPham vào bảng tblNhanHieu và viết Trigger


ALTER TABLE tblNhanHieu
ADD TongSoSanPham INT;

CREATE TRIGGER TinhTongSoSanPham


ON tblSanPham
AFTER INSERT
AS
BEGIN
UPDATE nh
SET nh.TongSoSanPham = nh.TongSoSanPham + (SELECT iSoLuongBan FROM inserted)
FROM tblNhanHieu nh
JOIN tblSanPham sp ON nh.sMaNH = sp.sMaNH
WHERE sp.sMaSP = (SELECT sMaSP FROM inserted);
END;

You might also like