
15 câu hỏi
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.
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ể.
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.
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ĩ.
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ĩ.
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"
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
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 đỏ"
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ĩ.
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.
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.
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.
Đá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.
Đá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.
Đá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ĩ.
Bạn có thích hoạt động này không?
Ý kiến của bạn sẽ giúp chúng tôi đề xuất nội dung phù hợp hơn.

![[Năm 2022] Đề thi thử môn Vật lí THPT Quốc gia có lời giải - Đề số 21](/_next/image?url=https%3A%2F%2Fvideo.vietjack.com%2Fupload%2Fimages%2Fvj-image%2Fimage-3izficdefgfoel0s9j8s-1786772791.jpg&w=3840&q=75)
![[Năm 2022] Đề thi thử môn Vật lí THPT Quốc gia có lời giải - Đề số 20](/_next/image?url=https%3A%2F%2Fvideo.vietjack.com%2Fupload%2Fimages%2Fvj-image%2Fimage-emy0gtcksawvorajezvv-1786772460.jpg&w=3840&q=75)




















