Giải Tin Học trang 96

Lời giải chi tiết SGK Lớp 11 · Môn Tin Học · Trang 96–97

Mục tiêu bài học

Sau bài này em sẽ biết cách tạo mới các bảng có khoá ngoài.

Câu hỏi gợi mở: Khoá ngoài có tác dụng liên kết dữ liệu giữa các bảng. Vậy khi tạo bảng có khoá ngoài, việc thiết lập khoá ngoài được thực hiện như thế nào?


Nhiệm vụ thực hành

Tạo lập bảng bannhac với cấu trúc:

bannhac (idBannhac, tenBannhac, idNhacsi)
TrườngKiểu dữ liệuGhi chú
idBannhacINTKhoá chính, tự tăng
idNhacsiINTKhoá ngoài, tham chiếu nhacsi
tenBannhacVARCHAR(255)Tên bản nhạc

Công cụ sử dụng: HeidiSQL (kết nối tới máy chủ MariaDB, cơ sở dữ liệu mymusic).


1. Khai báo bảng bannhac với các trường idBannhac, tenBannhac

Các bước thầy tóm tắt lại:

  1. Chọn thẻ Tạo mới, chọn Bảng.
  2. Nhập tên bảng: bannhac.
  3. Nhấn Thêm mới để thêm trường dữ liệu. Một trường tên mặc định Column1 sẽ xuất hiện phía dưới (Hình 20.1).

Khai báo trường idBannhac (Hình 20.2):

  • Nhập tên: idBannhac
  • Chọn kiểu dữ liệu: INT
  • Bỏ đánh dấu ô Allow NULL (không cho phép giá trị rỗng, vì đây là khoá chính)
  • Nháy vào ô No default để đặt giá trị mặc định là AUTO_INCREMENT (tự động tăng mỗi khi thêm bản ghi mới)

Khai báo trường tenBannhac (Hình 20.3):

  • Để thêm trường tiếp theo: nhấn Ctrl + Insert hoặc nháy phải chuột vào phần dưới dòng idBannhac rồi chọn Add column
  • Nhập tên: tenBannhac
  • Chọn kiểu VARCHAR, độ dài 255
  • Giá trị mặc định là kí tự rỗng ''

2. Khai báo các trường là khoá ngoài

Phần lý thuyết quan trọng nhất của bài:

Các trường là khoá ngoài của bảng là các trường tham chiếu đến một trường khoá chính (k) của một bảng khác, vì vậy cần được khai báo giá trị mặc định phù hợp với giá trị tương ứng của k.

Ví dụ với trường idNhacsi (Hình 20.4):

  • Trường idNhacsi trong bảng bannhac tham chiếu đến trường idNhacsi (kiểu INT) của bảng nhacsi.
  • Vì vậy:
  • Kiểu dữ liệu của trường này cũng phải là INT (phải khớp với kiểu của trường được tham chiếu).
  • Giá trị mặc định là một số nguyên, chẳng hạn 0.

Sau bước này, cấu trúc bảng bannhac đã có đủ 3 trường:

#TênKiểuLengthMặc định
1idBannhacINT11AUTO_INCREMENT
2tenBannhacVARCHAR255''
3idNhacsiINT0

Ghi nhớ nhanh

  • Khoá ngoài dùng để liên kết dữ liệu giữa hai bảng.
  • Trường khoá ngoài phải có cùng kiểu dữ liệu với trường khoá chính mà nó tham chiếu.
  • Giá trị mặc định của khoá ngoài nên là một giá trị hợp lệ (ví dụ số nguyên 0 với kiểu INT).
  • Khoá chính thường được đặt AUTO_INCREMENTkhông cho phép NULL.

Hai trang này hoàn toàn là nội dung hướng dẫn, không có bài tập cần giải. Khi em sang trang tiếp theo (phần Luyện tập / Vận dụng), gửi ảnh cho thầy nhé, thầy sẽ giải chi tiết từng câu cho em.

Chế độ đọc sách →