1.Tạo Database và Bảng CSDL + Các ràng buộc CREATE DATABASE BaiTapLon
ON PRIMARY (
NAME = N'BaiTapLon',
FILENAME = N'D:\BaiTapLon.mdf', SIZE = 10MB,
MAXSIZE = 100MB, FILEGROWTH = 5MB )
LOG ON (
NAME = N'BaiTapLon_log',
FILENAME = N'D:\BaiTapLon_log.ldf', SIZE = 5MB,
MAXSIZE = 50MB, FILEGROWTH = 1MB );
-- Bảng BNhanVien
CREATE TABLE BNhanVien (
MaNV VARCHAR(50) NOT NULL PRIMARY KEY, HoTen NVARCHAR(100) NULL,
DiaChi NVARCHAR(100) NULL, DienThoai VARCHAR(50) NULL, NgaySinh DATE NULL,
QueQuan NVARCHAR(100) NULL );
-- Bảng BKhachHang
CREATE TABLE BKhachHang (
MaKhach VARCHAR(50) NOT NULL PRIMARY KEY, HoTen NVARCHAR(100) NULL,
DiaChi NVARCHAR(100) NULL, DienThoai VARCHAR(50) NULL );
-- Bảng BHang
CREATE TABLE BHang (
MaHang VARCHAR(50) NOT NULL PRIMARY KEY, TenHang NVARCHAR(100) NULL,
MoTa NVARCHAR(100) NULL );
-- Bảng BPhieuNhap
CREATE TABLE BPhieuNhap (
SoPN INT NOT NULL PRIMARY KEY, Ngay DATE NULL,
MaKhach VARCHAR(50) NULL, MaNVLap VARCHAR(50) NULL, MaThuKho VARCHAR(50) NULL,
MaKeToanTruong VARCHAR(50) NULL, SoChungTuGoc VARCHAR(50) NULL,
FOREIGN KEY (MaKhach) REFERENCES BKhachHang(MaKhach), FOREIGN KEY (MaNVLap) REFERENCES BNhanVien(MaNV), FOREIGN KEY (MaThuKho) REFERENCES BNhanVien(MaNV),
FOREIGN KEY (MaKeToanTruong) REFERENCES BNhanVien(MaNV) );
-- Bảng BPhieuNhapChiTiet
CREATE TABLE BPhieuNhapChiTiet ( SoPN INT NOT NULL,
MaHang VARCHAR(50) NOT NULL, DonVi NVARCHAR(50) NULL,
SoLuongChungTu INT NULL CHECK (SoLuongChungTu >= 0), SoLuongThuc INT NULL CHECK (SoLuongThuc >= 0),
DonGia FLOAT NULL CHECK (DonGia >= 0), PRIMARY KEY (SoPN, MaHang),
FOREIGN KEY (SoPN) REFERENCES BPhieuNhap(SoPN), FOREIGN KEY (MaHang) REFERENCES BHang(MaHang) );
-- Bảng BPhieuXuat
CREATE TABLE BPhieuXuat (
SoPX INT NOT NULL PRIMARY KEY, Ngay DATE NULL,
MaKhach VARCHAR(50) NULL, LyDo NVARCHAR(50) NULL, MaNVLap VARCHAR(50) NULL, MaThuKho VARCHAR(50) NULL, MaKeToan VARCHAR(50) NULL, MaGD VARCHAR(50) NULL,
FOREIGN KEY (MaKhach) REFERENCES BKhachHang(MaKhach), FOREIGN KEY (MaNVLap) REFERENCES BNhanVien(MaNV), FOREIGN KEY (MaThuKho) REFERENCES BNhanVien(MaNV), FOREIGN KEY (MaKeToan) REFERENCES BNhanVien(MaNV), FOREIGN KEY (MaGD) REFERENCES BNhanVien(MaNV) );
-- Bảng BPhieuXuatChiTiet
CREATE TABLE BPhieuXuatChiTiet ( SoPX INT NOT NULL,
MaHang VARCHAR(50) NOT NULL, DonVi NVARCHAR(50) NULL,
SoLuongYeuCau INT NULL CHECK (SoLuongYeuCau >= 0), SoLuongThuc INT NULL CHECK (SoLuongThuc >= 0), DonGia FLOAT NULL CHECK (DonGia >= 0),
PRIMARY KEY (SoPX, MaHang),
FOREIGN KEY (SoPX) REFERENCES BPhieuXuat(SoPX), FOREIGN KEY (MaHang) REFERENCES BHang(MaHang) );
2.Thêm dữ liệu cho Bảng
-- Thêm dữ liệu vào bảng BNhanVien
INSERT INTO BNhanVien (MaNV, HoTen, DiaChi, DienThoai, NgaySinh, QueQuan)
VALUES
('NV001', N'Nguyễn Văn La', N'123 Đường A, Quận 1', '0123456789', '1985- 05-20', N'Phú Thọ'),
('NV002', N'Trần Thị Bá', N'456 Đường B, Quận 2', '0987654321', '1990-10- 15', N'Hà Nội'),
('NV003', N'Lê Văn Sinh', N'789 Đường C, Quận 3', '0912345678', '1987-12- 30', N'TP. Hồ Chí Minh'),
('NV004', N'Ngô Văn Sỹ', N'12 Đường D, Quận 5', '0912345670', '1992-01- 10', N'Hải Phòng'),
('NV005', N'Phạm Thị Em', N'98 Đường E, Quận 6', '0909876543', '1989-11- 21', N'Đà Nẵng'),
('NV006', N'Hoàng Văn Kim', N'56 Đường F, Quận 7', '0923456789', '1983- 06-18', N'Nghệ An'),
('NV007', N'Vũ Thị Giang', N'45 Đường G, Quận 8', '0976543210', '1986-09- 07', N'Thái Bình'),
('NV008', N'Nguyễn Văn Hoa', N'23 Đường H, Quận 9', '0938765432', '1984- 08-28', N'Hà Nam'),
('NV009', N'Bùi Thị Thu', N'67 Đường I, Quận 10', '0981234567', '1993-04- 13', N'Hà Tĩnh'),
('NV010', N'Đỗ Văn Linh', N'89 Đường J, Quận 11', '0945678912', '1982-03- 05', N'Nam Định');
-- Thêm dữ liệu vào bảng BKhachHang
INSERT INTO BKhachHang (MaKhach, HoTen, DiaChi, DienThoai) VALUES
('KH001', N'Lê Thị Xuân', N'12 Đường X, Quận 1', '0345678912'), ('KH002', N'Bùi Công Minh', N'34 Đường Y, Quận 2', '0398765432'), ('KH003', N'Nguyễn Văn Liên', N'56 Đường Z, Quận 4', '0381234567'), ('KH004', N'Nguyễn Văn Công', N'78 Đường M, Quận 5', '0321567890'), ('KH005', N'Nguyễn Thị Kim', N'11 Đường N, Quận 6', '0386754210'), ('KH006', N'Lê Hồng La', N'23 Đường P, Quận 7', '0365432109'), ('KH007', N'Phạm Văn Linh', N'56 Đường Q, Quận 8', '0312345789'), ('KH008', N'Ngô Đình Linh', N'90 Đường R, Quận 9', '0345621379'), ('KH009', N'Lê Thị Miền', N'21 Đường S, Quận 10', '0378912345'), ('KH010', N'Đỗ Tiến Quang', N'43 Đường T, Quận 11', '0390123456');
-- Thêm dữ liệu vào bảng BHang
INSERT INTO BHang (MaHang, TenHang, MoTa) VALUES
('MH001', N'Hàng A', N'Hàng tiêu dùng'), ('MH002', N'Hàng B', N'Hàng gia dụng'),
('MH003', N'Hàng C', N'Hàng điện tử'), ('MH004', N'Hàng D', N'Hàng thời trang'),
('MH005', N'Hàng E', N'Hàng văn phòng phẩm'), ('MH006', N'Hàng F', N'Hàng gia dụng'),
('MH007', N'Hàng G', N'Hàng mỹ phẩm'), ('MH008', N'Hàng H', N'Hàng thực phẩm'), ('MH009', N'Hàng I', N'Hàng điện tử'),
('MH010', N'Hàng J', N'Hàng thủ công mỹ nghệ');
-- Thêm dữ liệu vào bảng BPhieuNhap
INSERT INTO BPhieuNhap (SoPN, Ngay, MaKhach, MaNVLap, MaThuKho, MaKeToanTruong, SoChungTuGoc)
VALUES
(1, '2024-10-25', 'KH001', 'NV001', 'NV002', 'NV003', 'CTG001'), (2, '2024-10-26', 'KH002', 'NV003', 'NV001', 'NV002', 'CTG002'), (3, '2024-10-27', 'KH003', 'NV002', 'NV003', 'NV001', 'CTG003'),
(4, '2024-10-28', 'KH004', 'NV004', 'NV005', 'NV006', 'CTG004'), (5, '2024-10-29', 'KH005', 'NV007', 'NV008', 'NV009', 'CTG005'),
(6, '2024-10-30', 'KH006', 'NV010', 'NV004', 'NV005', 'CTG006'), (7, '2024-10-31', 'KH007', 'NV006', 'NV007', 'NV008', 'CTG007'), (8, '2024-11-01', 'KH008', 'NV009', 'NV010', 'NV004', 'CTG008'), (9, '2024-11-02', 'KH009', 'NV005', 'NV006', 'NV007', 'CTG009'), (10, '2024-11-03', 'KH010', 'NV008', 'NV009', 'NV010', 'CTG010');
-- Thêm dữ liệu vào bảng BPhieuNhapChiTiet
INSERT INTO BPhieuNhapChiTiet (SoPN, MaHang, DonVi, SoLuongChungTu, SoLuongThuc, DonGia)
VALUES
(1, 'MH001', N'Cái', 10, 10, 10000), (2, 'MH002', N'Chiếc', 15, 15, 20000), (3, 'MH003', N'Hộp', 20, 18, 15000),
(4, 'MH004', N'Cái', 25, 25, 12000), (5, 'MH005', N'Chiếc', 30, 29, 15000), (6, 'MH006', N'Hộp', 40, 38, 10000), (7, 'MH007', N'Lọ', 35, 33, 13000), (8, 'MH008', N'Gói', 50, 48, 8000), (9, 'MH009', N'Cái', 60, 58, 11000),
(10, 'MH010', N'Bộ', 45, 44, 9000);
-- Thêm dữ liệu vào bảng BPhieuXuat
INSERT INTO BPhieuXuat (SoPX, Ngay, MaKhach, LyDo, MaNVLap, MaThuKho, MaKeToan, MaGD)
VALUES
(1, '2024-10-25', 'KH001', N'Xuất hàng cho công ty A', 'NV001', 'NV002', 'NV003', 'NV003'),
(2, '2024-10-26', 'KH002', N'Xuất hàng cho công ty B', 'NV002', 'NV003', 'NV001', 'NV001'),
(3, '2024-10-27', 'KH003', N'Xuất hàng cho khách lẻ', 'NV003', 'NV001', 'NV002', 'NV002'),
(4, '2024-10-28', 'KH004', N'Xuất hàng cho công ty C', 'NV004', 'NV005', 'NV006', 'NV006'),
(5, '2024-10-29', 'KH005', N'Xuất hàng cho công ty D', 'NV007', 'NV008', 'NV009', 'NV009'),
(6, '2024-10-30', 'KH006', N'Xuất hàng cho công ty E', 'NV010', 'NV004', 'NV005', 'NV005'),
(7, '2024-10-31', 'KH007', N'Xuất hàng cho công ty F', 'NV006', 'NV007', 'NV008', 'NV008'),
(8, '2024-11-01', 'KH008', N'Xuất hàng cho công ty G', 'NV009', 'NV010', 'NV004', 'NV004'),
(9, '2024-11-02', 'KH009', N'Xuất hàng cho công ty H', 'NV005', 'NV006', 'NV007', 'NV007'),
(10, '2024-11-03', 'KH010', N'Xuất hàng cho công ty I', 'NV008', 'NV009', 'NV010', 'NV010');
-- Thêm dữ liệu vào bảng BPhieuXuatChiTiet
INSERT INTO BPhieuXuatChiTiet (SoPX, MaHang, DonVi, SoLuongYeuCau, SoLuongThuc, DonGia)
VALUES
(1, 'MH001', N'Cái', 5, 5, 12000), (2, 'MH002', N'Chiếc', 7, 6, 22000), (3, 'MH003', N'Hộp', 10, 9, 18000),
(4, 'MH004', N'Cái', 12, 12, 15000), (5, 'MH005', N'Chiếc', 17, 16, 17000), (6, 'MH006', N'Hộp', 18, 17, 11000), (7, 'MH007', N'Lọ', 20, 20, 14000), (8, 'MH008', N'Gói', 22, 21, 9000), (9, 'MH009', N'Cái', 24, 23, 13000),
(10, 'MH010', N'Bộ', 26, 25, 9500);