JavaScript is required

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

A.

A.SELECT hoten FROM SinhVien HAVING 1990

B.

B.SELECT hoten FROM SinhVien WHERE ngaysinh =

C.

C.SELECT hoten FROM SinhVien WHERE

D.

D.SELECT namsinh FROM SinhVien WHERE 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`.

Câu hỏi liên quan