15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23 có đáp án
15 câu hỏi
PHẦN I. Câu trắc nghiệm nhiều phương án lựa chọn. Thí sinh trả lời từ câu 1 đến câu 10. Mỗi câu hỏi thí sinh chỉ lựa chọn một phương án.
Câu lệnh SQL nào dưới đây dùng để truy vấn thông tin tên bản nhạc và tên nhạc sĩ từ hai bảng bannhac và nhacsi?
SELECT * FROM bannhac WHERE idNhacsi = nhacsi.idNhacsi
SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi
SELECT tenBannhac, tenNhacsi FROM bannhac WHERE bannhac.idNhacsi = nhacsi.idNhacsi
SELECT tenBannhac, idNhacsi FROM bannhac WHERE idNhacsi = (SELECT idNhacsi FROM nhacsi)
Đáp án: B
Giải thích: Câu lệnh SQL B sử dụng mệnh đề INNER JOIN để kết nối hai bảng bannhac và nhacsi thông qua khóa ngoại idNhacsi, giúp lấy thông tin từ cả hai bảng.
Làm thế nào để truy vấn danh sách bản nhạc và tên nhạc sĩ chỉ của nhạc sĩ "Đỗ Nhuận"?
SELECT * FROM bannhac WHERE tenNhacsi = 'Đỗ Nhuận'
SELECT tenBannhac, tenNhacsi FROM bannhac WHERE tenNhacsi = 'Đỗ Nhuận'
SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi WHERE nhacsi.tenNhacsi = 'Đỗ Nhuận'
SELECT * FROM nhacsi WHERE tenNhacsi = 'Đỗ Nhuận'
Đáp án: C
Giải thích: Để lấy ra danh sách bản nhạc của nhạc sĩ "Đỗ Nhuận", cần sử dụng INNER JOIN giữa hai bảng và mệnh đề WHERE để lọc nhạc sĩ cụ thể.
Câu lệnh SQL nào truy vấn dữ liệu từ 3 bảng bannhac, banthuam, và casi để lấy tên bản nhạc và tên ca sĩ?
SELECT tenBannhac, tenCasi FROM bannhac INNER JOIN banthuam ON bannhac.idBannhac = banthuam.idBannhac INNER JOIN casi ON banthuam.idCasi = casi.idCasi
SELECT * FROM bannhac, banthuam, casi
SELECT tenBannhac, tenCasi FROM bannhac, banthuam, casi WHERE bannhac.idBannhac = banthuam.idBannhac AND banthuam.idCasi = casi.idCasi
SELECT tenBannhac, tenCasi FROM banthuam WHERE bannhac.idBannhac = casi.idCasi
Đáp án: A
Giải thích: Câu lệnh A sử dụng INNER JOIN để kết nối ba bảng và truy xuất thông tin về bản nhạc và ca sĩ dựa trên mối quan hệ giữa các bảng.
Cách truy vấn để lấy danh sách các bản nhạc và thể loại của nhạc sĩ "Văn Cao"?
SELECT tenBannhac, tenTheloai FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi WHERE nhacsi.tenNhacsi = 'Văn Cao'
SELECT bannhac.tenBannhac, bannhac.tenTheloai FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi
SELECT bannhac.tenBannhac, nhacsi.tenNhacsi, theloai.tenTheloai FROM bannhac, nhacsi, theloai WHERE nhacsi.tenNhacsi = 'Văn Cao'
SELECT * FROM bannhac, nhacsi WHERE tenNhacsi = 'Văn Cao'
Đáp án: A
Giải thích: Để lấy danh sách bản nhạc và thể loại của nhạc sĩ "Văn Cao", cần dùng INNER JOIN và mệnh đề WHERE để lọc nhạc sĩ.
Câu lệnh nào dưới đây để lấy danh sách tất cả các bản thu âm với thông tin bản nhạc, nhạc sĩ và ca sĩ?
SELECT * FROM banthuam
SELECT tenBannhac, tenNhacsi, tenCasi FROM banthuam
SELECT banthuam.idBanthuam, bannhac.tenBannhac, nhacsi.tenNhacsi, casi.tenCasi FROM banthuam INNER JOIN bannhac ON banthuam.idBannhac = bannhac.idBannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi INNER JOIN casi ON banthuam.idCasi = casi.idCasi
SELECT tenBannhac, tenNhacsi, tenCasi FROM banthuam WHERE idBanthuam = bannhac.idBannhac
Đáp án: C
Giải thích: Câu lệnh C truy vấn ba bảng với INNER JOIN để lấy danh sách các bản thu âm với thông tin bản nhạc, nhạc sĩ và ca sĩ.
Câu truy vấn nào sau đây trả về danh sách các bản thu âm của ca sĩ "Lê Dung" thuộc thể loại "Nhạc trữ tình"?
Top of Form
Bottom of Form
SELECT * FROM banthuam WHERE tenCasi = 'Lê Dung' AND tenTheloai = 'Nhạc trữ tình'
SELECT tenBannhac, tenTheloai, tenCasi FROM banthuam WHERE tenCasi = 'Lê Dung' AND tenTheloai = 'Nhạc trữ tình'
SELECT banthuam.idBanthuam, bannhac.tenBannhac, theloai.tenTheloai, casi.tenCasi FROM banthuam INNER JOIN bannhac ON banthuam.idBannhac = bannhac.idBannhac INNER JOIN theloai ON bannhac.idTheloai = theloai.idTheloai INNER JOIN casi ON banthuam.idCasi = casi.idCasi WHERE casi.tenCasi = 'Lê Dung' AND theloai.tenTheloai = 'Nhạc trữ tình'
SELECT * FROM banthuam WHERE idCasi = (SELECT idCasi FROM casi WHERE tenCasi = 'Lê Dung')
Đáp án: C
Giải thích: Câu lệnh C truy vấn ba bảng với điều kiện lọc ca sĩ "Lê Dung" và thể loại "Nhạc trữ tình"
Câu truy vấn SQL nào dưới đây lấy danh sách các bản nhạc từ bảng bannhac mà không có liên kết với bảng nhacsi?
SELECT tenBannhac FROM bannhac
SELECT bannhac.tenBannhac FROM bannhac LEFT JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi WHERE nhacsi.idNhacsi IS NULL
SELECT * FROM bannhac
SELECT bannhac.tenBannhac FROM bannhac WHERE idNhacsi = NULL
Đáp án: B
Giải thích: Câu lệnh B dùng LEFT JOIN và điều kiện WHERE nhacsi.idNhacsi IS NULL để lấy các bản nhạc không có nhạc sĩ liên kết
Làm thế nào để lấy danh sách bản nhạc và tên nhạc sĩ cho các bản nhạc có liên quan đến thể loại "Nhạc đỏ"?
SELECT * FROM bannhac WHERE tenTheloai = 'Nhạc đỏ'
SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi WHERE bannhac.idTheloai = (SELECT idTheloai FROM theloai WHERE tenTheloai = 'Nhạc đỏ')
SELECT * FROM bannhac INNER JOIN theloai ON bannhac.idTheloai = theloai.idTheloai
SELECT tenBannhac, tenNhacsi FROM bannhac WHERE tenTheloai = 'Nhạc đỏ'
Đáp án: B
Giải thích: Câu lệnh B sử dụng INNER JOIN và truy vấn con để lọc các bản nhạc thuộc thể loại "Nhạc đỏ"
Câu truy vấn nào truy xuất danh sách các bản thu âm mà không có ca sĩ liên kết?
SELECT * FROM banthuam WHERE idCasi IS NULL
SELECT banthuam.idBanthuam FROM banthuam WHERE idCasi IS NOT EXISTS
SELECT banthuam.idBanthuam, bannhac.tenBannhac FROM banthuam LEFT JOIN casi ON banthuam.idCasi = casi.idCasi WHERE casi.idCasi IS NULL
SELECT * FROM banthuam WHERE idBanthuam NOT IN (SELECT idBanthuam FROM casi)
Đáp án: C
Giải thích: Câu lệnh C dùng LEFT JOIN và điều kiện WHERE casi.idCasi IS NULL để lọc các bản thu âm không có ca sĩ.
Câu truy vấn SQL nào lấy danh sách tất cả các bản nhạc với thông tin thể loại, bao gồm cả những bản nhạc chưa được phân loại?
SELECT bannhac.tenBannhac, theloai.tenTheloai FROM bannhac
SELECT bannhac.tenBannhac, theloai.tenTheloai FROM bannhac INNER JOIN theloai ON bannhac.idTheloai = theloai.idTheloai
SELECT bannhac.tenBannhac, theloai.tenTheloai FROM bannhac LEFT JOIN theloai ON bannhac.idTheloai = theloai.idTheloai
SELECT bannhac.tenBannhac FROM bannhac WHERE theloai.idTheloai IS NULL
Đáp án: C
Giải thích: Câu lệnh C sử dụng LEFT JOIN để bao gồm cả các bản nhạc chưa được phân loại.
PHẦN II. Câu trắc nghiệm đúng sai. Thí sinh trả lời từ câu 1 đến câu 2. Trong mỗi ý a), b), c), d) ở mỗi câu, thí sinh chọn đúng hoặc sai
Câu truy vấn SQL nào sau đây sẽ lấy danh sách tất cả các bản nhạc cùng với tên nhạc sĩ sáng tác từ hai bảng bannhac và nhacsi?
a) SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;
b) SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac LEFT JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;
c) SELECT bannhac.tenBannhac FROM bannhac WHERE nhacsi.idNhacsi = bannhac.idNhacsi;
d) SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac, nhacsi WHERE bannhac.idNhacsi = nhacsi.idNhacsi;
a) Đúng. Đây là câu truy vấn chuẩn sử dụng JOIN để kết hợp hai bảng bannhac và nhacsi dựa trên khóa ngoài idNhacsi. Câu truy vấn này sẽ lấy tên bản nhạc và tên nhạc sĩ từ hai bảng.
b) Sai. Câu truy vấn này sử dụng LEFT JOIN, sẽ trả về tất cả các bản nhạc kể cả khi không có nhạc sĩ liên kết. Tuy nhiên, đề bài không yêu cầu danh sách bao gồm cả các bản nhạc không có nhạc sĩ.
c) Sai. Câu truy vấn này không đúng cú pháp vì phần SELECT chỉ có một bảng, và nó không bao gồm các tham chiếu tới bảng nhacsi.
d) Sai. Cú pháp này có thể đúng nhưng không được khuyến nghị vì không sử dụng JOIN, thay vào đó dùng câu truy vấn dạng FROM bannhac, nhacsi với điều kiện WHERE. Điều này làm giảm tính rõ ràng và dễ hiểu của câu truy vấn.
Câu truy vấn SQL nào sau đây lấy danh sách các bản thu âm với đủ thông tin về tên bản nhạc, tên ca sĩ và tên thể loại, từ ba bảng banthuam, bannhac, và casi?
a) SELECT banthuam.idBanthuam, bannhac.tenBannhac, casi.tenCasi FROM banthuam JOIN bannhac ON banthuam.idBannhac = bannhac.idBannhac JOIN casi ON banthuam.idCasi = casi.idCasi;
b) SELECT banthuam.idBanthuam, bannhac.tenBannhac, casi.tenCasi FROM banthuam LEFT JOIN bannhac ON banthuam.idBannhac = bannhac.idBannhac LEFT JOIN casi ON banthuam.idCasi = casi.idCasi;
c) SELECT banthuam.idBanthuam, bannhac.tenBannhac FROM banthuam WHERE banthuam.idCasi = casi.idCasi;
d) SELECT banthuam.idBanthuam, bannhac.tenBannhac, casi.tenCasi FROM banthuam, bannhac, casi WHERE banthuam.idCasi = casi.idCasi;
a) Đúng. Đây là câu truy vấn đúng cú pháp, sử dụng JOIN để liên kết ba bảng banthuam, bannhac, và casi dựa trên khóa ngoài. Kết quả sẽ bao gồm id bản thu âm, tên bản nhạc và tên ca sĩ.
b) Sai. Sử dụng LEFT JOIN sẽ trả về tất cả các bản thu âm, bao gồm cả những bản thu âm không có bản nhạc hoặc ca sĩ liên kết. Tuy nhiên, đề bài yêu cầu danh sách đầy đủ thông tin nên LEFT JOIN không cần thiết.
c) Sai. Câu truy vấn thiếu bảng bannhac và không có cú pháp JOIN để liên kết các bảng với nhau, dẫn đến không thể lấy được thông tin đầy đủ.
d) Sai. Mặc dù cú pháp đúng, nhưng không sử dụng JOIN làm cho câu truy vấn trở nên kém rõ ràng và dễ bị lỗi khi cơ sở dữ liệu phức tạp hơn.
PHẦN III. Câu trả lời ngắn. Thí sinh trả lời từ câu 1 đến câu 3
Làm thế nào để truy xuất danh sách các bản nhạc kèm theo tên nhạc sĩ sáng tác từ hai bảng bannhac và nhacsi có quan hệ với nhau?
Đáp án: Để truy xuất danh sách các bản nhạc kèm tên nhạc sĩ, ta cần sử dụng câu lệnh SQL với mệnh đề JOIN để liên kết hai bảng qua khoá ngoài idNhacsi
Giải thích: Bảng bannhac chứa thông tin về bản nhạc và khoá ngoài idNhacsi, trong khi bảng nhacsi chứa thông tin về nhạc sĩ. Mệnh đề JOIN giúp liên kết các bản nhạc với tên nhạc sĩ tương ứng dựa trên giá trị của idNhacsi.
Cần làm gì nếu muốn truy xuất thêm thông tin về khoá ngoài idNhacsi từ cả hai bảng bannhac và nhacsi trong kết quả truy vấn?
Đáp án: Để truy xuất cả khoá ngoài idNhacsi từ hai bảng, bạn có thể sử dụng bí danh (alias) để phân biệt giữa các trường trùng tên
Giải thích: Sử dụng bí danh giúp tránh nhầm lẫn khi có các trường cùng tên ở hai bảng. Ví dụ, idNS_BN và idNS_NS đại diện cho cùng một trường nhưng từ hai bảng khác nhau.
Làm thế nào để truy vấn danh sách các bản thu âm với thông tin từ ba bảng liên kết qua khoá ngoài?
Đáp án: Để truy vấn danh sách các bản thu âm từ ba bảng, bạn cần sử dụng mệnh đề JOIN nhiều lần để liên kết các bảng qua các khoá ngoài
Giải thích: Mệnh đề JOIN được sử dụng để liên kết từng cặp bảng. Mỗi bảng chứa thông tin liên quan và liên kết với các bảng khác qua khoá ngoài, tạo ra kết quả đầy đủ về bản thu âm, bản nhạc và ca sĩ.


