Tải bản đầy đủ (.doc) (21 trang)

bài toán quản lý bán hàng SQL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (132.14 KB, 21 trang )

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA: CÔNG NGHỆ THÔNG TIN
------

BÀI KIỂM TRA SỐ 2

Đề tài : Bài toán quản lý bán hàng

Họ và tên sinh viên

: Đặng Văn Hiểu

Mã sinh viên

: 20111062141

Lớp

: ĐH10C5

Tên học phần

: Ngôn Ngữ SQL

Giảng viên hướng dẫn : Nguyễn Thị Hồng Loan

Hà Nội, ngày 13 tháng 04 năm 2022

1



A. LỜI MỞ ĐẦU
Xã hội ngày càng phát triển, thông tin ngày càng trở nên phong phú, đa dạng
và phức tạp. Sự bùng nổ thông tin đã thực sự trở thành một vấn đề cấp thiết
cần giải quyết. Công nghệ thông tin ra đời và phát triển nhằm xử lý những
vấn đề quan trọng.
Cùng với sự phát triển nhanh chóng của thời đại 4.0, con người đã nghĩ ra rất
nhiều các ứng dụng phục vụ cho nhu cầu, lợi ích của con người.
Một trong những số đó thì việc xây dựng phần mềm phục vụ vào công việc
là một trong những vấn đề mà các nhà lập trình viên ln quan tâm hàng đầu.
Hệ thống thông tin CSDL về “ Quản lý bán hàng ” cũng là một trong những
ứng dụng mà con người quan tâm nhiều nhất.

2


B. NỘI DUNG
I. MƠ TẢ BÀI TỐN
1. Bài tốn đặt ra là quản lý bán hàng – đòi hỏi quản lý bao gồm cửa hàng, khách
hàng, nhà cung cấp, mặt hàng, đơn hàng, chi tiết đơn hàng, giao hàng, chi tiết
giao hàng. Thơng qua đó có thể lập các hóa đơn, từ các hóa đơn đó có thể tìm
thấy thơng tin về cửa hàng, khách hàng, nhà cung cấp, mặt hàng, giao hàng và
các thông tin cần thiết khác.
2. Các thông tin về cửa hàng gồm mã cửa hàng, tên tỉnh, tên người quản lý, địa
chỉ, số điện thoại.
3. Các thông tin về khách hàng gồm mã khách hàng, tên khách hàng, họ đệm
khách hàng, địa chỉ khách hàng, số điện thoại khách hàng.
4. Các thông tin nhà cung cấp gồm mã cung cấp hàng, tên nhà cung cấp.
5. Các thông tin mặt hàng gồm mã mặt hàng, tên mặt hàng, mã kí hiệu loại mặt
hàng, trọng lượng mặt hàng (kg), màu của mặt hàng, số lượng có trong kho, giá
nhập hàng ( triệu đồng ), giá xuất hàng tại thời điểm hiện tại và mã cung cấp

hàng.
6. Các thông tin đơn hàng gồm mã vận đơn, ngày khách hàng đặt hàng, mã
khách hàng, mã cửa hàng
7. Các thông tin chi tiết đơn hàng gồm mã vận đơn, mã mặt hàng đặt mua, số
lượng đặt mua mặt hàng, giá bán của mặt hàng tại thời điểm lập đơn hàng, ngày
dự kiến giao hàng.
8. Các thông tin giao hàng gồm mã hóa đơn giao hàng, ngày cơng ty giao hàng,
mã khách hàng, mã cửa hàng
9. Các thông tin chi tiết giao hàng gồm mã hóa đơn giao hàng, mã mặt hàng đặt
mua, số lượng hàng được giao, mã đơn hàng đặt mua liên quan.
II. TẠO CÁC BẢNG, RÀNG BUỘC, LIÊN KẾT GIỮA CÁC BẢNG,
INSERT DỮ LIỆU, ĐẶT 20 CÂU TRUY VẤN.
1. Tạo các bảng, ràng buộc
3


create database QL_BanHang_Hieu
DROP DATABASE QL_BanHang_Hieu
a. Bảng CUA_HANG
GO
CREATE TABLE CUA_HANG (
Ma_CH CHAR(4),
Tinh_CH VARCHAR(15),
Quan_Ly_CH VARCHAR(30),
Dia_Chi_CH VARCHAR(50),
Tel_CH VARCHAR(13)
PRIMARY KEY (Ma_CH)
)
b. Bảng KHACH_HANG
GO

CREATE TABLE KHACH_HANG(
Ma_KH CHAR(4),
Ten_KH VARCHAR (7),
Ho_Dem_KH VARCHAR (25),
Dia_Chi_KH VARCHAR (50),
4


Tel_KH VARCHAR(13)
PRIMARY KEY (Ma_KH)
)
c. Bảng NHA_CUNG_CAP
GO
CREATE TABLE NHA_CUNG_CAP(
Ma_NCC CHAR(4),
Ten_NCC VARCHAR(7),
PRIMARY KEY (Ma_NCC)
)
d. Bảng MAT_HANG
GO
CREATE TABLE MAT_HANG(
Ma_MH CHAR(4),
Ten_MH VARCHAR (20),
Loai_MH VARCHAR(5),
Tluong_MH SMALLINT,
Mau_MH VARCHAR (25),
Ton_Kho_MH SMALLINT ,
5



Gia_Mua_MH SMALLINT,
Gia_Ban_MH SMALLINT,
Ma_NCC CHAR (4) FOREIGN KEY
REFERENCES dbo.NHA_CUNG_CAP(Ma_NCC)
PRIMARY KEY (Ma_MH)
)
e. Bảng DON_HANG
GO
CREATE TABLE DON_HANG(
Ma_DH CHAR(7) ,
Ngay_Lap_DH SMALLDATETIME,
Ma_KH CHAR(4)FOREIGN KEY
REFERENCES dbo.KHACH_HANG(Ma_KH),
Ma_CH CHAR(4) FOREIGN KEY
REFERENCES dbo.CUA_HANG(Ma_CH)
PRIMARY KEY (Ma_DH)
)
f. Bảng CHI_TIET_DH
GO
6


CREATE TABLE CHI_TIET_DH(
Ma_DH CHAR(7),
Ma_MH CHAR (4),
Sluong_dat SMALLINT,
Gia SMALLINT,
Ngay_Giao_DK SMALLDATETIME
FOREIGN KEY (Ma_DH)
REFERENCES dbo.DON_HANG(Ma_DH),

FOREIGN KEY (Ma_MH)
REFERENCES dbo.MAT_HANG(Ma_MH),
PRIMARY KEY (Ma_DH,Ma_MH))
g. Bảng GIAO_HANG
GO
CREATE TABLE GIAO_HANG(
Ma_GH CHAR(7) PRIMARY KEY,
Ngay_GH SMALLDATETIME,
Ma_KH CHAR(4) FOREIGN KEY
REFERENCES dbo.KHACH_HANG(Ma_KH),
Ma_CH CHAR(4) FOREIGN KEY
7


REFERENCES dbo.CUA_HANG(Ma_CH)
)
h. Bảng CHI_TIET_GH
GO
CREATE TABLE CHI_TIET_GH(
Ma_GH CHAR(7),
Ma_MH CHAR (4),
Sluong_giao SMALLINT,
Ma_DH CHAR(7) FOREIGN KEY
REFERENCES dbo.DON_HANG(Ma_DH),
FOREIGN KEY (Ma_GH)
REFERENCES dbo.GIAO_HANG(Ma_GH),
FOREIGN KEY (Ma_MH)
REFERENCES dbo.MAT_HANG(Ma_MH),
PRIMARY KEY (Ma_GH,Ma_MH)
)

2. Liên kết bảng:

8


3. INSERT dữ liệu vào bảng:
a. Bảng CUA_HANG
GO
INSERT INTO CUA_HANG
VALUES ('CH01','Ha Noi','Nguyen An Binh','Cau Giay-Ha Noi','047547100'),
('CH02','Ha Nam','Le Hoang Lan','Phu Ly-Ha Nam','3517678808'),
('CH03','Hai Phong','Nguyen Anh Dung','Cat Dai-Hai Phong','0318437855'),
('CH04','Hai Duong','Vu Van Tan','Tran Hung Dao-Hai Duong','3207595555'),
('CH05','Thai Binh','Nguyen Ngoc Duong','Nguyen Thai Hoc-Thai
Binh','0363477777'),
9


('CH06','Ha Tay','Vu Thanh Thuy','Ba Vi-Ha Tay','0347527756'),
('CH07','Nam Dinh','Le Anh Tuan','Tran Hung Dao-Nam Dinh','034566666'),
('CH08','Thanh Hoa','Tran Xuan Nam','Le Hong Phong-Thanh
Hoa','0373564444'),
('CH09','Nghe An','Pham Duc Cuong','Quang Trung-Nghe An','0385872892'),
('CH10','Thai Nguyen','Trinh Tuan Dat','Tran Hung Dao-Thai
Nguyen','0384828333'),
('CH11','Phu Tho','Duong Thu Hang','Hung Vuong-Phu Tho','0384339800'),
('CH12','Yen Bai','Hoang Viet Hung','Quang Trung-Yen Bai','0303248023')
b. Bảng KHACH_HANG
go
INSERT INTO KHACH_HANG

VALUES
('KH01','An','Phan Thanh','Ha Noi',null),
('KH02','Binh','Nguyen Ngoc','Ha Noi',null),
('KH03','Duong','Tran Hong','Ha Tay',null),
('KH04','Duyen','Nguyen Thi','Ha Nam',null),
('KH05','Giang','Nguyen Ho','Nam Dinh',null),
('KH06','Ha','Phan Thanh','Ha Tay',null),
10


('KH07','Huong','Nguyen Thi','Thanh Hoa',null),
('KH08','Huong','Mai Thu','Ha Nam',null),
('KH09','Khanh','Tran Xuan','Hai Duong',null),
('KH10','Lien','Tran Tuyet','Hai Phong',null),
('KH11','Luan','Tran Van','Hai Duong',null),
('KH12','Mai','Vu Thu','Nam Dinh',null),
('KH13','Minh','Hoang Duong','Bac Ninh',null),
('KH14','Nam','Dang Van','Yen Bai',null),
('KH15','Quang','Nguyen Huy','Hai Phong',null),
('KH16','Thanh','Nguyen Van','Hai Phong',null),
('KH17','Thang','Nguyen Son','Ha Noi',null),
('KH18','Trung','Tran Khac','Ha Noi',null),
('KH19','Truong','Nguyen Xuan','Thanh Hoa',null),
('KH20','Xuan','Le Thi Thanh','Thanh Hoa',null),
('KH21','Yen','Hoang Hai','Bac Ninh',null),
('KH22','Hoang','Tran Van','Yen Bai',null)
c. Bảng NHA_CUNG_CAP
go
INSERT INTO MAT_HANG
11



VALUES
('MH01', 'SPACY', 'XM', '200', 'trang', '100', '35','40','CC01'),
('MH02', 'SPACY', 'XM', '200', 'den', '100', '35','40','CC01'),
('MH03', 'PIAGO', 'XM', null,null, '50', '50','55','CC02'),
('MH04', '@', 'XM', '200', 'trang', '200', '40','45','CC01'),
('MH05', '@', 'XM', '200', 'xanh duong', '150', '40','45','CC01'),
('MH06', 'DYLAN', 'XM', '250', 'do', '110', '60','70','CC01'),
('MH07', 'DYLAN', 'XM', '250', 'den', '20', '550','600','CC01'),
('MH08', 'DYLAN', 'XM', '250', 'trang', '15', '550','600','CC01'),
('MH09', 'CAMRY', 'OTO', '1500', 'ghi bac', '30', '700','750','CC04'),
('MH10', 'CAMRY', 'OTO', '1500', 'den', '30', '900','950','CC04'),
('MH11', 'MESCEDES', 'OTO', '800', 'den', '20', '890','940','CC03'),
('MH12', 'MESCEDES', 'OTO', '800', 'trang', '100', '5','7','CC03'),
('MH13', 'LAND CUISER', 'OTO', '2300', 'ghi bac', '20', '220','250','CC04'),
('MH14', 'LAND CUISER', 'OTO', '2300', 'xam bac', '20', '220','250','CC04'),
('MH15', 'LAND CUISER', 'OTO', '2300', 'trang', '30', '335','355','CC04'),
('MH17', 'PEUGIOT', 'XD', '30', null, '100', '5','7','CC06'),
('MH18', 'JOLIE', 'OTO', '1600', null, '20', '35','40','CC05'),
('MH19', 'RANGER', 'OTO', '1500', 'do', '30', '335','440','CC08'),
12


('MH20', 'RANGER', 'OTO', '1500', 'den', '50', '350','400','CC08'),
('MH21', 'EXCURSION', 'OTO', '2000', 'den', '70', '535','540','CC08'),
('MH22', 'EXCURSION', 'OTO', '2000', 'trang', '100', '400','430','CC08'),
('MH23', 'EXCURSION', 'OTO', '2000', 'xam bac', '40', '340','350','CC04'),
('MH24', 'ZACE', 'OTO', '1400', 'do', '90', '350','400','CC04'),
('MH25', 'ZACE', 'OTO', '1400', 'ghi bac', '100', '250','300','CC04')

d. Bảng NHA_CUNG_CAP
go
INSERT INTO MAT_HANG
VALUES
('MH01', 'SPACY', 'XM', '200', 'trang', '100', '35','40','CC01'),
('MH02', 'SPACY', 'XM', '200', 'den', '100', '35','40','CC01'),
('MH03', 'PIAGO', 'XM', null,null, '50', '50','55','CC02'),
('MH04', '@', 'XM', '200', 'trang', '200', '40','45','CC01'),
('MH05', '@', 'XM', '200', 'xanh duong', '150', '40','45','CC01'),
('MH06', 'DYLAN', 'XM', '250', 'do', '110', '60','70','CC01'),
('MH07', 'DYLAN', 'XM', '250', 'den', '20', '550','600','CC01'),
('MH08', 'DYLAN', 'XM', '250', 'trang', '15', '550','600','CC01'),
('MH09', 'CAMRY', 'OTO', '1500', 'ghi bac', '30', '700','750','CC04'),
13


('MH10', 'CAMRY', 'OTO', '1500', 'den', '30', '900','950','CC04'),
('MH11', 'MESCEDES', 'OTO', '800', 'den', '20', '890','940','CC03'),
('MH12', 'MESCEDES', 'OTO', '800', 'trang', '100', '5','7','CC03'),
('MH13', 'LAND CUISER', 'OTO', '2300', 'ghi bac', '20', '220','250','CC04'),
('MH14', 'LAND CUISER', 'OTO', '2300', 'xam bac', '20', '220','250','CC04'),
('MH15', 'LAND CUISER', 'OTO', '2300', 'trang', '30', '335','355','CC04'),
('MH17', 'PEUGIOT', 'XD', '30', null, '100', '5','7','CC06'),
('MH18', 'JOLIE', 'OTO', '1600', null, '20', '35','40','CC05'),
('MH19', 'RANGER', 'OTO', '1500', 'do', '30', '335','440','CC08'),
('MH20', 'RANGER', 'OTO', '1500', 'den', '50', '350','400','CC08'),
('MH21', 'EXCURSION', 'OTO', '2000', 'den', '70', '535','540','CC08'),
('MH22', 'EXCURSION', 'OTO', '2000', 'trang', '100', '400','430','CC08'),
('MH23', 'EXCURSION', 'OTO', '2000', 'xam bac', '40', '340','350','CC04'),
('MH24', 'ZACE', 'OTO', '1400', 'do', '90', '350','400','CC04'),

('MH25', 'ZACE', 'OTO', '1400', 'ghi bac', '100', '250','300','CC04')

e. Bảng DON_HANG
go
INSERT INTO DON_HANG
14


VALUES
('DH03001' ,'10/06/2003', 'KH02','CH01'),
('DH03002' ,'06/07/2003', 'KH09','CH04'),
('DH04001' ,'03/02/2004', 'KH01','CH01'),
('DH04002' ,'05/02/2004', 'KH03','CH01'),
('DH04003' ,'06/06/2004', 'KH08','CH07'),
('DH05001' ,'06/06/2005', 'KH07','CH03'),
('DH05002' ,'06/06/2005', 'KH06','CH02'),
('DH05003' ,'06/06/2005', 'KH03','CH01'),
('DH05004' ,'06/06/2005', 'KH01','CH02'),
('DH05005' ,'06/06/2005', 'KH08','CH01'),
('DH05006' ,'06/07/2005', 'KH05','CH04'),
('DH05007' ,'06/07/2005', 'KH04','CH01'),
('DH05008' ,'06/08/2005', 'KH03','CH02'),
('DH05009' ,'06/08/2005', 'KH10','CH01'),
('DH05010' ,'06/08/2005', 'KH01','CH01'),
('DH05011' ,'06/09/2005', 'KH12','CH01'),
('DH05012' ,'06/10/2005', 'KH05','CH04')

15



f. Bảng CHI_TIET_DH
go
INSERT INTO CHI_TIET_DH
VALUES
('DH05001' ,'MH04', '1','140','06/06/2005'),
('DH05002' ,'MH11', '2','2','06/06/2005'),
('DH05002' ,'MH14', '3','5','06/06/2005'),
('DH05003' ,'MH02', '1','230','06/06/2005'),
('DH05003' ,'MH03', '2','30','06/06/2005'),
('DH05003' ,'MH13', '5','4','06/06/2005'),
('DH05003' ,'MH14', '1','5','06/06/2005'),
('DH05003' ,'MH15', '1','5','06/06/2005'),
('DH05004' ,'MH05', '8','4','06/10/2005'),
('DH05004' ,'MH12', '1','149','06/10/2005'),
('DH05004' ,'MH13', '1','5','06/10/2005'),
('DH05004' ,'MH15', '10','4','06/10/2005')
g. Bảng GIAO_HANG
go
INSERT INTO GIAO_HANG
16


VALUES
('GH05001' ,'06/06/2005', 'KH07','CH03'),
('GH05002' ,'06/06/2005', 'KH06','CH12'),
('GH05003' ,'06/06/2005', 'KH13','CH01'),
('GH05004' ,'06/06/2005', 'KH08','CH11')
h. Bảng CHI_TIET_DH
go
INSERT INTO CHI_TIET_GH

VALUES
('GH05001' ,'MH04', '1','DH05001'),
('GH05002' ,'MH11', '2','DH05002'),
('GH05002' ,'MH14', '3','DH05002'),
('GH05003' ,'MH02', '1','DH05003'),
('GH05003' ,'MH04', '2','DH05003')
4. Đặt 20 câu truy vấn
1. Lấy ra Ma_KH, Ho_Dem_KH và Ten_KH của các khách hàng trong bảng
KHACH_HANG:
SELECT Ma_KH, Ho_Dem_KH, Ten_KH FROM KHACH_HANG
2. Tìm đơn hàng năm 2003 trong bảng DON_HANG:
17


SELECT *FROM DON_HANG
WHERE YEAR (Ngay_Lap_DH) ='2003'
3. Tìm khách hàng có địa chỉ tại Hà Nội trong bảng KHACH_HANG:
SELECT *FROM KHACH_HANG
WHERE Dia_Chi_KH='Ha Noi
4. Tìm đơn hàng trên 17 năm trong bảng DON_HANG:
SELECT * FROM DON_HANG
WHERE (YEAR(GETDATE())-YEAR (Ngay_Lap_DH)>17)
5. Đưa ra danh sách các loại xe máy màu đỏ hoặc các loại xe máy có giá bán
nằm trong khoảng từ 25 đến 35 triệu đồng:
SELECT *FROM MAT_HANG
WHERE Loai_MH ='XM' and Mau_MH ='do' or
Gia_Ban_MH between 25 and 35
6.Tìm mặt hàng có giá mua từ 60 đến 300 :
SELECT *FROM MAT_HANG
WHERE Gia_Mua_MH BETWEEN 60 and 300

7. Tìm nhân viên có số ngày làm việc trên 28 :
SELECT *FROM NHANVIEN
WHERE songay>28
18


8. Tìm cửa hàng có địa chỉ tại Hà Nội:
SELECT*FROM CUA_HANG
WHERE Dia_Chi_CH like ‘%Ha Noi%’
9. Tìm cửa hàng có địa chỉ không phải ở Hà Nội:
SELECT*FROM CUA_HANG
WHERE Dia_Chi_CH not like ‘%Ha Noi%’
10. Đếm số màu khác nhau cuả các mặt hàng có trong kho:
SELECT COUNT(distinct Mau_MH) FROM MAT_HANG
11. Thơng tin mặt hàng chưa có màu:
Select *from MAT_HANG
where Mau_MH is null
12. Lấy tất cả mã khóa từ MAT_HANG
SELECT DISTINCT MA_MH
FROM MAT_HANG
13. Lấy tất cả dữ liệu trong MAT_HANG
SELECT *FROM MAT_HANG
14. Lấy ra giữ liệu của 5 record đầu tiên trong MAT_HANG:
19


SELECT top 5* FROM MAT_HANG
15. Lấy tất cả dữ liệu của 5% đầu tiên trong MAT_HANG:
SELECT top 5 Percent * from MAT_HANG
16. Lấy ra Mã khách hàng, tên khách hàng trong bảng KHACH_HANG

Select Ma_KH, Ten_KH
from KHACH_HANG
17. Lấy ra mã khách hàng, tên khách hàng sống ở Hai Duong trong bảng
KHACH_HANG:
Select Ma_KH,Ten_KH from KHACH_HANG
where Dia_Chi_CH = 'Hai Duong
18. Lấy ra các mặt hàng có giá bán >300
Select *from MAT_HANG where Gia_Ban_MH>300

19. Lấy ra danh sách khách hàng có Họ đệm bắt đầu là “Nguyen"
Select *from KHACH_HANG
where Ho_Dem_CH like 'Nguyen%'
20. In ra các loại mặt hàng trong bảng MAT_HANG:
Select distinct loai_MH from MAT_HANG

20



×