MySQL: Practical 9
Cho CSDL lưu trữ thông tin về quản lý sách ở cửa hàng sách Rạng Đông ở Hà Nội gồm ba bảng có cấu trúc như sau:
Sach: Chứa danh sách các quyển sách có trong cửa hàng Rạng Đông
Field |
Description |
---|---|
MaSach |
Mã sách, là Primary key |
TenSach |
Tên sách |
TacGia |
Tác giả |
NhaXB |
Tên nhà xuất bản |
ChuDe |
Chủ đề |
DonGia |
Đơn giá |
TrongKho |
Số lượng còn trong kho |
Ví dụ, bảng Sach có thể chứa các thông tin như sau:
MaSach |
TenSach |
TacGia |
NhaXB |
ChuDe |
DonGia |
TrongKho |
---|---|---|---|---|---|---|
1 |
Hoang hon tren song |
Gia Phong |
Van hoa |
Tinh yeu |
120 |
11 |
2 |
Cay lua nuoc |
Le May |
KHKT |
Khoa hoc |
30 |
24 |
3 |
Tam ly truoc mua thi |
Hai Dang |
Giao duc |
Tam ly |
42 |
32 |
KhachHang: Chứa danh sách khách hàng của cửa hàng
Field |
Description |
---|---|
MaKH |
Mã khách hàng, là Primary key |
TenKH |
Tên khách hàng |
DiaChi |
Địa chỉ kháchhàng |
Quan |
Tên quận hoặc huyện nơi khách hàng cư trú |
DienThoai |
Số điện thoại của kháchàng |
NguoiGT |
Người giới thiệu |
Ví dụ, bảng KhachHang có thể chứa các thông tin như sau:
MaKH |
TenKH |
DiaChi |
Quan |
DienThoai |
NguoiGT |
---|---|---|---|---|---|
1 |
Le Cong |
22 Hang Buom |
Hoan Kiem |
098123654 |
Hoang Kim |
2 |
Van Nghe |
19 Lo Duc |
Hoan Kiem |
|
|
3 |
Tran Thong |
19 Doi Can |
Ba Dinh |
|
|
4 |
Hoang Tin |
38 Linh Nam |
Hoang Mai |
|
|
SachBan: Chứa danh sách các quyển sách đã bán ở cửa hàng Rạng Đông.
Field |
Description |
---|---|
SoHD |
Số hóa đơn (là Primary key) |
MaKH |
Mã khách hàng đã mua sách |
MaSach |
Mã sách mà khách hàng đã mua |
NgayMua |
Ngày mua sách |
DonGia |
Đơn giá sách tại thời điểm bán sách |
SoLuong |
Số lượng sách bán |
Ví dụ, bảng SachBan có thể chứa các thông tin như sau:
SoHD |
MaKH |
MaSach |
NgayMua |
DonGia |
Soluong |
---|---|---|---|---|---|
1 |
1 |
2 |
22/11/2006 |
30 |
5 |
2 |
1 |
3 |
15/7/2005 |
|
4 |
3 |
2 |
1 |
24/5/2006 |
|
7 |
4 |
3 |
1 |
15/11/2005 |
|
9 |
Quan hệ giữa các bảng như sau:
Trong bảng SachBan thì field MaKH là khóa ngoại tham chiếu đến field MaKH trong bảng KhachHang, còn field MaSach là khóa ngoại tham chiếu đến field MaSach trong bảng Sach.
Mô tả:
Trong bảng KhachHang thì mã số khách hàng (MaKH) là duy nhất, và các field dữ liệu về khách hàng là bắt buộc nhập (not NULL), ngoại trừ field NguoiGT.
Một khách hàng lần đầu tiên mua hàng ở của hàng sách Rạng Đông, nhân viên sẽ hỏi thông tin về khách hàng và nhập vào bảng KhachHang. Ví dụ, khách hàng là Tân đến mua sách ở Nhà Sách Rạng Đông thì thông tin về Tân có thể được lưu trữ trong bảng KhachHang như sau:
MaKH: 15
TenKH: Tân
DiaChi: 123 Doi Can
Quan: Ba Dinh
Dữ liệu mua sách sẽ được cập nhật vào bảng SachBan. Các field trong bảng này đều yêu cầu nhập dữ liệu (not NULL). Bảng Sach lưu các thông tin về từng đầu sách như đã giới thiệu ở trên.
Chú ý: Các thuộc tính có gạch chân là khoá chính (primary key) của bảng
YÊU CẦU:
Tạo database có tên RangDong và thực hiện các công việc sau:
Câu 1: Tạo bảng và nhập dữ liệu
a. Viết các câu SQL tạo bảng có đủ các khoá chính và khoá ngoại theo lược đồ và mô tả trên.
b. Viết các câu SQL nhập đầy đủ và chính xác những dữ liệu theo mô tả trên vào các bảng vừa tạo. (Lưu ý thứ tự nhập dữ liệu).
Câu 2: Viết các câu truy vấn dữ liệu (query)
a. Viết câu lệnh SQL cho kết quả là số đầu sách xuất bản bởi nhà xuất bản “KHKT”.
b. Viết câu lệnh SQL cho kết quả là danh sách các nhà xuất bản cùng với số đầu sách tương ứng của từng NXB, theo thứ tự tăng dần của tên NXB
c. Viết câu lệnh SQL cho kết quả là danh sách các khách hàng sống trong quận "Ba Dinh", cùng với tên các đầu sách mà từng khách hàng đó đã mua.
d. Viết câu lệnh SQL cho kết quả là danh sách các khách hàng, cùng với tổng số các cuốn sách (total quantity) mà từng khách hàng đó đã mua.
e. Viết câu lệnh SQL cho kết quả là danh sách các khách hàng, cùng với tên các nhà xuất bản của những đầu sách mà khách hàng đó đã mua.
f. Viết câu lệnh SQL cho kết quả là danh sách các khách hàng, cùng với số lần mua sách của từng khách hàng đó (mỗi record trong bảng SachBan là một lần mua sách).
g. Viết câu lệnh SQL cho kết quả là danh sách các quận, cùng với tổng giá trị mua sách của các khách hàng sống trong quận đó. Sắp xếp theo thứ tự giảm dần của giá trị.