JavaScript is required

Cho bảng sinhvien gồm các trường sau: masv, hoten, gioitinh, ngaysinh, diachi, malop, hocbong. Câu lệnh nào trả về kết quả những sinh viên có năm sinh từ 1991 đến 1993 và nhóm theo masv?

A.

SELECT* FROM sinhvien WHERE year(ngaysinh)= 1991 and 1993 ORDER BY masv

B.

SELECT* FROM sinhvien WHERE year(ngaysinh) between 1991 and 1993 ORDER BY masv

C.

SELECT* FROM sinhvien WHERE ngaysinh between 1991 and 1993 ORDER BY masv

D.

SELECT* FROM sinhvien WHERE year(ngaysinh)= 1991 or 1993 ORDER BY masv

Trả lời:

Đáp án đúng: B


Câu hỏi yêu cầu tìm những sinh viên có năm sinh từ 1991 đến 1993 và sắp xếp theo mã sinh viên (masv). * **Phương án A:** Sử dụng `year(ngaysinh)= 1991 and 1993` là sai cú pháp. `year(ngaysinh)` chỉ có thể bằng một giá trị duy nhất. Do đó, mệnh đề `and 1993` không có nghĩa và sẽ gây ra lỗi. * **Phương án B:** Sử dụng `year(ngaysinh) between 1991 and 1993` là đúng. Hàm `between` kiểm tra xem giá trị của `year(ngaysinh)` có nằm trong khoảng từ 1991 đến 1993 (bao gồm cả 1991 và 1993) hay không. `ORDER BY masv` đảm bảo kết quả được sắp xếp theo mã sinh viên. * **Phương án C:** So sánh `ngaysinh` trực tiếp với `1991` và `1993` là không đúng vì `ngaysinh` là một ngày tháng năm đầy đủ, chứ không chỉ là năm. Do đó, nó sẽ không trả về kết quả đúng như yêu cầu. * **Phương án D:** Sử dụng `year(ngaysinh)= 1991 or 1993` sẽ chỉ chọn những sinh viên có năm sinh là 1991 hoặc 1993. Nó không bao gồm những sinh viên có năm sinh 1992, do đó không đáp ứng yêu cầu của câu hỏi. Vậy, phương án B là đáp án đúng nhất.

Câu hỏi liên quan