Lý thuyết Tin học 11 Bài 23 (Kết nối tri thức): Thực hành truy xuất dữ liệu qua liên kết các bảng

Tóm tắt lý thuyết Tin học lớp 11 Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng hay, chi tiết sách Kết nối tri thức sẽ giúp học sinh nắm vững kiến thức trọng tâm, ôn luyện để học tốt Tin học 11.

1 2,961 08/08/2026


Lý thuyết Tin học 11 Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng

A. Kiến thức trọng tâm Tin học 11 Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng

I. NHIỆM VỤ 1. LẬP DANH SÁCH CÁC BẢN NHẠC VÀ TÊN TÁC GIẢ

  • Để lấy ra danh sách các bản nhạc gồm tenBannhac, tenNhacsi, dùng câu truy vấn:

SELECT bannhac.tenBannhac, nhacsi.tenNhacsi

FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;

II. NHIỆM VỤ 2. LẬP DANH SÁCH CÁC BẢN THU ÂM VỚI ĐỦ CÁC THÔNG TIN IDBANTHUAM, TENBANNHAC, TENCASI

  • Câu truy vấn đúng là:

SELECT banthuam.idBanthuam, bannhac.tenBannhac, casi.tenCasi

FROM banthuam

INNER JOIN bannhac ON banthuam.idBannhac = bannhac.idBannhac

INNER JOIN casi ON banthuam.idCasi = casi.idCasi

III. NHIỆM VỤ 3. TÌM HIỂU MỘT CHỨC NĂNG CỦA ỨNG DỤNG "QUẢN LÝ DỮ LIỆU ÂM NHẠC"

Cách tương tác với giao diện này tương tự như với giao diện "Quản lí danh sách các bản nhạc" ở Bài 22, chỉ khác ở chỗ khi nhập bản thu âm, chỉ có thể chọn tên bản nhạc, tên ca sĩ từ hộp danh sách với những tên đã có trong CSDL. Danh sách các bản thu âm có đầy đủ các thông tin tường minh tên bản nhạc, tên nhạc sĩ và tên ca sĩ thể hiện.

B. Bài tập Tin học 11 Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng

Câu 1: Các bảng có thể có quan hệ với nhau, thể hiện qua?

A. Khóa chính

B. Khóa phụ

C. Khóa ngoại

D. Cả ba đáp án trên đều đúng

Câu 2: Nhờ khóa ngoại có thể?

A. Một thiết bị điện tử có khả năng xử lý dữ liệu theo một tập hợp của các mệnh lệnh máy tính (hay câu lệnh)

B. Một thiết bị điện tử có khả năng xử lý dữ liệu theo một tập hợp của các mệnh lệnh máy tính (hay câu lệnh) đã được chứa sẵn bên trong máy một cách tạm thời

C. Truy xuất dữ liệu từ các bảng khác theo mối quan hệ

D. Cả ba đáp án trên đều sai

Câu 3: Trong giao diện của một hệ quản trị CSDL, để truy xuất dữ liệu từ các bảng khác theo mối quan hệ thì người dùng có thể?

A. Sử dụng các trường dữ liệu

B. Sử dụng các phần mềm truy vấn dữ liệu như truy vấn SQL hoặc các công cụ đồ họa

C. Sử dụng các công cụ truy vấn dữ liệu như truy vấn SQL hoặc các công cụ đồ họa

Câu 4: Các công cụ truy vấn này thường cung cấp các tính năng đồ họa giúp?

A. Người dùng thiết kế

B. Cho phép người dùng truy xuất dữ liệu từ các bảng khác nhau bằng cách sử dụng các truy vấn SQL

C. Tạo các mối quan hệ giữa các bảng

D. Cả ba đáp án trên đều đúng

Câu 5: Để truy xuất dữ liệu từ các bảng có mối quan hệ với nhau thì?

A. Người dùng cần sử dụng khóa chính

B. Người dùng sử dụng các phần mềm thứ ba

C. Người dùng cần sử dụng câu lệnh JOIN để kết hợp các bảng với nhau theo khoá ngoài

D. Đáp án khác

Câu 6: Câu lệnh JOIN cho phép?

A. Bạn xử lý thông tin hiệu quả

B. Bạn sử dụng dữ liệu một cách hợp lý

C. Bạn truy xuất dữ liệu từ nhiều bảng cùng một lúc bằng cách ghép các bảng lại với nhau theo khoá ngoài

D. Đáp án khác

Câu 7: Để lấy tên bảng bằng câu lệnh SELECT, chúng ta có thể sử dụng?

A. Table: ......

B. syntax coloring

C. “information_schema. tables”

D. Đáp án khác

Câu 8: Để lấy danh sách các bản thu âm với các thông tin idBanthuam, tenBannhac, tenTheloai, tenCasi các bản nhạc của nhạc sĩ Văn Cao ta dùng lệnh?

A. select object_ idBanthuam, tenBannhac, tenTheloai, tenCasi from sys.objects where type='u'

B. select object_ idBanthuam, tenBannhac, tenTheloai, tenCasi from sys.tables

C. Cả hai đáp án trên đều đúng

D. Cả hai đáp án trên đều sai

Câu 9: Để lấy danh sách các bản thu âm với các thông tin idBanthuam, tenBannhac, tenTacgia, tenTheloai các bản nhạc do ca sĩ Lê Dung thể hiện?

A. select object_i idBanthuam, tenBannhac, tenTacgia, tenTheloai from sys.objects where type='u'

B. select object_ idBanthuam, tenBannhac, tenTacgia, tenTheloai from sys.tables

C. Cả hai đáp án trên đều đúng

D. Cả hai đáp án trên đều sai

Câu 10: SELECT * là?

A. Xác định cột bạn muốn chọn

B. Nơi bạn muốn trích xuất dữ liệu

C. Bạn muốn chọn tất cả các cột trong bảng

D. Cả ba đáp án trên đều đúng

Trắc nghiệm Tin học 11 Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng

Câu 1: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?

A. SELECT * FROM bannhac WHERE idNhacsi = nhacsi.idNhacsi

B. SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi

C. SELECT tenBannhac, tenNhacsi FROM bannhac WHERE bannhac.idNhacsi = nhacsi.idNhacsi

D. 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.

Câu 2: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"?

A. SELECT * FROM bannhac WHERE tenNhacsi = 'Đỗ Nhuận'

B. SELECT tenBannhac, tenNhacsi FROM bannhac WHERE tenNhacsi = 'Đỗ Nhuận'

C. SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi WHERE nhacsi.tenNhacsi = 'Đỗ Nhuận'

D. 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 3: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ĩ?

A. SELECT tenBannhac, tenCasi FROM bannhac INNER JOIN banthuam ON bannhac.idBannhac = banthuam.idBannhac INNER JOIN casi ON banthuam.idCasi = casi.idCasi

B. SELECT * FROM bannhac, banthuam, casi

C. SELECT tenBannhac, tenCasi FROM bannhac, banthuam, casi WHERE bannhac.idBannhac = banthuam.idBannhac AND banthuam.idCasi = casi.idCasi

D. 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âu 4: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"?

A. SELECT tenBannhac, tenTheloai FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi WHERE nhacsi.tenNhacsi = 'Văn Cao'

B. SELECT bannhac.tenBannhac, bannhac.tenTheloai FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi

C. SELECT bannhac.tenBannhac, nhacsi.tenNhacsi, theloai.tenTheloai FROM bannhac, nhacsi, theloai WHERE nhacsi.tenNhacsi = 'Văn Cao'

D. 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 5: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ĩ?

A. SELECT * FROM banthuam

B. SELECT tenBannhac, tenNhacsi, tenCasi FROM banthuam

C. 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

D. 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 6: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"?

A. SELECT * FROM banthuam WHERE tenCasi = 'Lê Dung' AND tenTheloai = 'Nhạc trữ tình'

B. SELECT tenBannhac, tenTheloai, tenCasi FROM banthuam WHERE tenCasi = 'Lê Dung' AND tenTheloai = 'Nhạc trữ tình'

C. 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'

D. 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 7: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?

A. SELECT tenBannhac FROM bannhac

B. SELECT bannhac.tenBannhac FROM bannhac LEFT JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi WHERE nhacsi.idNhacsi IS NULL

C. SELECT * FROM bannhac

D. 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

Câu 8: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 đỏ"?

A. SELECT * FROM bannhac WHERE tenTheloai = 'Nhạc đỏ'

B. 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 đỏ')

C. SELECT * FROM bannhac INNER JOIN theloai ON bannhac.idTheloai = theloai.idTheloai

D. 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 9: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?

A. SELECT * FROM banthuam WHERE idCasi IS NULL

B. SELECT banthuam.idBanthuam FROM banthuam WHERE idCasi IS NOT EXISTS

C. SELECT banthuam.idBanthuam, bannhac.tenBannhac FROM banthuam LEFT JOIN casi ON banthuam.idCasi = casi.idCasi WHERE casi.idCasi IS NULL

D. 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 10: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?

A. SELECT bannhac.tenBannhac, theloai.tenTheloai FROM bannhac

B. SELECT bannhac.tenBannhac, theloai.tenTheloai FROM bannhac INNER JOIN theloai ON bannhac.idTheloai = theloai.idTheloai

C. SELECT bannhac.tenBannhac, theloai.tenTheloai FROM bannhac LEFT JOIN theloai ON bannhac.idTheloai = theloai.idTheloai

D. 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 1: 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 2: 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

Câu 1: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âu 2: 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.

Câu 3: 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ĩ.

1 2,961 08/08/2026


Xem thêm các chương trình khác: