Cơ sở dữ liệu ‘‘QuanLyTuyenSinh’’có bảng: HoSoThiSinh(...) Muốn biết thông tin thí sinh có địa chỉ ở các tỉnh: Nghệ An, Hà Tĩnh, Quảng Bình. Ta thực hiện lệnh?
A.
SELECT * FROM HoSoThiSinh WHERE DiaChi IN(N‘Nghệ An’, N‘Hà Tĩnh’, N‘Quảng Bình’)
B.
SELECT * FROM HoSoThiSinh WHERE right(DiaChi,7)= N‘Nghệ An’ or right(DiaChi,7)= N‘Hà Tĩnh’ or right(DiaChi,10)= N‘Quảng Bình’
C.
SELECT * FROM HoSoThiSinh WHERE DiaChi Like (‘%Nghệ An’, ‘%Hà Tĩnh’, ‘%Quảng Bình’)
D.
SELECT * FROM HoSoThiSinh WHERE DiaChi Like ‘%Nghệ An%’ or DiaChi Like ‘%Hà Tĩnh%’ or DiaChi Like ‘%Quảng Bình%’
Trả lời:
Đáp án đúng: A
Câu hỏi yêu cầu truy vấn thông tin thí sinh từ bảng `HoSoThiSinh` có địa chỉ thuộc một trong các tỉnh Nghệ An, Hà Tĩnh, Quảng Bình.
* **Phương án A:** Sử dụng `IN` để kiểm tra xem giá trị của cột `DiaChi` có nằm trong danh sách các giá trị được cung cấp hay không. Đây là phương pháp chính xác để lọc dữ liệu dựa trên một tập hợp các giá trị cụ thể.
* **Phương án B:** Sử dụng hàm `right` để so sánh một số ký tự cuối cùng của địa chỉ. Cách này không đúng vì địa chỉ có thể chứa thêm thông tin khác ngoài tên tỉnh.
* **Phương án C:** Sử dụng `LIKE` không đúng cách, vì cú pháp truyền nhiều giá trị vào `LIKE` không được hỗ trợ.
* **Phương án D:** Sử dụng `LIKE` với `%` để tìm kiếm địa chỉ có chứa tên tỉnh. Đây là một cách tiếp cận đúng, tuy nhiên, phương án A tối ưu hơn vì nó trực tiếp so sánh toàn bộ giá trị, trong khi phương án D có thể trả về kết quả không mong muốn nếu có sự trùng lặp tên (ví dụ: một địa danh nào đó có chứa "Nghệ An" nhưng không phải là tỉnh Nghệ An).
Vì vậy, phương án A là chính xác và hiệu quả nhất.