1.1Một thư viện tổ chức việc cho mượn sách như sau:Mỗi quyển sách được đánh một mã sách MASH dùng để phân biệt với các quyển sách khác giả sử nếu một tác phẩm có nhiều bản giống nhau hoặ
Trang 21.1Một thư viện tổ chức việc cho mượn sách như sau:
Mỗi quyển sách được đánh một mã sách (MASH) dùng để phân biệt với các quyển sách khác (giả sử nếu một tác phẩm có nhiều bản giống nhau hoặc có nhiều tập thì cũng xem là có mã sách khác nhau), mỗi mã sách xác định các thông tin khác như : tên sách (TENSACH), tên tác giả
(TACGIA), nhà xuất bản (NHAXB), năm xuất bản (NAMXB).
1.2Mỗi đọc giả được thư viên cấp cho một thẻ thư viện, trong đó có ghi rõ mã đọc giả(MAĐG), cùng với các thông tin khác như : họ tên (HOTEN), ngày sinh (NGAYSINH), địa chỉ(ĐIACHI), nghề nghiệp(NGHENGHIEP) Cứ mỗi lượt mượn sách, đọc giả phải ghi các quyển sách cần mượn vào một phiếu mượn,mỗi phiếu mượn có một số phiếu mượn (SOPM) duy nhất, mỗi phiếu mượn xác định các thông tin như: ngày mượn (NGAYMUON), đọc giả mượn, các quyển sách mượn và ngày trả (NGAYTRA) Các quyển sách trong cùng một phiếu mượn không nhất thiết phải trả trong trong cùng một ngày
II.Vẽmôhìnhthựcthểliênkết:
Trang 41.Liệt kê những độc giả có nghề nghiệp là sinh viên ᵟNGHENGHIEP=”Sinh viên”(THETHUVIEN)
2 Liệt kê những quyển sách của tác giả “Nam Cao” ᵟTACGIA=”Nam Cao”(SACH)
3 Liệt kê những phiếu mượn trong tháng 8 Mapm, madg, ngaymuon ᵟMONTH(NGAYMUON)=8(PHIEUMUON)
4 Liệt kê những độc giả có mượn sách “số đỏ” Mash, tensach, madg πMASH,TENSACH,MADG TENSACH=”Số(ᵟ
5 Liệt kê những quyển sách xuất bản năm 2000 Mash, tensach, namxb πMASH,TENSACH,NAMXB NAMXB=2000(ᵟ (SACH))
6 Lập danh sách những quyển sách chưa trả Masach, tensach, ngaymuon, ngaytra (dieu kien ngaytra is null)
πMASH,TENSACH,NGAYMUON,NGAYTRA NGAYTRA=NULL(ᵟ =(PHIEUMUON*MUONSAC H*SACH))
7 Lập danh sách những quyển sách chưa ai mượn πMASH(SACH) – πMASH(MUONSACH)
8 Lập danh sách những độc giả mượn sách “số đỏ” và “ không gia đình”
Trang 5πMADG TENSACH=”Số đỏ”(ᵟ (PHIEUMUON*MUONSACH*SACH))U
πMADG TENSACH=”Không gia đình”(ᵟ (PHIEUMUON*MUONSACH*SACH)) Phần3:CâulệnhSQL:
Tạo CSDL QL bán hàng
Khachhang(makh, hoten, phai, sdt) Hang(mah, tenh, dvt)
Hoadon(mahd, ngayhd, makh) Chitiet(mahd, mah, soluong, dongia)
Thực hành phần SQL cho bài thực hành cá nhân:
Trang 66 Nhập dữ liệu cho bảng chitiet: 10 dòng
Trang 7(nhập bằng tay không cần viết câu lệnh) Thực hành truy vấn dữ liệu theo yêu cầu sau: Truyvấntừ1bảng
7 Lấy những khách hàng phái Nữ: makh, hoten, phai, sdt Select * from khachhang where phai= 0
8 Lấy những mặt hàng có dvt là “kg” (hoặc dvt khác): mah, tenh, dvt Select * from hang where dvt=”kg”
Trang 89 Lấy những hóa đơn trong năm 2023: mahd, nam, makh Select mahd,year(ngayhd) as nam,makh from hoadon where year(ngayhd)=2023
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 * from chitiet where soluong between 10 and 20 order by soluong
11 ASC 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
12 Liệt kê những hóa đơn của khách họ Lê (hoặc họ khác): makh, hoten, mahd, ngayhd
Trang 9Select a.MAKH, HOTEN, MaHD, NgayHD from KHACHHANG a, HOADON b where a.MAKH = b.MAKH and HOTEN like 'Lê*'
13 Liệt kê những mặt hàng Bia có đơn giá >400000 Mah, tenh, soluong, dongia
Select a.MaH, TenH, SoLuong, DONGIA from hang a, chitiet b where a.MaH = b.MaH and DONGIA > 400000 and TenH like 'Bia*'
14 Liệt kê những hóa đơn trong tháng 10 Mahd, thang, mah, soluong
Select a.MaHD, MaH, SoLuong, month(NgayHD) as thang from hoadon a, chitiet b where a.MaHD = b.MaHD and month(NgayHD) = 10
15 Liệt kê những khách hàng mua “Snack oishi”: Makh, mah, tenh, soluong
Select a.MAKH, b.MaH, TenH, SoLuong from KHACHHANG a, HANG b, CHITIET c, HOADON d where a.MAKH = d.MAKH and b.MaH = c.MaH and d.MaHD=c.MaHD and TenH = 'Snack oishi'
16 Liệt kê những khách phái nam có mua “Bia larue” Makh, hoten, phai, mah, tenh, soluong
Trang 10Select a.MAKH, HOTEN, PHAI, b.MaH, TenH, SoLuong from KHACHHANG a, HANG b, CHITIET c , HOADON d where a.MAKH = d.MAKH and b.MaH = c.MaH and d.MaHD=c.MaHD and PHAI = yes and TenH='Bia larue'
17 Đếm số hóa đơn của kh01
Select COUNT(*) as SoLuongHD from HOADON where makh = '001'
18 Tính số lượng cao nhất của mặt hàng “Bia larue”
Select max(SoLuong) as SoLuongMax from CHITIET a, HANG b where a.MaH = b.MaH and TenH = 'Bia Larue'
19 Tính tổng tiền đã bán được trong năm 2023
Select sum(SoLuong * DONGIA) as TongTien from CHITIET a, HOADON b where a.MaHD = b.MaHD and year(NgayHD) = 2023
20 Tính đơn giá thấp nhất của mặt hàng 01A
Select min(DONGIA) as DonGiaMin from CHITIET where MaH = '01A'
Trang 1121 Tính số lượng trung bình của hóa đơn 02
Select avg(SoLuong) as SLTB from CHITIET where MaHD = '02'
22 Tính tổng số lượng đã bán của từng mặt hàng: mah, tenh, tong_sl
SELECT c.MaH, h.TenH, SUM(c.SoLuong) AS tong_sl FROM CHITIET c, HANG h where c.MaH = h.MaH GROUP BY c.MaH, h.TenH
23 Tính tổng tiền của mỗi hóa đơn: Mahd, ngayhd, makh, tong_tien SELECT h.MaHD, NgayHD, SUM(c.SoLuong*c.DONGIA) AS tong_tien FROM CHITIET c, HOADON h WHERE c.MaHD = h.MaHD GROUP BY h.MaHD,h.NgayHD
Trang 1224 Lấy khách hàng mua với tổng tiền >1.000.000 Makh, hoten, tongtien
SELECT a.MAKH,HOTEN, SUM(c.SoLuong*c.DONGIA) AS tong_tien FROM KHACHHANG a, HOADON b, CHITIET c where a.MAKH = b.MAKH and b.MaHD = c.MaHD GROUP BY a.MAKH, a.HOTEN HAVING SUM(c.SoLuong * c.DONGIA) > 1000000
25 Lấy mặt hàng bán với trung bình đơn giá >10.000: Mah, tenh, TB_dongia
Select a.MaH, TenH, avg(DONGIA) as TB_dongia from CHITIET a, HANG b where a.MaH = b.MaH group by a.MaH, TenH having avg(DONGIA) > 10000
26 Lấy những mặt hàng được mua 2 lần trở lên: Mah, tenh, so_lan Select b.mah, tenh, count(a.mah) as so_lan from chitiet a, hang b where a.mah = b.mah group by b.mah, tenh having count(a.mah) >= 2
27 Lấy mặt hàng chưa có người mua: Mah, tenh, dvt
Trang 13Select * from hang where mah not in (select mah from chitiet)
28 Lấy hóa đơn có tổng tiền cao nhất
Select mahd , sum(soluong*dongia) as tong from chitiet Group by mahd having sum(soluong *dongia) >= all (select sum
(soluong*dongia) From chitiet group by mahd)
29 Lấy khách hàng mua cả bia lẫn rượu
Select makh from hoadon a, hang b, chitiet c where a.mahd = c.mahd and b.mah = c.mah and tenh like 'Bia*'
Select makh from hoadon a, hang b, chitiet c where a.mahd = c.mahd and b.mah = c.mah and tenh like 'Rượu*'
30 Lấy hóa đơn mua tất cả cả món hàng
Select MaHD, count(MaH) as SOMON from chitiet Group by MaHD having count(MaH)= (Select count(MaH) from hang)
31 Cập nhật đơn giá lên 10% cho mặt hàng H01
Update chitiet set dongia = dongia * 1.1 where mah = '02A'
Trang 1432 Xóa mặt hàng không có người mua
Delete from hang a, chitiet b where a.mah = b.mah having count(mahd) <= 0