Dùng đúng hai cấp của trang cập nhật
Theo **trang 108 SGK cập nhật chính thức**, bài vận dụng dùng `tinh(idTinh,tenTinh)` và `xa(idXa,tenXa,idTinh)`. Đây là **CSDL bài tập**: Tỉnh Mẫu A và Thành phố Mẫu B là tên giả, không chỉ một địa phương Việt Nam hiện hành. Nếu đã tạo hai bảng ở Bài 19–20, mở lại cấu trúc và dữ liệu: `tinh.idTinh` là khóa chính, `xa.idTinh` là khóa ngoại tới mã ấy, hai đầu có kiểu tương thích. Không thêm một bảng cấp huyện vào mô hình hai cấp này.
**Nhiệm vụ:** đọc mã của Tỉnh Mẫu A trong `tinh`, rồi thêm một hàng `xa` tên “Phường Mẫu” dùng **đúng mã đã đọc**. Nếu `idXa` tự tăng, để máy cấp mã; nếu `idTinh` là INT, nhập mã số thực tế, không gõ nhãn ví dụ T01. Với HeidiSQL 12.21.1.1 tiếng Anh/Linux, dùng Data → Insert, nhập tên, mở danh sách `idTinh` chọn Tỉnh Mẫu A (1), nhấn Tab rồi Post. F5 đọc lại: tên “Phường Mẫu” và mã tỉnh 1 ở cùng hàng; mã xã do máy cấp. Nếu chưa có hai bảng, hoàn thành bước tạo bảng ở Bài 19–20 trước khi nhập.
Tìm theo mã tỉnh, rồi kiểm ý nghĩa
Giả sử Tỉnh Mẫu A được cấp `idTinh = 1`, truy vấn một bảng:
```sql
SELECT idXa, tenXa, idTinh
FROM xa
WHERE idTinh = 1
ORDER BY idXa;
```
Kết quả chỉ gồm những hàng phường/xã giả đang trỏ tới mã 1. Nếu cùng tên “Phường Mẫu” xuất hiện ở Thành phố Mẫu B mã 2, chúng là hai hàng khác nhau; quy tắc UNIQUE `(tenXa,idTinh)` nếu đã đặt sẽ xét **cặp tên–mã tỉnh**, không cấm tên lặp giữa hai tỉnh. Câu SELECT không tự xác minh tên hoặc địa giới hiện hành. Khi dùng dữ liệu hành chính thật, cần kiểm nguồn chính thức và thời điểm áp dụng; bài này chỉ chuyển kiến thức khóa ngoại sang ví dụ gần gũi.
Bài luyện
Trong CSDL giả, xa.idTinh dùng để làm gì?
idXa định danh hàng xa.
idTinh nối xa với tinh.
Không thuộc bảng nhạc.
Khóa ngoại không tự tạo hàng cha.
Lời giải
xa.idTinh là khóa ngoại. Khi thêm phường/xã, dùng mã tỉnh/thành phố đã tồn tại ở tinh.
Bài luyện
Hai tỉnh giả có cùng “Phường Mẫu”. UNIQUE(tenXa,idTinh) sẽ cho kết quả nào?
Hai cặp tên–mã tỉnh khác nhau.
UNIQUE đặt trên cặp.
Chỉ mục không tự gộp hàng.
Chỉ mục không xóa hàng cha.
Lời giải
Cùng tên ở hai mã tỉnh khác nhau là hai cặp khác nhau; quy tắc cặp vẫn được giữ.
Bài luyện
Vì sao không dùng tên “Tỉnh Mẫu A” trong bài như dữ liệu hành chính hiện hành?
Bài luyện không xác nhận tên/mã/địa giới thật.
CSDL utf8mb4 lưu được tiếng Việt.
Mã tùy dữ liệu nhập trên máy.
Mô hình có bảng tinh.
Lời giải
Tên và mã đều giả để học quan hệ giữa hai bảng. Dữ liệu thực cần nguồn và thời điểm đối chiếu riêng.
Đang học