I. Mục tiêu bài học
- Hiểu cách truy xuất dữ liệu từ nhiều bảng thông qua liên kết khóa, đặc biệt là khóa ngoại.
INNER JOIN
Khóa ngoại
Liên kết bảng
SQL
HeidiSQL
II. Khái niệm liên kết bảng
- Các bảng trong cơ sở dữ liệu có thể liên hệ với nhau thông qua khóa ngoại.
- Nhờ mối liên hệ này, có thể lấy dữ liệu từ nhiều bảng để tạo ra thông tin đầy đủ hơn.
Ý chính: Dữ liệu truy xuất không chỉ nằm trong một bảng riêng lẻ mà có thể được ghép từ nhiều bảng dựa trên quan hệ khóa.
III. Nhiệm vụ 1: Truy vấn 2 bảng
1. Vấn đề
- Bảng
bannhackhông có trườngtenNhacsi. - Bảng
nhacsilại chứa thông tintenNhacsi. - Muốn lấy đủ thông tin bản nhạc và nhạc sĩ thì cần kết hợp hai bảng.
2. Cách thực hiện
Dùng mệnh đề INNER JOIN để nối các bảng theo trường liên kết.
Cấu trúc chung:
SELECT các_trườngFROM bảng_A INNER JOIN bảng_BON điều_kiện_kết_nối[WHERE ...][ORDER BY ...];
3. Ví dụ
Lấy tên bản nhạc và tên nhạc sĩ:
SELECT bannhac.tenBannhac, nhacsi.tenNhacsiFROM bannhac INNER JOIN nhacsiON bannhac.idNhacsi = nhacsi.idNhacsi;
4. Lưu ý
- Có thể đặt tên lại trường bằng
ASđể phân biệt khi nhiều bảng có trường trùng tên. - HeidiSQL hỗ trợ tô màu cú pháp khi viết truy vấn.
- HeidiSQL cũng gợi ý tên bảng, tên trường trong quá trình nhập lệnh.
IV. Nhiệm vụ 2: Truy vấn nhiều hơn 2 bảng
1. Cách làm
Dùng nhiều mệnh đề INNER JOIN liên tiếp để kết hợp thêm bảng.
SELECT ...FROM bảng_AINNER JOIN bảng_B ON ...INNER JOIN bảng_C ON ...
2. Ý nghĩa
- Cho phép kết hợp dữ liệu từ 3 bảng trở lên thông qua các khóa liên kết.
- Nhờ đó có thể truy xuất đầy đủ thông tin như bản nhạc, nhạc sĩ, ca sĩ, thể loại...
V. Nhiệm vụ 3: Tìm hiểu ứng dụng
- Giao diện quản lý cho phép chọn dữ liệu từ các danh sách có sẵn.
- Hệ thống có thể hiển thị đầy đủ thông tin của bản nhạc, nhạc sĩ và ca sĩ.
Nhận xét: Người dùng không cần biết cấu trúc chi tiết của cơ sở dữ liệu vẫn có thể thao tác dễ hiểu, dễ dùng và giữ được tính nhất quán dữ liệu.
VI. Luyện tập
- Viết truy vấn để lấy danh sách bản thu âm với đầy đủ thông tin.
- Lọc dữ liệu theo nhạc sĩ.
- Lọc dữ liệu theo ca sĩ.
- Lọc dữ liệu theo thể loại.
- Áp dụng
JOINnhiều bảng kết hợp với điều kiệnWHERE.
VII. Vận dụng và ghi nhớ nhanh
- Vận dụng: Thực hành truy vấn liên kết bảng Quận/Huyện với bảng Tỉnh/Thành phố.
- Ghi nhớ: Dùng
INNER JOINđể nối bảng qua khóa. - Ghi nhớ: Có thể nối 2 bảng hoặc nhiều bảng.
- Ghi nhớ: Dữ liệu truy xuất dựa trên quan hệ giữa các bảng.
- Ghi nhớ: Có thể kết hợp thêm
WHEREđể lọc vàORDER BYđể sắp xếp.