Câu hỏi 43. Giả sử một cơ sở kinh doanh dùng CSDL gồm ba bảng có cấu trúc như sau
KHÁCH HÀNG |
||
Tên trường |
Mô tả |
Khóa chính |
Mã khách hàng |
Mỗi Mã khách hàng xác định duy nhất một khách hàng |
Khóa chính |
Họ và tên |
Họ và tên của khách hàng |
|
Địa chỉ |
Địa chỉ của khách hàng |
MẶT HÀNG |
||
Tên trường |
Mô tả |
Khóa chính |
Mã mặt hàng |
Mỗi Mã mặt hàng xác định duy nhất một mặt hàng |
Khóa chính |
Tên mặt hàng |
Tên của mặt hàng |
|
Đơn giá |
Đơn giá của mặt hàng (VND) |
HÓA ĐƠN |
||
Tên trường |
Mô tả |
Khóa chính |
Số hiệu đơn |
Mỗi Số hiệu đơn xác định duy nhất một hóa đơn đặt mua hàng |
Khóa chính |
Mã khách hàng |
Mã khách hàng |
|
Mã mặt hàng |
Mã mặt hàng |
|
Số lượng |
Số lượng hàng đặt mua |
|
Ngày giao hàng |
Ngày giao hàng |
1) Những yêu cầu nào dưới đây cần dữ liệu ở hai trong ba bảng đó? Yêu cầu đó cần liên kết với bảng nào và điều kiện kết nối là gì?
Yêu cầu 1: Tìm họ tên và địa chỉ của khách hàng liên quan đến hoá đơn có Số hiệu đơn là “S11".
Yêu cầu 2: Tìm tên mặt hàng và đơn giá đã được đặt mua trong đơn hàng có Số hiệu đơn là “S11”.
Yêu cầu 3: Tìm số lượng hàng đã đặt mua của Số hiệu đơn là “S11”.
2) Hãy viết câu truy vấn để trả lời được các yêu cầu trên.
Bài Làm:
1)
– Yêu cầu 1 cần hai bảng KHÁCH HÀNG và HÓA ĐƠN liên kết với nhau. Điều kiện kết nối là giá trị Mã khách hàng trùng nhau
- Yêu cầu 2 cần hai bảng MẶT HÀNG và HÓA ĐƠN liên kết với nhau. Điều kiện kết nối là giá trị Mã mặt hàng trùng nhau
- Yêu cầu 3 chỉ cần truy vấn trên bảng HÓA ĐƠN
2)
- Câu truy vấn cho yêu cầu 1:
SELECT [KHÁCH HÀNG].[Họ và tên], [KHÁCH HÀNG].[Địa chỉ]
FROM [KHÁCH HÀNG] INNER JOIN [HÓA ĐƠN] ON [KHÁCH HÀNG].[Mã khách hàng] = [HÓA ĐƠN].[Mã khách hàng]
WHERE [HÓA ĐƠN].[Số hiệu đơn]="S11"
- Câu truy vấn cho yêu cầu 2:
SELECT [MẶT HÀNG].[Tên mặt hàng], [MẶT HÀNG].[Đơn giá]
FROM [MẶT HÀNG] INNER JOIN [HÓA ĐƠN] ON [MẶT HÀNG].[Mã mặt hàng] = [HÓA ĐƠN].[Mã mặt hàng]
WHERE [HÓA ĐƠN].[Số hiệu đơn]="S11"
- Câu truy vấn cho yêu cầu 3:
SELECT [Số lượng]
FROM [HÓA ĐƠN]
WHERE [Số hiệu đơn]="S11"