1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án cá nhân cơ sở dữ liệu đề tài quản lý bán hàng

17 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Mỗi mặt hàng có một mã hàng mah duy nhất, có thông tin như tên hàng tenh và đơn vị tính dvt.. Mỗi hóa đơn có một số hóa đơn mahd duy nhất, ngày lập hóa đơn ngayhd và mỗi hóa đơn liên kết

Trang 1

1 ĐẠI HỌC DUY TÂN TRƯỜNG KHOA HỌC MÁY TÍNH KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

MỤC LỤC:

1 Phân tích yêu cầu và thiết kế mô hình cơ sở dữ liệu……… 2

1.1 Mô tả bài toán……… 2

1 PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ MÔ HÌNH CƠ SỞ DỮ LIỆU

Mỗi khách hàng có một mã khách hàng (makh) duy nhất, có các thông tin như họ tên (hoten), giới tính (phai), và số điện thoại (sdt) Mỗi mặt hàng có một mã hàng (mah) duy nhất, có thông tin như tên hàng (tenh) và đơn vị tính (dvt) Mỗi hóa đơn có một số hóa đơn (mahd) duy nhất, ngày lập hóa đơn (ngayhd) và mỗi hóa đơn liên kết với một khách hàng thông qua mã khách hàng (makh) Mỗi chi tiết hóa đơn có thông tin về số lượng (soluong) và đơn giá (dongia), mỗi chi tiết hóa đơn liên quan đến một hóa đơn thông qua số hóa đơn (mahd) và mỗi chi tiết hóa đơn liên quan đến một mặt hàng thông qua mã hàng (mah).

Trang 4

2 BIỂU THỨC ĐẠI SỐ QUAN HỆ:

Trang 5

σngayhd≥′2023−01−01′ ngayhd≤′2023−12−31′(∧ Hoadon) 2.4 Lấy những mặt hàng có sl bán>=20:

2.5 Lấy những mặt hàng có trong hóa đơn 1: πmahd,mah,tenh(Chitiet⋈Chitiet.mah=Hang.mahHang)⋈mahd=′1′{1} 2.6 Lấy những mặt hàng mà khách hàng 1 đã mua:

Hoadon⋈Hoadon.mahd=Chitiet.mahdChitiet⋈Chitiet.mah=Hang.mahHang)⋈makh=′1′{1} 2.7 Lấy những hóa đơn mua với sl>50:

πmah,mahd,tenh,soluong(Chitiet⋈Chitiet.mah=Hang.mahHang)⋈soluong>50σsoluong>50(Chitiet) 2.8 Lấy những mặt hàng chưa ai mua:

πmah,tenh(Hang)−πmah,tenh(Chitiet⋈Chitiet.mah=Hang.mahHang) 3 CÂU LỆNH SQL:

Tạo cơ sở dữ liệu 3.1 Tạo bảng khachhang

CREATE TABLE khachhang ( makh NUMBER PRIMARY KEY,

Trang 6

CREATE TABLE hang (

mah NUMBER PRIMARY KEY, tenh TEXT,

dvt TEXT );

3.3 Tạo bảng hoadon CREATE TABLE hoadon (

mahd NUMBER PRIMARY KEY,

Trang 7

PRIMARY KEY (mahd, mah),

FOREIGN KEY (mahd) REFERENCES hoadon(mahd), FOREIGN KEY (mah) REFERENCES hang(mah) );

3.5 Nhập dữ liệu cho mỗi bảng Khachhang, hoadon, hang: mõi bảng 5 dòng

3.6 Nhập dữ liệu cho bảng chitiet: 10 dòng

*Thực hành truy vấn dữ liệu theo yêu cầu sau: 7

Trang 8

Truy vấn từ 1 bảng

3.7 Lấy những khách hàng phái Nữ: makh, hoten, phai, sdt SELECT makh, hoten, phai, sdt

FROM khachhang WHERE phai = 'Nữ';

3.8 Lấy những mặt hàng có dvt là “Kg” :mah, tenh, dvt SELECT mah, tenh, dvt

FROM hang WHERE dvt = 'Kg';

3.9 Lấy những hóa đơn trong năm 2023: mahd, nam, makh SELECT mahd, ngayhd, makh

FROM Hoadon

WHERE YEAR(ngayhd) = 2023;

Trang 9

3.10 Lấy những mặt hàng có số lượng từ 10 đến 20 Sắp xếp tăng dần theo số lượng: mahd, mah, soluong, dongia

SELECT mahd, mah, soluong, dongia FROM chitiet

WHERE soluong BETWEEN 10 AND 20 ORDER BY soluong ;

3.11 Lấy 2 mặt hàng có đơn giá cao nhất mah, soluong, dongia SELECT TOP 2 mah, soluong, dongia

SELECT a.makh, mahd, ngayhd, hoten FROM KhachHang a,HoaDon b

WHERE a.makh=b.makh and hoten like"Phạm*"

3.13 Liệt kê những mặt hàng Bia có đơn giá >5000 Mah, tenh, soluong, dongia SELECT ct.mah, h.tenh, ct.soluong, ct.dongia

FROM chitiet ct, hang h

WHERE ct.mah = h.mah AND h.tenh LIKE 'Bia' AND ct.dongia > 5000; 9

Trang 10

3.14 Liệt kê những hóa đơn trong tháng 10 Mahd, thang, mah, soluong SELECT hd.mahd, MONTH(hd.ngayhd) AS thang, ct.mah, ct.soluong FROM hoadon hd, chitiet ct

WHERE hd.mahd = ct.mahd AND MONTH(hd.ngayhd) = 10;

3.15 Liệt kê những khách hàng mua “Bia”: Makh, mah, tenh, soluong SELECT kh.makh, ct.mah, h.tenh, ct.soluong

FROM khachhang kh, hoadon hd, chitiet ct, hang h

WHERE kh.makh = hd.makh AND hd.mahd = ct.mahd AND ct.mah = h.mah AND h.tenh = 'Bia';

3.16 Liệt kê những khách phái nam có mua “Bia” Makh, hoten, phai, mah, tenh, soluong

SELECT kh.makh, kh.hoten, kh.phai, ct.mah, h.tenh, ct.soluong FROM khachhang kh, hoadon hd, chitiet ct, hang h

WHERE kh.makh = hd.makh AND hd.mahd = ct.mahd AND ct.mah = h.mah AND kh.phai = 'Nam' AND h.tenh = 'Bia';

Trang 11

Truy vấn sử dụng hàm 3.17 Đếm số hóa đơn của mặt hàng “Bia”

SELECT COUNT(DISTINCT hd.mahd) AS SoHoaDon FROM Hoadon hd, Chitiet ct, Hang h

WHERE hd.mahd = ct.mahd AND ct.mah = h.mah AND h.tenh = 'Bia';

3.18 Tính số lượng thấp nhất của mặt hàng “Bia” SELECT MIN(ct.soluong) AS SoLuongThapNhat FROM Hang h, Chitiet ct

WHERE h.mah=ct.mah AND h.tenh = 'Bia';

3.19 Tính tổng tiền đã bán được của mặt hàng “Bia” SELECT SUM(ct.dongia*ct.soluong) AS TongTienBan FROM Chitiet ct, Hang h

WHERE ct.mah = h.mah AND h.tenh = 'Bia';

3.20 Tính đơn giá thấp nhất của mặt hàng “Bia” SELECT MIN(ct.dongia) AS DonGiaThapNhat FROM hang h, chitiet ct

WHERE h.mah=ct.mah AND h.tenh = 'Bia'; 11

Trang 12

3.21 Tính số lượng trung bình của hóa đơn 2

SELECT AVG(ct.soluong) AS SoLuongTrungBinh FROM Chitiet ct

WHERE ct.mahd = 2;

Truy vấn gộp nhóm

3.22 Tính tổng số lượng đã bán của từng mặt hàng: mah, tenh, tong_sl SELECT h.mah, h.tenh, SUM(ct.soluong) AS tong_sl

FROM Hang h, Chitiet ct WHERE h.mah = ct.mah GROUP BY h.mah, h.tenh;

3.23 Tính tổng tiền của mỗi hóa đơn: Mahd, ngayhd, makh, tong_tien SELECT hd.mahd, hd.ngayhd, hd.makh, SUM(ct soluong*ct.dongia) AS tong_tien

FROM Hoadon hd, Chitiet ct WHERE hd.mahd = ct.mahd

GROUP BY hd.mahd, hd.ngayhd, hd.makh;

Trang 13

3.24 Lấy khách hàng mua với tổng tiền >200.000 Makh, hoten, tongtien SELECT hd.makh, kh.hoten, SUM(ct.soluong*ct.dongia) AS tongtien FROM Hoadon hd, Chitiet ct, Khachhang kh

WHERE hd.makh = kh.makh AND hd.mahd = ct.mahd GROUP BY hd.makh, kh.hoten

HAVING SUM(ct.soluong*ct.dongia) > 200000;

3.25 Lấy mặt hàng bán với trung bình đơn giá >10.000: Mah, tenh, TB_dongia SELECT h.mah, h.tenh, AVG(ct.dongia) AS TB_dongia

FROM Hang h, Chitiet ct WHERE h.mah = ct.mah GROUP BY h.mah, h.tenh HAVING AVG(ct.dongia) > 10000;

13

Trang 14

3.26 Lấy những mặt hàng được mua trên 2 lần: Mah, tenh, so_lan SELECT h.mah, h.tenh, COUNT(ct.mahd) AS so_lan FROM Hang h, Chitiet ct

WHERE h.mah = ct.mah GROUP BY h.mah, h.tenh HAVING COUNT(ct.mahd) > 2;

Truy vấn lồng nhau và khác

3.27 Lấy mặt hàng chưa có người mua: Mah, tenh, dvt SELECT h.mah, h.tenh, h.dvt

FROM Hang h

WHERE h.mah NOT IN (SELECT mah FROM Chitiet);

3.28 Lấy hóa đơn có tổng tiền cao nhất

SELECT SUM(Chitiet.thanhtien) AS TongThanhTien FROM Chitiet

WHERE Chitiet.mahd IN (SELECT Hoadon.mahd FROM Hoadon);

Trang 15

3.29 Lấy khách hàng mua cả vở kẻ ngang lẫn sách giáo khoa SELECT kh.makh, kh.hoten

FROM Khachhang kh, Hoadon hd, Chitiet ct1, Chitiet ct2, Hang h1, Hang h2 WHERE kh.makh = hd.makh

AND hd.mahd = ct1.mahd AND hd.mahd = ct2.mahd AND ct1.mah = h1.mah AND ct2.mah = h2.mah AND h1.tenh = 'Vở kẻ ngang' AND h2.tenh = 'Sách giáo khoa';

3.30 Lấy hóa đơn mua tất cả cả món hàng SELECT hd.mahd, hd.ngayhd, hd.makh

Trang 17

DELETE FROM Hang

WHERE mah NOT IN (SELECT DISTINCT mah FROM Chitiet);

17

Ngày đăng: 25/04/2024, 16:25

w