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 (534.61 KB, 14 trang )
<span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">
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ặ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:
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">1.Liệt kê những độc giả có nghề nghiệp là sinh viên ᵟ<small>NGHENGHIEP=”Sinh viên”</small>(THETHUVIEN)
2. Liệt kê những quyển sách của tác giả “Nam Cao” ᵟ<small>TACGIA=”Nam Cao”</small>(SACH)
3. Liệt kê những phiếu mượn trong tháng 8. Mapm, madg, ngaymuon ᵟ<small>MONTH(NGAYMUON)=8</small>(PHIEUMUON)
4. Liệt kê những độc giả có mượn sách “số đỏ”. Mash, tensach, madg π<small>MASH,TENSACH,MADG TENSACH=”Số</small>(ᵟ
5. Liệt kê những quyển sách xuất bản năm 2000. Mash, tensach, namxb π<small>MASH,TENSACH,NAMXB NAMXB=2000</small>(ᵟ (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)
π<small>MASH,TENSACH,NGAYMUON,NGAYTRA NGAYTRA=NULL</small>(ᵟ =(PHIEUMUON*MUONSAC H*SACH))
7. Lập danh sách những quyển sách chưa ai mượn π<small>MASH</small>(SACH) – π<small>MASH</small>(MUONSACH)
8. Lập danh sách những độc giả mượn sách “số đỏ” và “ khơng gia đình”
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">π<small>MADG TENSACH=”Số đỏ”</small>(ᵟ (PHIEUMUON*MUONSACH*SACH))
π<sub>MADG TENSACH=”Khơng gia đình”</sub>(ᵟ (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:
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">6. Nhập dữ liệu cho bảng chitiet: 10 dịng
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="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”
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">9. 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
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">Select 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
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Select 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'
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">21. 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
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">24. 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
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">Select * 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'
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">32. 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
</div>