Tra mã rồi tìm bài
**Nhiệm vụ:** xem các bản nhạc của Mai An trong dữ liệu giả. Trước hết đọc `nhacsi` để biết mã trên máy; giả sử là 1. Ở thẻ Data của `bannhac`, có thể lọc `idNhacsi = 1` và dùng Sorting để xem theo mã giảm dần. Cũng có thể chạy câu SQL sau trong thẻ Query:
```sql
SELECT idBannhac, tenBannhac
FROM btvn19_lab.bannhac
WHERE idNhacsi = 1
ORDER BY idBannhac DESC;
```
Trên máy thử, kết quả là “Ngày nắng” mã 6 rồi “Mưa đầu mùa” mã 1. Đây là **hai hàng của dữ liệu giả**, không phải danh mục tác phẩm của một người thật. Muốn sắp theo tên bài, đổi thành `ORDER BY tenBannhac, idBannhac`; thứ tự của tên tiếng Việt phụ thuộc collation đang dùng. Câu `SELECT` trên chỉ đọc `bannhac`; nó không tự lấy cột `tenNhacsi` từ bảng kia. Bài sau mới học truy vấn kết hợp nhiều bảng.
Hai giao diện phục vụ hai nhóm người dùng
SGK cho xem hình ứng dụng Quản lí dữ liệu âm nhạc: người dùng nhập **tên bài**, chọn **nhạc sĩ**, bấm Nhập; tìm theo vài chữ trong tên hoặc theo nhạc sĩ; chọn hàng để sửa hay đánh dấu để xóa. HeidiSQL bày ra bảng, cột, khóa và câu truy vấn, thuận tiện cho người đang học/quản lí cấu trúc CSDL. Ứng dụng chuyên dụng gom thao tác hằng ngày trên một màn hình, nên người dùng có thể làm việc mà không phải nhớ tên `idNhacsi` hay cấu trúc bốn bảng.
Cả hai đều có thể gửi yêu cầu tới hệ quản trị CSDL; giao diện thuận tiện **không thay thế** kiểm quyền và ràng buộc ở máy chủ. Hình SGK là mẫu để quan sát, không chứng minh ứng dụng ấy đã được cài hoặc kiểm chạy trên máy học sinh. Khi chọn Xóa nhiều hàng, luôn xem phạm vi và bản ghi liên quan trước khi xác nhận.
Bài luyện
Muốn xem các bài của Mai An khi đã tra được idNhacsi = 1, điều kiện nào phù hợp trên bảng bannhac?
Mã bản nhạc chỉ định một bài.
idNhacsi là mã nhạc sĩ của từng bài.
tenBannhac là tên bài.
idCasi không là cột của bannhac.
Lời giải
Tra mã ở nhacsi trước, rồi lọc bannhac theo idNhacsi tương ứng.
Bài luyện
Câu `SELECT idBannhac, tenBannhac FROM bannhac WHERE idNhacsi = 1` có tự trả tên nhạc sĩ không?
Khóa ngoại không tự thêm cột vào kết quả SELECT.
Danh sách cột đã chọn chỉ gồm mã và tên bài.
Sorting chỉ đổi thứ tự.
SELECT không xóa dữ liệu.
Lời giải
Câu này đọc hai cột của bannhac. Muốn hiện tên nhạc sĩ cùng bài cần truy vấn thêm bảng nhacsi, nội dung của Bài 23.
Bài luyện
Giao diện ứng dụng âm nhạc trong SGK giúp người dùng thường ngày ở điểm nào?
Các việc thường dùng được gom theo nghiệp vụ âm nhạc.
Ràng buộc dữ liệu vẫn cần được giữ.
Giao diện không tự xác minh sự thật ngoài đời.
Ứng dụng cần nguồn dữ liệu để thao tác.
Lời giải
Ứng dụng chuyên dụng trình bày việc người dùng cần làm; hệ quản trị bên dưới vẫn kiểm quyền và quan hệ dữ liệu.
Đang học