Cho lược đồ quan hệ SINHVIEN(masv,hoten,ngaysinh,quequan), sử dụng câu lệnh truy vấn nào để lấy ra họ tên của những sinh viên có năm sinh 1990?
"1990"
year(ngaysinh)=1990
Trả lời:
Đáp án đúng: C
Câu hỏi yêu cầu tìm câu lệnh SQL để lấy ra họ tên sinh viên có năm sinh là 1990 từ bảng SINHVIEN.
* **Phương án A:** `SELECT hoten FROM SinhVien HAVING 1990` sai vì mệnh đề `HAVING` thường được sử dụng với `GROUP BY` và không thể sử dụng trực tiếp để lọc năm sinh.
* **Phương án B:** `SELECT hoten FROM SinhVien WHERE ngaysinh =` sai vì thiếu điều kiện so sánh cụ thể và không có cách nào để chỉ định năm sinh từ trường `ngaysinh` mà không sử dụng hàm hoặc toán tử thích hợp.
* **Phương án C:** `SELECT hoten FROM SinhVien WHERE` sai vì thiếu vế so sánh sau mệnh đề WHERE, tức là không có điều kiện lọc dữ liệu nào được đưa ra.
* **Phương án D:** `SELECT namsinh FROM SinhVien WHERE ngaysinh=1990` sai vì câu truy vấn này chọn ra cột `namsinh` (cột này không tồn tại trong lược đồ quan hệ) thay vì cột `hoten` theo yêu cầu và chỉ so sánh ngày sinh với một giá trị cụ thể (1990), bỏ qua tháng và ngày. Tuy nhiên, đề bài có ghi `year(ngaysinh)=1990` cho nên ta sẽ bổ sung vào câu C để được câu đúng `SELECT hoten FROM SinhVien WHERE year(ngaysinh)=1990`
Vì không có đáp án đúng, ta sẽ chọn một đáp án gần đúng nhất và hiệu chỉnh nó. Ở đây, đáp án C là gần đúng nhất vì nó có cấu trúc câu lệnh `SELECT hoten FROM SinhVien WHERE` đúng, chỉ thiếu điều kiện. Vậy ta sẽ chọn đáp án C và giải thích rằng đáp án đúng phải là `SELECT hoten FROM SinhVien WHERE year(ngaysinh)=1990`.