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

Thông tin cơ bản

Tiêu đề Quản Lý Bán Hàng
Tác giả Lê Phụ Tuân
Người hướng dẫn Trần Huệ Chi
Trường học Đại Học Duy Tân
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Cá Nhân
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 17
Dung lượng 281,87 KB

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

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

ĐỒ ÁN CÁ NHÂN MÔN HỌC: CƠ SỞ DỮ LIỆU

ĐỀ TÀI: QUẢN LÝ BÁN HÀNG

GVHD

Lớp

Họ và tên

Mã SV

Đà Nẵng, 19/11/2023

: Lê Phụ Tuân

: 2811123105 : IS 301 O : Trần Huệ Chi

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.2 Mô hình thực thể liên kết……… … 3

1.3 Mô hình quan hệ……… 3

1.4 Dữ liệu mỗi bảng……… 3

2 Biểu thức đại số quan hệ………4

3 Câu lệnh SQL5………5

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

Truy vấn từ 1 bảng………8

Truy vấn từ nhiều bảng………9

Truy vấn sử dụng hàm………11

Truy vấn gộp nhóm……….…………12

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

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 3

1.3 Mô hình quan hệ:

3

Hóa đơn

Khách hàng

sdt

phai

mahd

tenh

soluong dongia

Trang 4

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

2.1 Lập danh sách các khách hàng nữ:

σphai=′Nữ′(Khachhang)

2.2 Lập danh sách những mặt hàng có dvt là kg:

σdvt=′kg′(Hang)

2.3 Lấy những hóa đơn năm 2023:

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:

σsoluong≥20(Chitiet)

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:

πmakh,mahd,mah,tenh(Khachhang⋈Khachhang.makh=Hoadon.makh

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,

hoten TEXT,

phai TEXT,

sdt TEXT

);

3.2 Tạo bảng hang

5

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,

ngayhd DATE,

makh NUMBER,

FOREIGN KEY (makh) REFERENCES khachhang(makh) );

3.4 Tạo bảng chitiet

CREATE TABLE chitiet (

mahd NUMBER,

mah NUMBER,

soluong NUMBER,

dongia NUMBER,

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

FROM chitiet

ORDER BY dongia DESC;

Truy vấn từ nhiều bảng

3.12 Liệt kê những hóa đơn của khách hàng họ “Phạm”: mahd, ngayhd, makh, hoten

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

FROM Hoadon hd

WHERE NOT EXISTS (

SELECT h.mah

FROM Hang h

WHERE NOT EXISTS (

SELECT *

15

Trang 16

FROM Chitiet ct

WHERE ct.mahd = hd.mahd AND ct.mah = h.mah )

);

3.31 Cập nhật đơn giá lên 25% cho mặt hàng “Bia” UPDATE Chitiet

SET dongia = dongia * 1.25

WHERE mah = 4;

3.32 Xóa mặt hàng không có người mua

Trang 17

DELETE FROM Hang

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

17

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

w