BÀI 5: LIÊN KẾT BẢNG (JOIN)

1. Khái niệm Khóa ngoại (Foreign Key)

  • Là một cột trong bảng này nhưng trỏ tới Khóa chính của bảng khác.

  • Mục đích: Tạo mối liên kết dữ liệu giữa các thực thể (Ví dụ: Cột ma_gv trong bảng lop_hoc liên kết với bảng giao_vien).

2. Tại sao cần liên kết bảng?

Trong thực tế, dữ liệu không bao giờ nằm tập trung ở một bảng duy nhất để tránh dư thừa. Khi cần báo cáo đầy đủ, ta phải “nối” các bảng lại dựa trên các cột chung.

3. Các kiểu liên kết phổ biến

  • INNER JOIN: Lấy các dòng có giá trị trùng khớp ở cả hai bảng (Phổ biến nhất).

  • LEFT JOIN: Lấy tất cả các dòng từ bảng bên trái, và các dòng trùng khớp từ bảng bên phải. Nếu không có khớp, kết quả bên phải sẽ là NULL.

4. Cú pháp thực hiện

SQL
 
SELECT ten_bang1.ten_cot, ten_bang2.ten_cot
FROM ten_bang1
INNER JOIN ten_bang2 ON ten_bang1.khoa_ngoai = ten_bang2.khoa_chinh;

5. Bài tập thực hành

Tình huống: Kết nối bảng giao_vien và bảng mon_hoc thông qua bảng trung gian phan_cong.

  1. Truy vấn danh sách gồm: Tên giáo viênTên môn học mà giáo viên đó đang phụ trách.

  2. Sử dụng LEFT JOIN để liệt kê tất cả giáo viên, kể cả những người chưa được phân công dạy môn nào trong năm học này.