btvn.vn
Tìm kiếm Đăng nhập

Thêm bản nhạc và chọn nhạc sĩ đã có

Lưu trên thiết bị này
Thực hành tạo và khai thác cơ sở dữ liệu — ICT · Chọn bài khác

Đọc bảng cha trước khi nhập

Trong CSDL **thực hành** `btvn19_lab`, mở `nhacsi` để biết mã của tên hư cấu “Mai An”. Trên máy thử, người này có `idNhacsi = 1`; trên máy khác phải đọc mã thực tế. Mở `bannhac` → **Data/Dữ liệu**, kiểm ba cột `idBannhac`, `tenBannhac`, `idNhacsi`. Bảng đã có khóa ngoại `bannhac.idNhacsi → nhacsi.idNhacsi` từ Bài 20. **Nhiệm vụ:** thêm bài hư cấu “Ngày nắng” của Mai An. Nhấn **Insert/thêm hàng**, để trống ô `idBannhac` tự tăng, nhập tên bài; tại ô `idNhacsi`, mở danh sách và chọn **Mai An (mã hiện trên máy)**. Ở HeidiSQL 12.21 bản Linux thử nghiệm, cần nhấn **Enter hoặc Tab để chốt ô khóa ngoại**, rồi bấm **Post/dấu kiểm xanh**. Đọc lại hàng đã lưu: tên “Ngày nắng” và mã nhạc sĩ phải cùng nằm trên một hàng. Nếu đang làm trên CSDL đã có bài ấy thì không thêm lặp; dùng hàng sẵn để kiểm.

Danh sách giúp chọn mã, ràng buộc giữ quan hệ

Danh sách trong HeidiSQL có thể hiện tên kèm mã để người nhập dễ chọn; **giá trị lưu ở cột khóa ngoại là mã**, không phải tên. MySQL từ chối mã nhạc sĩ chưa tồn tại. Khi thử nhập tên mà bỏ mã, máy thử báo thiếu `idNhacsi`; khi nhập mã 99 chưa có, máy thử báo vi phạm khóa ngoại. Hãy sửa dữ liệu nhập rồi lưu lại, không tạo nhạc sĩ giả chỉ để vượt lỗi. Mã `idBannhac` do máy cấp. Trong một lần thử, hai lệnh thêm bị lỗi trước khi hàng hợp lệ được lưu nên mã hàng mới là **6** dù trước đó chỉ thấy mã 1 và 2. Vì vậy không đoán mã tiếp theo bằng cách lấy mã lớn nhất cộng 1. Sau khi Post, đọc mã vừa được cấp trên bảng của mình. Danh sách chỉ giúp chọn **một hàng có thật**; nó không chứng minh bài hát thực tế thuộc về đúng người. Dữ liệu ví dụ ở đây đều hư cấu.

Bài luyện

Thêm “Ngày nắng” vào bannhac, idBannhac tự tăng. Cần nhập gì?
Chọn một đáp án

Bài luyện

Danh sách khóa ngoại hiển thị “Mai An (1)”. Giá trị nào được lưu ở bannhac.idNhacsi?
Chọn một đáp án

Bài luyện

Bảng đã có mã bài 1 và 2; sau một lần thêm lỗi, bài hợp lệ nhận mã 6. Kết luận nào đúng?
Chọn một đáp án

Đang học