Tin 11 KNTT - Bài 23. Thực hành truy xuất dữ liệu qua liên kết các bảng

Nhiệm vụ 1. Lập danh sách các bản nhạc với tên bản nhạc và tên tác giả

Hướng dẫn:

- Bảng bannhac có cấu trúc:

bannhac (idBannhac, tenBannhac, idNhacsi)

Trong số các trường này không có trường tenNhacsi. Làm thế nào lập được danh sách các bản nhạc cùng với tên nhạc sĩ sáng tác bản nhạc ấy?

Tên nhạc sĩ nằm trong bảng nhacsi, lưu trữ ở trường tenNhacsi

nhacsi (idNhacsi, tenNhacsi)

Bảng bannhac có khoá ngoài là idNhacsi tham chiếu đến trường khoá chính idNhacsi của bảng nhacsi.

Để truy vấn hai bảng qua liên kết khoá, câu truy vấn SQL với mệnh đề JOIN có cấu trúc như sau:

Ví dụ: Để lấy ra danh sách các bản nhạc gồm tenBannhac, tenNhacsi, dùng câu truy vấn:

- Vào HeidiSQL, chọn CSDL mymusic, chọn thẻ Truy vấn và nhập vào câu truy vấn trên. Nhấn F9 trên bàn phím hoặc nháy chuột vào biểu tượng  hoặc nháy nút phải chuột, chọn Chạy.

Hình 23.1. Kết quả truy vấn liên kết hai bảng theo trường khoá

- Nếu muốn ở dữ liệu kết xuất có cả trường idNhacsi của bảng nhacsi nhằm có thể đối chiếu một cách tường minh cũng không khó, chỉ cần đổi tên hai trường (cùng tên) ở hai bảng để phân biệt.

Hình 23.2. Kết quả truy vấn liên kết hai bảng với khoá đối chiếu

Lưu ý: HeidiSQL có hỗ trợ người dùng khi nhập các câu truy vấn theo các phương thức:

- Dùng màu sắc để trợ giúp quan sát cú pháp của câu truy vấn (syntax coloring).

- Mỗi khi người dùng nhập một tên bảng và dấu chấm (.), HeidiSQL sẽ hiển thị ngay danh sách các tên trường của bảng để người dùng lựa chọn.

Hình 23.3. Một giao diện hỗ trợ người dùng của HeidiSQL

Hãy thực hành

- Lập danh sách bao gồm idBannhac, tenBannhac, tenNhacsi từ tất cả các bản nhạc có trong bảng bannhac.

Bảng bannhac (idBannhac, tenBannhac, idNhacsi) có khoá ngoài idNhacsi tham chiếu đến idNhacsi trong bảng nhacsi (idNhacsi, tenNhacsi) vì vậy có thể dùng câu truy vấn SQL truy xuất dữ liệu từ hai bảng qua điều kiện bannhac.idNhacsi=nhacsi.idNhacsi

- Lập danh sách bao gồm idBannhac, tenBannhac từ tất cả các bản nhạc của nhạc sĩ Đỗ Nhuận có trong bảng bannhac.

Trong bảng nhacsi, nhạc sĩ Đỗ Nhuận có idNhacsi = 1.

Nhiệm vụ 2. Lập danh sách các bản thu âm với đủ các thông tin idBanthuam, tenBannhac, tenCasi

Hướng dẫn:

Để truy vấn được nhiều hơn hai bảng theo liên kết khoá ngoài, hãy lặp lại mệnh đề JOIN trong câu truy vấn SQL theo cấu trúc như sau:

Trong đó tên bảng_x.tên trường_x là tên trường của bảng a hay bảng b.

Lập danh sách các bản thu âm với đủ các thông tin idBanthuam, tenBannhac, tenCasi.

Các thông tin cần lấy ra idBanthuam, tenBannhac, tenCasi có trong 3 bảng:

banthuam (idBanthuam, idBannhac, idCasi)

bannhac (idBannhac, tenBannhac, idNhacsi)

casi (idCasi, tenCasi)

Để lấy tên bản nhạc cần liên kết bảng banthuam và bảng bannhac theo khoá idBannhac.

Để lấy tên ca sĩ cần liên kết bảng banthuam và bảng casi theo khó idCasi.

Dùng câu truy vấn SQL, ta có kết quả như sau:

Nhiệm vụ 3. Tìm hiểu một chức năng của ứng dụng Quản lí dữ liệu âm nhạc

Qua giao diện trong Hình 23.4, em hãy tìm hiểu một chức năng của ứng dụng Quản lý dữ liệu âm nhạc, so sánh với những kiến thức vừa được học và cho nhận xét so sánh.

Hình 23.4. Mô tả giao diện Quản lý danh sách các bản thu âm

Cách tương tác với giao diện này tương tự như với giao diện Quản lý Bản nhạc ở Bài 22 (Hình 22.7), chỉ khác ở chỗ khi nhập bản thu âm, chỉ có thể chọn tên bản nhạc, tên ca sĩ từ hộp danh sách với những tên đã có trong CSDL. Danh sách các bản thu âm có đầy đủ các thông tin tường minh tên bản nhạc, tên nhạc sĩ và tên ca sĩ thể hiện.

Theo các em:

- Người sử dụng có cần biết, nhớ cấu trúc của bảng trong CSDL không?

- Giao diện trên có dễ hiểu, dễ sử dụng không?

- Hình thức nhập dữ liệu như vậy có hỗ trợ tính nhất quán dữ liệu không?

Đáp án:

– Người sử dụng không cần nhớ cấu trúc của bảng trong CSDL. Người dùng chỉ cần nhập dữ liệu và cập nhật dữ liệu.

– Giao diện dễ hiểu và dễ sử dụng vì được thiết kế chuyên biệt cho quản lí dữ liệu âm nhạc.

– Hình thức nhập dữ liệu này có hỗ trợ tính nhất quán và toàn vẹn dữ liệu.

LUYỆN TẬP

Câu 1. Lấy danh sách các bản thu âm với đầy đủ các thông tin idBanthuam, tenBannhac, tenNhacsi, tenCasi.

Đáp án:

Câu 2. Lấy danh sách các bản thu âm với các thông tin idBanthuam, tenBannhac, tenCasi các bản nhạc của nhạc sĩ Văn Cao.

Đáp án:

Tên nhạc sĩ có trong bảng nhacsi từ đó qua liên kết bảng bannhac có các bản nhạc của nhạc sĩ Văn Cao, sau đó liên kết với bảng banthuam sẽ có được kết quả.

Câu 3. Lấy danh sách các bản thu âm với các thông tin idBanthuam, tenBannhac, tenNhacsi các bản nhạc do ca sĩ Lê Dung thể hiện.

Đáp án:

Tương tự, ta thay điều kiện là ca sĩ Lê Dung thể hiện.

VẬN DỤNG

Thực hành truy xuất bảng Quận/Huyện qua liên kết với bảng Tỉnh/Thành phố.

Đáp án:

Bảng quận/huyện: huyen(idHuyen, tenHuyen, idTinh) có khoá ngoài idTinh tham chiếu đến bảng tinh(idTinh, tenTinh).


Đăng nhận xét

Mới hơn Cũ hơn
Responsive Advertisement
Responsive Advertisement4