Tải bản đầy đủ (.docx) (65 trang)

Tổ chức và xây dựng cơ sở dữ liệu bán hàng

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 (1.54 MB, 65 trang )

Đề tài: Tổ chức và xây dựng CSDL bán hàng
Mô tả bài toán
Quản lý CSDL bán hàng gồm có :
• Thông tin về nhân viên bao gồm: Mã nhân viên, Tên nhân viên, Địa chỉ, SĐT,
Giới tính, Ngày sinh.
• Mỗi hàng hóa sẽ có mã hàng hóa khác nhau, thông tin về hàng hóa được lưu trữ
bao gồm: Mã hàng hóa, Tên hàng hóa, Giá nhập, Số lượng 1, Mã nhà cung
cấp. Trong hóa đơn có một hoặc nhiều hàng hóa.
• Khi khách hàng đến mua quần áo, những khách hàng mua được hàng sẽ lưu lại
thông tin bao gồm: Mã khách hàng, Tên khách hàng, Địa chỉ, Số điện thoạị.
• Nhân viên bán hàng sẽ lập hóa đơn khi khách hàng thực hiện thanh toán, hóa đơn
bao gồm những thông tin: Mã hóa đơn, Mã nhân viên, Mã khách hàng, Mã
hàng hóa, Giá bán, Số lượng 2, Thành tiền, Ngày lập. Một nhân viên có thể
xuất một hoặc nhiều hóa đơn và một hóa đơn chỉ thuộc về một nhân viên. Một
khách hàng có thể nhận một hoặc nhiều hóa đơn nhưng một hóa đơn chỉ thuộc về
một khách hàng.
• Thông tin bắt buộc về nhà cung cấp bao gồm: Mã nhà cung cấp, Tên nhà cung
cấp, Địa chỉ. Một nhà cung cấp có thể cung cấp một hoặc nhiều hàng hóa và một
hàng hóa chỉ thuộc về một nhà cung cấp.
1. Tạo liên kết giữa các bảng.
create table NhanVien
(
MaNV nchar(10) primary key,
TenNV nvarchar(50)not null,
DiaChi nvarchar(100)not null,
DienThoai int not null,
GioiTinh nchar(3)not null,
NgaySinh datetime not null,
)
create table KhachHang
(


MaKH nchar(10)primary key,
TenKH nvarchar(50)not null,
MaLoaiKH nchar(10)not null,
DiaChi nvarchar(100)not null,
DienThoai int not null,
)
create table NhaCC
(
MaNCC nchar(10)primary key,
TenNCC nvarchar(50)not null,
DiaChi nvarchar(100)not null,
)
create table HangHoa
(
MaHH nchar(10)primary key,
TenHH nvarchar(50)not null,
GiaNhap money not null,
SoLuong1 int constraint ck_SoLuong1 check(SoLuong1>=0),
MaNCC nchar(10)constraint fk_NCC_HH foreign key references NhaCC(MaNCC),
)
create table HoaDon
(
MaHD nchar(10)primary key,
GiaBan money not null,
SoLuong2 int constraint ck_SoLuong2 check(SoLuong2>=0),
ThanhTien money not null,
NgayLap datetime not null,
MaKH nchar(10)constraint fk_KH_HD foreign key references KhachHang(MaKH),
MaNV nchar(10)constraint fk_NV_HD foreign key references NhanVien(MaNV),
MaHH nchar(10)constraint fk_HH_HD foreign key references HangHoa(MaHH),

)
 Bảng Nhà cung cấp:
 Bảng hàng hóa:
 Bảng khách hàng:
 Bảng nhân viên:
 Bảng hóa đơn:
2. Câu lệnh select.
select N.MaNCC, N.TenNCC, H.TenHH, H.SoLuong1
from NhaCC N inner join HangHoa H on N.MaNCC=H.MaNCC
where H.SoLuong1>80
select N.MaNCC, N.TenNCC, H.TenHH, H.SoLuong1
from NhaCC N inner join HangHoa H on N.MaNCC=H.MaNCC
select N.MaNV, N.TenNV, N.GioiTinh
from NhanVien N
where N.GioiTinh='nam'
select N.MaNV, N.TenNV, N.GioiTinh, N.DiaChi
from NhanVien N
where N.Diachi='ha noi'
select count(K.MaKH) as soluongkhach, sum(HD.ThanhTien) tongtienmuahang
from KhachHang K inner join HoaDon HD on K.MaKH=HD.MaKH
where K.DiaChi='vinh phuc'
select N.TenNCC,H.TenHH
from NhaCC N full outer join HangHoa H on N.MaNCC=H.MaNCC
where N.TenNCC='cocacola'
select K.TenKH,HD.SoLuong2,K.DiaChi
from KhachHang K inner join HoaDon HD on K.MaKH=HD.MaKH
where HD.SoLuong2>9
(select K.MaKH
from KhachHang K inner join HoaDon HD on K.MaKH=HD.MaKH

where K.DiaChi='nam dinh')
• Hiển thị khách hàng đã mua hàng với số lượng nhiều hơn 10 sản phẩm và thành
tiền lớn hơn 100.000:
• Đưa ra thồng tin mã nhà cung cấp, tên nhà cung cấp , hàng hóa và giá nhập của
hàng hóa có giá nhập lớn hơn 5 nghìn đồng.
select N.MaNCC, N.TenNCC, H.TenHH, H.GiaNhap
from NhaCC N inner join HangHoa H on N.MaNCC = H.MaNCC
where H.GiaNhap>5.0000
• Chọn nhà cung cấp có địa chỉ ở Hà Nội
select *
from NhaCC
where DiaChi='ha noi'
• Đếm số khách hàng bán buôn có số lượng hàng mua lớn hơn 9 và đưa ra tổng sô
lượng
select count(K.MaKH) as soluongkhach, sum(HD.SoLuong2) as tongsoluong
from KhachHang K inner join HoaDon HD on K.MaKH=HD.MaKH
where K.MaLoaiKH='buon' and HD.SoLuong2> 9
• Đưa ra thông tin mã hàng hóa, tên hàng hóa, giá nhập và tên nhà cung cấp theo số
lượng tăng dần
select MaHH,TenHH,GiaNhap, TenNCC
from HangHoa h inner join NhaCC ncc on h.MaNCC=ncc.MaNCC
order by SoLuong1
• Đếm số khách hàng và tổng tiền thu được ngày 2015/1/6
select count(K.MaKH) as soluongkhach, sum(HD.ThanhTien) as tongtienthuduoc
from KhachHang K inner join HoaDon HD on HD.MaKH=K.MaKH
where NgayLap='1/6/2015'
• Chọn hiển thị các cột “TenNV” và “MaNV” từ bảng NhanVien
Câu lệnh: select TenNV,MaNV from NhanVien
• Hiển thị thông tin hàng hóa bao gồm mã hàng hóa, tên hàng hóa,gia nhap co sắp
xếp theo thứ tự giá nhập tăng dần

Câu lệnh: select MaHH,TenHH,GiaNhap
from HangHoa
order by GiaNhap
• Hiển thị tên khách hàng và địa chỉ khách hàng đã mua sản phẩm có hóa
đơn lập vào ngày 1/7/2015
Câu lệnh: select KhachHang.TenKH, KhachHang.DiaChi, HoaDon.NgayLap
From KhachHang inner join HoaDon on KhachHang.MaKH=HoaDon.MaKH
Where NgayLap= '1/7/2015'
• Hiển thị tên và mã hàng hóa có giá bán > 15.000 và được khách hàng
mua với số lượng <10
Câu lệnh: select HangHoa.MaHH,TenHH
From HangHoa inner join HoaDon on HangHoa.MaHH=HoaDon.MaHH
Where GiaBan >15.000 and SoLuong2< 10
• Cho biết nhà cung cấp cocacola đã cung cấp những mặt hàng nào
Câu lệnh select HangHoa.MaHH,TenHH
From HangHoa inner join NhaCC on HangHoa.MaNCC=NhaCC.MaNCC
Where TenNCC= 'cocacola'
• Cho biết hàng hóa nào có giá nhập lớn nhất
Câu lệnh select MaHH,TenHH
From HangHoa
Where GiaNhap=( select MAX(GiaNhap) from HangHoa)
• Tính tổng thành tiền của mỗi nhóm hàng hóa được bán
Câu lệnh: select MaHH,sum(ThanhTien) from HoaDon
Group by MaHH
• Tính tổng thành tiền của mỗi nhóm hành hóa và hiển thị những mã hàng
hóa có tổng thành tiền >200
Câu lệnh : select MaHH,sum(ThanhTien) from HoaDon
Group by MaHH
Having sum(ThanhTien)>200
• Tìm số lượng hàng hóa nhỏ nhất, lớn nhất và đếm số lượng hàng hóa

của từng loại hàng hóa được mua
câu lệnh: select HoaDon.MaHH, Min(SoLuong2), Max(SoLuong2), count(*)
from HoaDon
group by MaHH

×