12+ Đề Trắc Nghiệm Tin Học 11 (Kết Nối Tri Thức) Bài 23: Thực Hành Truy Xuất Dữ Liệu Qua Liên Kết Các Bảng

Đề 01

Đề 02

Đề 03

Đề 04

Đề 05

Đề 06

Đề 07

Đề 08

Đề 09

Đề 10

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 01

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 01 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Giả sử bạn có hai bảng trong cơ sở dữ liệu thư viện: `SACH` (chứa thông tin sách, có khóa ngoại `MaTacGia`) và `TACGIA` (chứa thông tin tác giả, có khóa chính `MaTacGia`). Câu lệnh SQL nào sau đây cho phép bạn truy vấn danh sách tất cả các sách cùng với tên tác giả tương ứng của chúng?

  • A. SELECT SACH.TenSach, TACGIA.TenTacGia FROM SACH, TACGIA WHERE SACH.MaTacGia = TACGIA.MaTacGia;
  • B. SELECT SACH.TenSach, TACGIA.TenTacGia FROM SACH LEFT JOIN TACGIA ON SACH.MaTacGia = TACGIA.MaTacGia;
  • C. SELECT SACH.TenSach, TACGIA.TenTacGia FROM SACH INNER JOIN TACGIA ON SACH.MaTacGia = TACGIA.MaTacGia;
  • D. SELECT SACH.TenSach, TACGIA.TenTacGia FROM SACH WHERE MaTacGia IN (SELECT MaTacGia FROM TACGIA);

Câu 2: Vẫn sử dụng hai bảng `SACH` và `TACGIA` như Câu 1. Nếu bạn chỉ muốn lấy danh sách các sách được viết bởi tác giả có `MaTacGia` là "TG001", câu lệnh SQL nào là đúng?

  • A. SELECT SACH.TenSach, TACGIA.TenTacGia FROM SACH INNER JOIN TACGIA ON SACH.MaTacGia = TACGIA.MaTacGia WHERE TACGIA.MaTacGia = "TG001";
  • B. SELECT SACH.TenSach, TACGIA.TenTacGia FROM SACH WHERE SACH.MaTacGia = "TG001";
  • C. SELECT TenSach, TenTacGia FROM SACH, TACGIA WHERE SACH.MaTacGia = TACGIA.MaTacGia AND MaTacGia = "TG001";
  • D. SELECT SACH.TenSach, TACGIA.TenTacGia FROM SACH LEFT JOIN TACGIA ON SACH.MaTacGia = TACGIA.MaTacGia WHERE SACH.MaTacGia = "TG001";

Câu 3: Giả sử bạn có bảng `SACH` (có `MaSach`, `TenSach`, `MaTacGia`, `MaNXB`) và bảng `NHAXUATBAN` (có `MaNXB`, `TenNXB`). Bạn muốn lấy danh sách tên sách và tên nhà xuất bản của chúng. Câu lệnh SQL nào thực hiện điều này?

  • A. SELECT TenSach, TenNXB FROM SACH, NHAXUATBAN;
  • B. SELECT SACH.TenSach, NHAXUATBAN.TenNXB FROM SACH WHERE SACH.MaNXB = NHAXUATBAN.MaNXB;
  • C. SELECT SACH.TenSach, NHAXUATBAN.TenNXB FROM SACH LEFT JOIN NHAXUATBAN ON SACH.MaTacGia = NHAXUATBAN.MaNXB;
  • D. SELECT SACH.TenSach, NHAXUATBAN.TenNXB FROM SACH INNER JOIN NHAXUATBAN ON SACH.MaNXB = NHAXUATBAN.MaNXB;

Câu 4: Để truy vấn tên sách và tên tác giả, bạn sử dụng câu lệnh: `SELECT S.TenSach, TG.TenTacGia FROM SACH S INNER JOIN TACGIA TG ON S.MaTacGia = TG.MaTacGia;`. Việc sử dụng "S" và "TG" sau tên bảng `SACH` và `TACGIA` được gọi là gì trong SQL?

  • A. Khóa ngoại (Foreign Key)
  • B. Bí danh (Alias)
  • C. Khóa chính (Primary Key)
  • D. Tham chiếu (Reference)

Câu 5: Bạn có các bảng: `MUONSACH` (chứa thông tin mượn sách: `MaMuon`, `MaSach`, `MaDocGia`, `NgayMuon`), `SACH` (chứa thông tin sách: `MaSach`, `TenSach`), và `DOCGIA` (chứa thông tin độc giả: `MaDocGia`, `TenDocGia`). Làm thế nào để truy vấn danh sách các lượt mượn sách bao gồm tên sách và tên độc giả đã mượn?

  • A. SELECT TenSach, TenDocGia FROM MUONSACH, SACH, DOCGIA WHERE MUONSACH.MaSach = SACH.MaSach;
  • B. SELECT S.TenSach, DG.TenDocGia FROM SACH S JOIN DOCGIA DG ON S.MaSach = DG.MaDocGia;
  • C. SELECT S.TenSach, DG.TenDocGia FROM MUONSACH MS INNER JOIN SACH S ON MS.MaSach = S.MaSach INNER JOIN DOCGIA DG ON MS.MaDocGia = DG.MaDocGia;
  • D. SELECT * FROM MUONSACH LEFT JOIN SACH ON MUONSACH.MaSach = SACH.MaSach;

Câu 6: Sử dụng các bảng như Câu 5. Bạn muốn tìm tất cả các sách đã được mượn bởi độc giả có tên "Nguyễn Văn A". Câu lệnh SQL nào là phù hợp nhất?

  • A. SELECT S.TenSach FROM SACH S INNER JOIN DOCGIA DG ON S.MaSach = DG.MaDocGia WHERE DG.TenDocGia = "Nguyễn Văn A";
  • B. SELECT DISTINCT S.TenSach FROM MUONSACH MS INNER JOIN SACH S ON MS.MaSach = S.MaSach INNER JOIN DOCGIA DG ON MS.MaDocGia = DG.MaDocGia WHERE DG.TenDocGia = "Nguyễn Văn A";
  • C. SELECT S.TenSach FROM MUONSACH MS, SACH S, DOCGIA DG WHERE MS.MaSach = S.MaSach AND MS.MaDocGia = DG.MaDocGia AND DG.TenDocGia LIKE "%Nguyễn Văn A%";
  • D. SELECT S.TenSach FROM SACH S WHERE S.MaSach IN (SELECT MaSach FROM MUONSACH WHERE MaDocGia = (SELECT MaDocGia FROM DOCGIA WHERE TenDocGia = "Nguyễn Văn A"));

Câu 7: Trong mô hình thư viện, bảng `SACH` có khóa ngoại `MaTacGia` tham chiếu đến bảng `TACGIA`. Nếu bạn sử dụng `LEFT JOIN` từ bảng `SACH` sang bảng `TACGIA` (`FROM SACH LEFT JOIN TACGIA ON SACH.MaTacGia = TACGIA.MaTacGia`), kết quả truy vấn sẽ chứa những gì?

  • A. Chỉ các sách có thông tin tác giả đầy đủ trong cả hai bảng.
  • B. Chỉ các sách có thông tin tác giả trong bảng `TACGIA`.
  • C. Tất cả các tác giả và sách tương ứng của họ.
  • D. Tất cả các sách, bao gồm cả những sách chưa có thông tin tác giả liên kết trong bảng `TACGIA` (các cột của `TACGIA` sẽ là NULL).

Câu 8: Bạn muốn liệt kê tất cả các tác giả và các sách mà họ đã viết. Nếu một tác giả chưa có sách nào trong bảng `SACH`, bạn vẫn muốn tên tác giả đó xuất hiện trong kết quả. Bạn nên sử dụng loại `JOIN` nào giữa bảng `TACGIA` và `SACH`?

  • A. LEFT JOIN (với `TACGIA` là bảng bên trái)
  • B. INNER JOIN
  • C. RIGHT JOIN (với `TACGIA` là bảng bên trái)
  • D. FULL OUTER JOIN

Câu 9: Phân tích câu lệnh SQL sau: `SELECT DG.TenDocGia, COUNT(MS.MaMuon) AS TongLuotMuon FROM DOCGIA DG LEFT JOIN MUONSACH MS ON DG.MaDocGia = MS.MaDocGia GROUP BY DG.MaDocGia, DG.TenDocGia;`. Kết quả của câu lệnh này là gì?

  • A. Danh sách chỉ các độc giả đã từng mượn sách và tổng số lượt mượn của họ.
  • B. Danh sách tất cả các lượt mượn sách, hiển thị tên độc giả và mã lượt mượn.
  • C. Danh sách tất cả các độc giả và tổng số lượt mượn sách của mỗi độc giả (bao gồm cả độc giả chưa mượn sách).
  • D. Danh sách tất cả các sách đã được mượn và số lần mỗi sách được mượn.

Câu 10: Bạn muốn tìm tất cả các sách chưa được phân loại (tức là cột `MaTheLoai` trong bảng `SACH` là NULL hoặc không có liên kết trong bảng `THELOAI` nếu có bảng này). Giả sử bảng `SACH` có khóa ngoại `MaTheLoai` tham chiếu đến bảng `THELOAI`. Câu lệnh nào có thể giúp bạn làm điều này?

  • A. SELECT * FROM SACH WHERE MaTheLoai IS NULL;
  • B. SELECT S.* FROM SACH S LEFT JOIN THELOAI T ON S.MaTheLoai = T.MaTheLoai WHERE T.MaTheLoai IS NULL;
  • C. SELECT S.* FROM SACH S INNER JOIN THELOAI T ON S.MaTheLoai = T.MaTheLoai WHERE T.MaTheloai IS NULL;
  • D. SELECT * FROM SACH WHERE MaTheLoai NOT IN (SELECT MaTheLoai FROM THELOAI);

Câu 11: Khi thực hiện `INNER JOIN` giữa hai bảng A và B dựa trên điều kiện A.KhoaA = B.KhoaB, kết quả sẽ trả về những hàng nào?

  • A. Các hàng có giá trị trùng khớp trong cột kết nối ở cả hai bảng A và B.
  • B. Tất cả các hàng từ bảng A và các hàng trùng khớp từ bảng B.
  • C. Tất cả các hàng từ bảng B và các hàng trùng khớp từ bảng A.
  • D. Tất cả các hàng từ cả hai bảng A và B.

Câu 12: Cho bảng `SANPHAM` (`MaSP`, `TenSP`, `MaLoai`) và bảng `LOAISANPHAM` (`MaLoai`, `TenLoai`). Câu lệnh `SELECT * FROM SANPHAM S INNER JOIN LOAISANPHAM L ON S.MaLoai = L.MaLoai;` sẽ hiển thị những cột nào trong kết quả?

  • A. Chỉ các cột `MaSP`, `TenSP` từ bảng `SANPHAM`.
  • B. Chỉ các cột `MaLoai`, `TenLoai` từ bảng `LOAISANPHAM`.
  • C. Các cột `MaSP`, `TenSP`, `TenLoai`.
  • D. Tất cả các cột từ cả hai bảng `SANPHAM` (`MaSP`, `TenSP`, `MaLoai`) và `LOAISANPHAM` (`MaLoai`, `TenLoai`).

Câu 13: Bạn muốn lấy danh sách tên sách và tên tác giả cho các sách có năm sinh của tác giả sau năm 1950. Sử dụng bảng `SACH` (`MaSach`, `TenSach`, `MaTacGia`) và `TACGIA` (`MaTacGia`, `TenTacGia`, `NamSinh`). Câu lệnh nào sau đây là đúng?

  • A. SELECT S.TenSach, TG.TenTacGia FROM SACH S INNER JOIN TACGIA TG ON S.MaTacGia = TG.MaTacGia WHERE TG.NamSinh > 1950;
  • B. SELECT S.TenSach, TG.TenTacGia FROM SACH S, TACGIA TG WHERE S.MaTacGia = TG.MaTacGia AND NamSinh > 1950;
  • C. SELECT S.TenSach FROM SACH S WHERE S.MaTacGia IN (SELECT MaTacGia FROM TACGIA WHERE NamSinh > 1950);
  • D. SELECT S.TenSach, TG.TenTacGia FROM SACH S LEFT JOIN TACGIA TG ON S.MaTacGia = TG.MaTacGia WHERE TG.NamSinh > 1950;

Câu 14: Bạn có các bảng `DONHANG` (`MaDH`, `MaKhachHang`, `NgayDH`) và `KHACHHANG` (`MaKhachHang`, `TenKhachHang`, `DiaChi`). Bạn muốn lấy danh sách tất cả các đơn hàng cùng với tên khách hàng tương ứng. Câu lệnh SQL nào thực hiện điều này?

  • A. SELECT * FROM DONHANG WHERE MaKhachHang = KHACHHANG.MaKhachHang;
  • B. SELECT DH.MaDH, KH.TenKhachHang FROM DONHANG DH, KHACHHANG KH;
  • C. SELECT DH.MaDH, KH.TenKhachHang FROM DONHANG DH INNER JOIN KHACHHANG KH ON DH.MaKhachHang = KH.MaKhachHang;
  • D. SELECT DH.MaDH, KH.TenKhachHang FROM DONHANG DH LEFT JOIN KHACHHANG KH ON DH.MaKhachHang = KH.MaKhachHang;

Câu 15: Sử dụng các bảng `DONHANG` và `KHACHHANG` như Câu 14. Bạn muốn tìm tất cả các khách hàng chưa từng đặt đơn hàng nào. Câu lệnh SQL nào là phù hợp?

  • A. SELECT KH.TenKhachHang FROM KHACHHANG KH INNER JOIN DONHANG DH ON KH.MaKhachHang = DH.MaKhachHang WHERE DH.MaDH IS NULL;
  • B. SELECT KH.TenKhachHang FROM KHACHHANG KH WHERE KH.MaKhachHang NOT IN (SELECT MaKhachHang FROM DONHANG);
  • C. SELECT KH.TenKhachHang FROM KHACHHANG KH RIGHT JOIN DONHANG DH ON KH.MaKhachHang = DH.MaKhachHang WHERE KH.MaKhachHang IS NULL;
  • D. SELECT KH.TenKhachHang FROM KHACHHANG KH LEFT JOIN DONHANG DH ON KH.MaKhachHang = DH.MaKhachHang WHERE DH.MaDH IS NULL;

Câu 16: Bạn có bảng `NHANVIEN` (`MaNV`, `TenNV`, `MaPhong`) và `PHONGBAN` (`MaPhong`, `TenPhong`). Bạn muốn lấy danh sách tất cả nhân viên và tên phòng ban của họ. Nếu một nhân viên chưa được phân công vào phòng ban nào (MaPhong là NULL), bạn vẫn muốn liệt kê tên nhân viên đó. Loại JOIN nào bạn nên sử dụng?

  • A. LEFT JOIN (với `NHANVIEN` là bảng bên trái)
  • B. INNER JOIN
  • C. RIGHT JOIN (với `NHANVIEN` là bảng bên trái)
  • D. FULL OUTER JOIN

Câu 17: Giả sử bạn có các bảng: `HOCSINH` (`MaHS`, `TenHS`, `MaLop`), `LOP` (`MaLop`, `TenLop`), và `MONHOC` (`MaMH`, `TenMH`). Mối quan hệ giữa học sinh và môn học được lưu trong bảng `DIEM` (`MaHS`, `MaMH`, `Diem`). Làm thế nào để truy vấn danh sách điểm của học sinh, hiển thị tên học sinh, tên môn học và điểm?

  • A. SELECT HS.TenHS, MH.TenMH, D.Diem FROM HOCSINH HS, MONHOC MH, DIEM D WHERE HS.MaHS = D.MaHS;
  • B. SELECT HS.TenHS, MH.TenMH, D.Diem FROM DIEM D INNER JOIN HOCSINH HS ON D.MaHS = HS.MaHS INNER JOIN MONHOC MH ON D.MaMH = MH.MaMH;
  • C. SELECT TenHS, TenMH, Diem FROM DIEM LEFT JOIN HOCSINH ON DIEM.MaHS = HOCSINH.MaHS;
  • D. SELECT * FROM HOCSINH JOIN MONHOC ON HOCSINH.MaLop = MONHOC.MaMH;

Câu 18: Sử dụng các bảng như Câu 17. Bạn muốn tìm tất cả các môn học mà học sinh có `MaHS` là "HS005" đã có điểm. Câu lệnh SQL nào là đúng?

  • A. SELECT MH.TenMH FROM MONHOC MH WHERE MH.MaMH IN (SELECT MaMH FROM DIEM WHERE MaHS = "HS005");
  • B. SELECT MH.TenMH FROM DIEM D INNER JOIN MONHOC MH ON D.MaMH = MH.MaMH WHERE HOCSINH.MaHS = "HS005";
  • C. SELECT DISTINCT MH.TenMH FROM DIEM D INNER JOIN MONHOC MH ON D.MaMH = MH.MaMH WHERE D.MaHS = "HS005";
  • D. SELECT MH.TenMH FROM DIEM D, MONHOC MH WHERE D.MaMH = MH.MaMH AND D.MaHS = "HS005";

Câu 19: Khi kết nối hai bảng A và B bằng `INNER JOIN` trên điều kiện A.ID = B.ID, nếu có một hàng trong bảng A có ID không tồn tại trong bảng B, thì hàng đó sẽ:

  • A. Vẫn xuất hiện trong kết quả, với các cột từ bảng B có giá trị NULL.
  • B. Vẫn xuất hiện trong kết quả, với các cột từ bảng B rỗng.
  • C. Gây ra lỗi cú pháp.
  • D. Không xuất hiện trong kết quả truy vấn.

Câu 20: Bạn muốn lấy danh sách tên sách và tên nhà xuất bản của những cuốn sách được xuất bản bởi "Nhà Xuất Bản Giáo Dục". Sử dụng bảng `SACH` (`MaSach`, `TenSach`, `MaNXB`) và `NHAXUATBAN` (`MaNXB`, `TenNXB`). Câu lệnh nào là đúng?

  • A. SELECT S.TenSach, NXB.TenNXB FROM SACH S INNER JOIN NHAXUATBAN NXB ON S.MaNXB = NXB.MaNXB WHERE NXB.TenNXB = "Nhà Xuất Bản Giáo Dục";
  • B. SELECT S.TenSach, NXB.TenNXB FROM SACH S, NHAXUATBAN NXB WHERE S.MaNXB = NXB.MaNXB AND TenNXB = "Nhà Xuất Bản Giáo Dục";
  • C. SELECT S.TenSach FROM SACH S WHERE S.MaNXB = (SELECT MaNXB FROM NHAXUATBAN WHERE TenNXB = "Nhà Xuất Bản Giáo Dục");
  • D. SELECT S.TenSach, NXB.TenNXB FROM SACH S LEFT JOIN NHAXUATBAN NXB ON S.MaNXB = NXB.MaNXB WHERE NXB.TenNXB = "Nhà Xuất Bản Giáo Dục";

Câu 21: Phân tích cú pháp `ON SACH.MaTacGia = TACGIA.MaTacGia` trong câu lệnh `JOIN`. Cú pháp này có ý nghĩa gì?

  • A. Đây là điều kiện lọc dữ liệu sau khi kết nối.
  • B. Đây là điều kiện để kết nối các hàng từ hai bảng `SACH` và `TACGIA`.
  • C. Đây là cách chọn các cột sẽ hiển thị trong kết quả.
  • D. Đây là cách sắp xếp kết quả truy vấn.

Câu 22: Khi sử dụng bí danh (alias) cho tên bảng trong câu lệnh JOIN, ví dụ `SACH S`, bạn bắt buộc phải sử dụng bí danh đó khi tham chiếu đến các cột của bảng `SACH` trong các mệnh đề nào sau đây?

  • A. Chỉ trong mệnh đề `SELECT`.
  • B. Chỉ trong mệnh đề `ON` và `WHERE`.
  • C. Chỉ trong mệnh đề `SELECT` và `ON`.
  • D. Trong tất cả các mệnh đề tham chiếu đến cột của bảng đó (SELECT, ON, WHERE, v.v.).

Câu 23: Bạn muốn lấy danh sách tất cả các sách và, nếu có, tên độc giả cuối cùng đã mượn cuốn sách đó cùng với ngày mượn. Sử dụng bảng `SACH` (`MaSach`, `TenSach`) và `MUONSACH` (`MaMuon`, `MaSach`, `MaDocGia`, `NgayMuon`), `DOCGIA` (`MaDocGia`, `TenDocGia`). Loại JOIN nào là phù hợp nhất để đảm bảo tất cả sách đều được liệt kê?

  • A. LEFT JOIN từ `SACH` sang `MUONSACH`, sau đó tiếp tục LEFT JOIN sang `DOCGIA`.
  • B. INNER JOIN giữa cả ba bảng.
  • C. RIGHT JOIN từ `SACH` sang `MUONSACH`.
  • D. Sử dụng truy vấn con (subquery) trong mệnh đề WHERE.

Câu 24: Kết quả của câu lệnh `SELECT S.TenSach, TG.TenTacGia FROM SACH S LEFT JOIN TACGIA TG ON S.MaTacGia = TG.MaTacGia WHERE TG.MaTacGia IS NOT NULL;` là gì?

  • A. Tất cả các sách, bao gồm cả sách chưa có tác giả.
  • B. Chỉ các tác giả chưa có sách nào.
  • C. Chỉ các sách có thông tin tác giả đầy đủ (tương đương với INNER JOIN).
  • D. Tất cả các sách và tất cả các tác giả.

Câu 25: Trong SQL, mục đích chính của việc liên kết (JOIN) các bảng là gì?

  • A. Để xóa dữ liệu trùng lặp giữa các bảng.
  • B. Để tạo ra các bảng mới từ dữ liệu hiện có.
  • C. Để thêm dữ liệu mới vào cơ sở dữ liệu.
  • D. Để kết hợp dữ liệu từ hai hay nhiều bảng dựa trên mối quan hệ giữa chúng.

Câu 26: Khi nào thì nên cân nhắc sử dụng `LEFT JOIN` thay vì `INNER JOIN`?

  • A. Khi bạn muốn bao gồm tất cả các hàng từ một bảng cụ thể (bảng "trái"), ngay cả khi không có hàng trùng khớp trong bảng còn lại.
  • B. Khi bạn chỉ muốn lấy các hàng có giá trị trùng khớp ở cả hai bảng.
  • C. Khi bạn muốn thêm dữ liệu mới vào bảng.
  • D. Khi bạn muốn sắp xếp kết quả truy vấn.

Câu 27: Bạn có bảng `SANPHAM` (`MaSP`, `TenSP`, `Gia`) và `CHITIETDONHANG` (`MaDH`, `MaSP`, `SoLuong`). Bạn muốn tính tổng số lượng bán được cho mỗi sản phẩm. Câu lệnh SQL nào sau đây là đúng để thực hiện việc này bằng cách kết nối hai bảng?

  • A. SELECT TenSP, SUM(SoLuong) FROM SANPHAM, CHITIETDONHANG GROUP BY TenSP;
  • B. SELECT S.TenSP, SUM(CT.SoLuong) FROM SANPHAM S LEFT JOIN CHITIETDONHANG CT ON S.MaSP = CT.MaSP;
  • C. SELECT S.TenSP, SUM(CT.SoLuong) AS TongSoLuong FROM SANPHAM S INNER JOIN CHITIETDONHANG CT ON S.MaSP = CT.MaSP GROUP BY S.MaSP, S.TenSP;
  • D. SELECT S.TenSP, CT.SoLuong FROM SANPHAM S INNER JOIN CHITIETDONHANG CT ON S.MaSP = CT.MaSP;

Câu 28: Giả sử bạn có bảng `NHANVIEN` (`MaNV`, `TenNV`, `MaQuanLy`) trong đó `MaQuanLy` là khóa ngoại tham chiếu đến chính bảng `NHANVIEN` (Quan hệ tự liên kết - self-join). Bạn muốn lấy danh sách nhân viên cùng với tên của người quản lý trực tiếp của họ. Câu lệnh nào sau đây là đúng?

  • A. SELECT NV.TenNV AS TenNhanVien, QL.TenNV AS TenQuanLy FROM NHANVIEN NV LEFT JOIN NHANVIEN QL ON NV.MaQuanLy = QL.MaNV;
  • B. SELECT TenNV, TenQuanLy FROM NHANVIEN WHERE MaNV = MaQuanLy;
  • C. SELECT NV.TenNV, QL.TenNV FROM NHANVIEN NV INNER JOIN NHANVIEN QL ON NV.MaNV = QL.MaQuanLy;
  • D. SELECT * FROM NHANVIEN WHERE MaQuanLy IS NOT NULL;

Câu 29: Phân tích câu lệnh: `SELECT S.TenSach FROM SACH S WHERE EXISTS (SELECT 1 FROM MUONSACH MS WHERE MS.MaSach = S.MaSach);`. Câu lệnh này có ý nghĩa tương đương với loại JOIN nào?

  • A. LEFT JOIN
  • B. INNER JOIN
  • C. RIGHT JOIN
  • D. FULL OUTER JOIN

Câu 30: Bạn có bảng `SANPHAM` (`MaSP`, `TenSP`) và `GIA` (`MaSP`, `NgayApDung`, `DonGia`). Mỗi sản phẩm có thể có nhiều mức giá khác nhau áp dụng vào các ngày khác nhau. Bạn muốn lấy tên sản phẩm và đơn giá mới nhất của mỗi sản phẩm. Việc này thường đòi hỏi kỹ thuật JOIN kết hợp với việc tìm giá trị "mới nhất" (có thể dùng truy vấn con hoặc hàm cửa sổ). Đây là một ví dụ về việc kết hợp JOIN với kỹ thuật truy vấn phức tạp hơn để giải quyết vấn đề thực tế. Điều này minh họa kỹ năng nào khi làm việc với cơ sở dữ liệu liên kết?

  • A. Chỉ đơn thuần ghi nhớ cú pháp JOIN.
  • B. Khả năng nhập dữ liệu vào các bảng liên kết.
  • C. Khả năng tạo mối quan hệ giữa các bảng.
  • D. Khả năng áp dụng và kết hợp JOIN với các kỹ thuật truy vấn khác để giải quyết vấn đề phức tạp.

1 / 30

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

Tags: Bộ đề 01

Câu 1: Giả sử bạn có hai bảng trong cơ sở dữ liệu thư viện: `SACH` (chứa thông tin sách, có khóa ngoại `MaTacGia`) và `TACGIA` (chứa thông tin tác giả, có khóa chính `MaTacGia`). Câu lệnh SQL nào sau đây cho phép bạn truy vấn danh sách tất cả các sách cùng với tên tác giả tương ứng của chúng?

2 / 30

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

Tags: Bộ đề 01

Câu 2: Vẫn sử dụng hai bảng `SACH` và `TACGIA` như Câu 1. Nếu bạn chỉ muốn lấy danh sách các sách được viết bởi tác giả có `MaTacGia` là 'TG001', câu lệnh SQL nào là đúng?

3 / 30

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

Tags: Bộ đề 01

Câu 3: Giả sử bạn có bảng `SACH` (có `MaSach`, `TenSach`, `MaTacGia`, `MaNXB`) và bảng `NHAXUATBAN` (có `MaNXB`, `TenNXB`). Bạn muốn lấy danh sách tên sách và tên nhà xuất bản của chúng. Câu lệnh SQL nào thực hiện điều này?

4 / 30

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

Tags: Bộ đề 01

Câu 4: Để truy vấn tên sách và tên tác giả, bạn sử dụng câu lệnh: `SELECT S.TenSach, TG.TenTacGia FROM SACH S INNER JOIN TACGIA TG ON S.MaTacGia = TG.MaTacGia;`. Việc sử dụng 'S' và 'TG' sau tên bảng `SACH` và `TACGIA` được gọi là gì trong SQL?

5 / 30

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

Tags: Bộ đề 01

Câu 5: Bạn có các bảng: `MUONSACH` (chứa thông tin mượn sách: `MaMuon`, `MaSach`, `MaDocGia`, `NgayMuon`), `SACH` (chứa thông tin sách: `MaSach`, `TenSach`), và `DOCGIA` (chứa thông tin độc giả: `MaDocGia`, `TenDocGia`). Làm thế nào để truy vấn danh sách các lượt mượn sách bao gồm tên sách và tên độc giả đã mượn?

6 / 30

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

Tags: Bộ đề 01

Câu 6: Sử dụng các bảng như Câu 5. Bạn muốn tìm tất cả các sách đã được mượn bởi độc giả có tên 'Nguyễn Văn A'. Câu lệnh SQL nào là phù hợp nhất?

7 / 30

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

Tags: Bộ đề 01

Câu 7: Trong mô hình thư viện, bảng `SACH` có khóa ngoại `MaTacGia` tham chiếu đến bảng `TACGIA`. Nếu bạn sử dụng `LEFT JOIN` từ bảng `SACH` sang bảng `TACGIA` (`FROM SACH LEFT JOIN TACGIA ON SACH.MaTacGia = TACGIA.MaTacGia`), kết quả truy vấn sẽ chứa những gì?

8 / 30

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

Tags: Bộ đề 01

Câu 8: Bạn muốn liệt kê tất cả các tác giả và các sách mà họ đã viết. Nếu một tác giả chưa có sách nào trong bảng `SACH`, bạn vẫn muốn tên tác giả đó xuất hiện trong kết quả. Bạn nên sử dụng loại `JOIN` nào giữa bảng `TACGIA` và `SACH`?

9 / 30

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

Tags: Bộ đề 01

Câu 9: Phân tích câu lệnh SQL sau: `SELECT DG.TenDocGia, COUNT(MS.MaMuon) AS TongLuotMuon FROM DOCGIA DG LEFT JOIN MUONSACH MS ON DG.MaDocGia = MS.MaDocGia GROUP BY DG.MaDocGia, DG.TenDocGia;`. Kết quả của câu lệnh này là gì?

10 / 30

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

Tags: Bộ đề 01

Câu 10: Bạn muốn tìm tất cả các sách chưa được phân loại (tức là cột `MaTheLoai` trong bảng `SACH` là NULL hoặc không có liên kết trong bảng `THELOAI` nếu có bảng này). Giả sử bảng `SACH` có khóa ngoại `MaTheLoai` tham chiếu đến bảng `THELOAI`. Câu lệnh nào có thể giúp bạn làm điều này?

11 / 30

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

Tags: Bộ đề 01

Câu 11: Khi thực hiện `INNER JOIN` giữa hai bảng A và B dựa trên điều kiện A.KhoaA = B.KhoaB, kết quả sẽ trả về những hàng nào?

12 / 30

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

Tags: Bộ đề 01

Câu 12: Cho bảng `SANPHAM` (`MaSP`, `TenSP`, `MaLoai`) và bảng `LOAISANPHAM` (`MaLoai`, `TenLoai`). Câu lệnh `SELECT * FROM SANPHAM S INNER JOIN LOAISANPHAM L ON S.MaLoai = L.MaLoai;` sẽ hiển thị những cột nào trong kết quả?

13 / 30

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

Tags: Bộ đề 01

Câu 13: Bạn muốn lấy danh sách tên sách và tên tác giả cho các sách có năm sinh của tác giả sau năm 1950. Sử dụng bảng `SACH` (`MaSach`, `TenSach`, `MaTacGia`) và `TACGIA` (`MaTacGia`, `TenTacGia`, `NamSinh`). Câu lệnh nào sau đây là đúng?

14 / 30

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

Tags: Bộ đề 01

Câu 14: Bạn có các bảng `DONHANG` (`MaDH`, `MaKhachHang`, `NgayDH`) và `KHACHHANG` (`MaKhachHang`, `TenKhachHang`, `DiaChi`). Bạn muốn lấy danh sách tất cả các đơn hàng cùng với tên khách hàng tương ứng. Câu lệnh SQL nào thực hiện điều này?

15 / 30

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

Tags: Bộ đề 01

Câu 15: Sử dụng các bảng `DONHANG` và `KHACHHANG` như Câu 14. Bạn muốn tìm tất cả các khách hàng chưa từng đặt đơn hàng nào. Câu lệnh SQL nào là phù hợp?

16 / 30

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

Tags: Bộ đề 01

Câu 16: Bạn có bảng `NHANVIEN` (`MaNV`, `TenNV`, `MaPhong`) và `PHONGBAN` (`MaPhong`, `TenPhong`). Bạn muốn lấy danh sách tất cả nhân viên và tên phòng ban của họ. Nếu một nhân viên chưa được phân công vào phòng ban nào (MaPhong là NULL), bạn vẫn muốn liệt kê tên nhân viên đó. Loại JOIN nào bạn nên sử dụng?

17 / 30

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

Tags: Bộ đề 01

Câu 17: Giả sử bạn có các bảng: `HOCSINH` (`MaHS`, `TenHS`, `MaLop`), `LOP` (`MaLop`, `TenLop`), và `MONHOC` (`MaMH`, `TenMH`). Mối quan hệ giữa học sinh và môn học được lưu trong bảng `DIEM` (`MaHS`, `MaMH`, `Diem`). Làm thế nào để truy vấn danh sách điểm của học sinh, hiển thị tên học sinh, tên môn học và điểm?

18 / 30

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

Tags: Bộ đề 01

Câu 18: Sử dụng các bảng như Câu 17. Bạn muốn tìm tất cả các môn học mà học sinh có `MaHS` là 'HS005' đã có điểm. Câu lệnh SQL nào là đúng?

19 / 30

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

Tags: Bộ đề 01

Câu 19: Khi kết nối hai bảng A và B bằng `INNER JOIN` trên điều kiện A.ID = B.ID, nếu có một hàng trong bảng A có ID không tồn tại trong bảng B, thì hàng đó sẽ:

20 / 30

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

Tags: Bộ đề 01

Câu 20: Bạn muốn lấy danh sách tên sách và tên nhà xuất bản của những cuốn sách được xuất bản bởi 'Nhà Xuất Bản Giáo Dục'. Sử dụng bảng `SACH` (`MaSach`, `TenSach`, `MaNXB`) và `NHAXUATBAN` (`MaNXB`, `TenNXB`). Câu lệnh nào là đúng?

21 / 30

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

Tags: Bộ đề 01

Câu 21: Phân tích cú pháp `ON SACH.MaTacGia = TACGIA.MaTacGia` trong câu lệnh `JOIN`. Cú pháp này có ý nghĩa gì?

22 / 30

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

Tags: Bộ đề 01

Câu 22: Khi sử dụng bí danh (alias) cho tên bảng trong câu lệnh JOIN, ví dụ `SACH S`, bạn bắt buộc phải sử dụng bí danh đó khi tham chiếu đến các cột của bảng `SACH` trong các mệnh đề nào sau đây?

23 / 30

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

Tags: Bộ đề 01

Câu 23: Bạn muốn lấy danh sách tất cả các sách và, nếu có, tên độc giả cuối cùng đã mượn cuốn sách đó cùng với ngày mượn. Sử dụng bảng `SACH` (`MaSach`, `TenSach`) và `MUONSACH` (`MaMuon`, `MaSach`, `MaDocGia`, `NgayMuon`), `DOCGIA` (`MaDocGia`, `TenDocGia`). Loại JOIN nào là phù hợp nhất để đảm bảo tất cả sách đều được liệt kê?

24 / 30

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

Tags: Bộ đề 01

Câu 24: Kết quả của câu lệnh `SELECT S.TenSach, TG.TenTacGia FROM SACH S LEFT JOIN TACGIA TG ON S.MaTacGia = TG.MaTacGia WHERE TG.MaTacGia IS NOT NULL;` là gì?

25 / 30

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

Tags: Bộ đề 01

Câu 25: Trong SQL, mục đích chính của việc liên kết (JOIN) các bảng là gì?

26 / 30

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

Tags: Bộ đề 01

Câu 26: Khi nào thì nên cân nhắc sử dụng `LEFT JOIN` thay vì `INNER JOIN`?

27 / 30

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

Tags: Bộ đề 01

Câu 27: Bạn có bảng `SANPHAM` (`MaSP`, `TenSP`, `Gia`) và `CHITIETDONHANG` (`MaDH`, `MaSP`, `SoLuong`). Bạn muốn tính tổng số lượng bán được cho mỗi sản phẩm. Câu lệnh SQL nào sau đây là đúng để thực hiện việc này bằng cách kết nối hai bảng?

28 / 30

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

Tags: Bộ đề 01

Câu 28: Giả sử bạn có bảng `NHANVIEN` (`MaNV`, `TenNV`, `MaQuanLy`) trong đó `MaQuanLy` là khóa ngoại tham chiếu đến chính bảng `NHANVIEN` (Quan hệ tự liên kết - self-join). Bạn muốn lấy danh sách nhân viên cùng với tên của người quản lý trực tiếp của họ. Câu lệnh nào sau đây là đúng?

29 / 30

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

Tags: Bộ đề 01

Câu 29: Phân tích câu lệnh: `SELECT S.TenSach FROM SACH S WHERE EXISTS (SELECT 1 FROM MUONSACH MS WHERE MS.MaSach = S.MaSach);`. Câu lệnh này có ý nghĩa tương đương với loại JOIN nào?

30 / 30

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

Tags: Bộ đề 01

Câu 30: Bạn có bảng `SANPHAM` (`MaSP`, `TenSP`) và `GIA` (`MaSP`, `NgayApDung`, `DonGia`). Mỗi sản phẩm có thể có nhiều mức giá khác nhau áp dụng vào các ngày khác nhau. Bạn muốn lấy tên sản phẩm và đơn giá mới nhất của mỗi sản phẩm. Việc này thường đòi hỏi kỹ thuật JOIN kết hợp với việc tìm giá trị 'mới nhất' (có thể dùng truy vấn con hoặc hàm cửa sổ). Đây là một ví dụ về việc kết hợp JOIN với kỹ thuật truy vấn phức tạp hơn để giải quyết vấn đề thực tế. Điều này minh họa kỹ năng nào khi làm việc với cơ sở dữ liệu liên kết?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 02

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 02 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong cơ sở dữ liệu quản lý âm nhạc với các bảng `bannhac` (idBannhac, tenBannhac, idNhacsi), `nhacsi` (idNhacsi, tenNhacsi), bạn muốn lấy danh sách tên bản nhạc cùng với tên nhạc sĩ sáng tác. Câu lệnh SQL nào sau đây thực hiện được yêu cầu này một cách hiệu quả?

  • A. SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac, nhacsi WHERE bannhac.idBannhac = nhacsi.idNhacsi;
  • B. SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac LEFT JOIN nhacsi ON bannhac.idBannhac = nhacsi.idNhacsi;
  • C. SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;
  • D. SELECT tenBannhac, tenNhacsi FROM bannhac, nhacsi;

Câu 2: Vẫn sử dụng cơ sở dữ liệu quản lý âm nhạc (bảng `bannhac`, `nhacsi`). Bạn muốn tìm tất cả các bản nhạc không có thông tin nhạc sĩ liên kết trong bảng `nhacsi`. Câu lệnh SQL nào sau đây là đúng?

  • A. SELECT tenBannhac FROM bannhac WHERE idNhacsi IS NULL;
  • B. SELECT bannhac.tenBannhac FROM bannhac LEFT JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi WHERE nhacsi.idNhacsi IS NULL;
  • C. SELECT bannhac.tenBannhac FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi WHERE nhacsi.idNhacsi IS NULL;
  • D. SELECT bannhac.tenBannhac FROM bannhac WHERE idNhacsi NOT IN (SELECT idNhacsi FROM nhacsi);

Câu 3: Giả sử bạn có thêm bảng `theloai` (idTheloai, tenTheloai) liên kết với bảng `bannhac` qua khóa ngoại `idTheloai`. Bạn muốn lấy danh sách tên bản nhạc và tên thể loại của chúng. Câu lệnh nào sau đây là đúng?

  • A. SELECT tenBannhac, tenTheloai FROM bannhac, theloai WHERE bannhac.idBannhac = theloai.idTheloai;
  • B. SELECT bannhac.tenBannhac, theloai.tenTheloai FROM bannhac WHERE bannhac.idTheloai = theloai.idTheloai;
  • C. SELECT bannhac., theloai. FROM bannhac INNER JOIN theloai ON bannhac.idTheloai = theloai.idTheloai;
  • D. SELECT bannhac.tenBannhac, theloai.tenTheloai FROM bannhac INNER JOIN theloai ON bannhac.idTheloai = theloai.idTheloai;

Câu 4: Để truy vấn danh sách các bản thu âm, bao gồm tên bản nhạc, tên nhạc sĩ và tên ca sĩ thể hiện, từ các bảng `banthuam` (idBanthuam, idBannhac, idCasi), `bannhac` (idBannhac, tenBannhac, idNhacsi), `nhacsi` (idNhacsi, tenNhacsi), và `casi` (idCasi, tenCasi), bạn cần thực hiện bao nhiêu phép nối (JOIN)?

  • A. 1
  • B. 2
  • C. 3
  • D. 4

Câu 5: Xem xét câu lệnh SQL sau: `SELECT B.tenBannhac, NS.tenNhacsi FROM bannhac AS B INNER JOIN nhacsi AS NS ON B.idNhacsi = NS.idNhacsi;` Mục đích của việc sử dụng `AS B` và `AS NS` trong câu lệnh này là gì?

  • A. Đặt bí danh (alias) cho các bảng để câu lệnh ngắn gọn và dễ đọc hơn.
  • B. Chỉ định rằng các bảng này là bảng chính trong truy vấn.
  • C. Bắt buộc phải sử dụng khi thực hiện phép nối INNER JOIN.
  • D. Đánh dấu các bảng cần được sắp xếp trước khi nối.

Câu 6: Bạn muốn lấy danh sách tên bản nhạc và tên ca sĩ đã thu âm bản nhạc đó. Dữ liệu cần thiết nằm trong các bảng `banthuam` (idBanthuam, idBannhac, idCasi), `bannhac` (idBannhac, tenBannhac), và `casi` (idCasi, tenCasi). Câu lệnh SQL nào sau đây là đúng?

  • A. SELECT T1.tenBannhac, T2.tenCasi FROM bannhac AS T1, casi AS T2 WHERE T1.idBannhac = T2.idCasi;
  • B. SELECT B.tenBannhac, C.tenCasi FROM banthuam BT LEFT JOIN bannhac B ON BT.idBannhac = B.idBannhac LEFT JOIN casi C ON BT.idCasi = C.idCasi;
  • C. SELECT B.tenBannhac, C.tenCasi FROM banthuam BT INNER JOIN bannhac B ON BT.idBannhac = B.idBannhac INNER JOIN casi C ON BT.idCasi = C.idCasi;
  • D. SELECT B.tenBannhac, C.tenCasi FROM banthuam, bannhac, casi WHERE banthuam.idBannhac = bannhac.idBannhac AND banthuam.idCasi = casi.idCasi;

Câu 7: Giả sử bạn muốn lấy danh sách tất cả nhạc sĩ và số lượng bản nhạc mà mỗi nhạc sĩ đã sáng tác. Bạn cần sử dụng các bảng `nhacsi` và `bannhac`. Ngoài phép nối, bạn cần sử dụng thêm mệnh đề SQL nào để nhóm các bản nhạc theo nhạc sĩ và đếm?

  • A. GROUP BY và COUNT
  • B. ORDER BY và SUM
  • C. HAVING và AVG
  • D. WHERE và COUNT

Câu 8: Cho câu lệnh: `SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac LEFT JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;` Kết quả của câu lệnh này sẽ bao gồm những bản nhạc nào?

  • A. Tất cả các bản nhạc, kể cả những bản nhạc không có nhạc sĩ liên kết.
  • B. Chỉ những bản nhạc có nhạc sĩ liên kết.
  • C. Tất cả các nhạc sĩ, kể cả những nhạc sĩ không có bản nhạc nào.
  • D. Chỉ những bản nhạc và nhạc sĩ có liên kết ở cả hai bảng.

Câu 9: Để lấy danh sách tên bản nhạc và tên thể loại của những bản nhạc thuộc thể loại "Nhạc Trữ Tình", sử dụng các bảng `bannhac` và `theloai`. Câu lệnh nào sau đây là đúng?

  • A. SELECT tenBannhac, tenTheloai FROM bannhac WHERE tenTheloai = "Nhạc Trữ Tình";
  • B. SELECT B.tenBannhac, T.tenTheloai FROM bannhac B INNER JOIN theloai T ON B.idTheloai = T.idTheloai WHERE T.tenTheloai = "Nhạc Trữ Tình";
  • C. SELECT B.tenBannhac, T.tenTheloai FROM bannhac B LEFT JOIN theloai T ON B.idTheloai = T.idTheloai WHERE T.tenTheloai = "Nhạc Trữ Tình";
  • D. SELECT B.tenBannhac, T.tenTheloai FROM bannhac B, theloai T WHERE B.idTheloai = T.idTheloai AND B.tenTheloai = "Nhạc Trữ Tình";

Câu 10: Trong phép nối nhiều bảng (`banthuam`, `bannhac`, `nhacsi`, `casi`), nếu một bản thu âm không có thông tin ca sĩ liên kết (ví dụ: idCasi trong banthuam là NULL hoặc không tồn tại trong casi), sử dụng INNER JOIN giữa `banthuam` và `casi` sẽ ảnh hưởng đến kết quả như thế nào?

  • A. Bản thu âm đó vẫn xuất hiện, với tên ca sĩ là NULL.
  • B. Bản thu âm đó vẫn xuất hiện, với cột tên ca sĩ bị bỏ trống.
  • C. Truy vấn sẽ báo lỗi.
  • D. Bản thu âm đó sẽ không xuất hiện trong kết quả.

Câu 11: Để lấy danh sách tên ca sĩ và số lượng bản thu âm mà mỗi ca sĩ đã thực hiện, sử dụng các bảng `casi` và `banthuam`. Câu lệnh SQL nào là phù hợp nhất?

  • A. SELECT C.tenCasi, COUNT(BT.idBanthuam) FROM casi C LEFT JOIN banthuam BT ON C.idCasi = BT.idCasi GROUP BY C.tenCasi;
  • B. SELECT C.tenCasi, COUNT(*) FROM casi C INNER JOIN banthuam BT ON C.idCasi = BT.idCasi GROUP BY C.tenCasi;
  • C. SELECT tenCasi, COUNT(*) FROM banthuam GROUP BY tenCasi;
  • D. SELECT C.tenCasi, COUNT(BT.idBanthuam) FROM casi C, banthuam BT WHERE C.idCasi = BT.idCasi GROUP BY C.tenCasi;

Câu 12: Bạn muốn lấy danh sách các bản nhạc có tên chứa từ "tình" và tên nhạc sĩ sáng tác. Sử dụng các bảng `bannhac` và `nhacsi`. Câu lệnh nào sau đây là đúng?

  • A. SELECT B.tenBannhac, NS.tenNhacsi FROM bannhac B, nhacsi NS WHERE B.idNhacsi = NS.idNhacsi AND B.tenBannhac = "%tình%";
  • B. SELECT B.tenBannhac, NS.tenNhacsi FROM bannhac B INNER JOIN nhacsi NS ON B.idNhacsi = NS.idNhacsi WHERE B.tenBannhac LIKE "tình%";
  • C. SELECT B.tenBannhac, NS.tenNhacsi FROM bannhac B INNER JOIN nhacsi NS ON B.idNhacsi = NS.idNhacsi WHERE B.tenBannhac LIKE "%tình%";
  • D. SELECT B.tenBannhac, NS.tenNhacsi FROM bannhac B JOIN nhacsi NS ON B.idNhacsi = NS.idNhacsi WHERE B.tenBannhac CONTAINS "tình";

Câu 13: Câu lệnh SQL nào sau đây sẽ trả về tất cả các ca sĩ, ngay cả khi họ chưa thu âm bất kỳ bản nhạc nào trong bảng `banthuam`? (Sử dụng bảng `casi` và `banthuam`)

  • A. SELECT C.tenCasi, BT.idBanthuam FROM casi C LEFT JOIN banthuam BT ON C.idCasi = BT.idCasi;
  • B. SELECT C.tenCasi, BT.idBanthuam FROM casi C INNER JOIN banthuam BT ON C.idCasi = BT.idCasi;
  • C. SELECT tenCasi FROM casi WHERE idCasi NOT IN (SELECT idCasi FROM banthuam);
  • D. SELECT C.tenCasi, BT.idBanthuam FROM casi C RIGHT JOIN banthuam BT ON C.idCasi = BT.idCasi;

Câu 14: Cho schema cơ sở dữ liệu như đã mô tả (bannhac, nhacsi, banthuam, casi, theloai). Bạn muốn lấy tên các bản nhạc và tên ca sĩ đã thu âm chúng, nhưng chỉ cho những bản nhạc thuộc thể loại "Pop". Câu lệnh SQL nào sau đây là đúng?

  • A. SELECT B.tenBannhac, C.tenCasi FROM banthuam BT JOIN bannhac B ON BT.idBannhac = B.idBannhac JOIN casi C ON BT.idCasi = C.idCasi WHERE B.idTheloai = (SELECT idTheloai FROM theloai WHERE tenTheloai = "Pop");
  • B. SELECT B.tenBannhac, C.tenCasi FROM bannhac B JOIN casi C ON B.idBannhac = C.idCasi JOIN theloai TL ON B.idTheloai = TL.idTheloai WHERE TL.tenTheloai = "Pop";
  • C. SELECT B.tenBannhac, C.tenCasi FROM banthuam BT, bannhac B, casi C, theloai TL WHERE BT.idBannhac = B.idBannhac AND BT.idCasi = C.idCasi AND B.idTheloai = TL.idTheloai AND TL.tenTheloai = "Pop";
  • D. SELECT B.tenBannhac, C.tenCasi FROM banthuam BT INNER JOIN bannhac B ON BT.idBannhac = B.idBannhac INNER JOIN casi C ON BT.idCasi = C.idCasi INNER JOIN theloai TL ON B.idTheloai = TL.idTheloai WHERE TL.tenTheloai = "Pop";

Câu 15: Khi sử dụng INNER JOIN giữa hai bảng A và B dựa trên điều kiện A.khoa_ngoai = B.khoa_chinh, điều gì sẽ xảy ra nếu có một bản ghi trong bảng A mà giá trị `khoa_ngoai` của nó không có giá trị tương ứng trong cột `khoa_chinh` của bảng B?

  • A. Bản ghi đó vẫn xuất hiện trong kết quả, với các cột từ bảng B có giá trị NULL.
  • B. Truy vấn sẽ báo lỗi do vi phạm ràng buộc tham chiếu.
  • C. Bản ghi đó sẽ bị loại bỏ khỏi tập kết quả.
  • D. Bản ghi đó vẫn xuất hiện, với các cột từ bảng B được lặp lại từ một bản ghi khác.

Câu 16: Bạn muốn lấy danh sách tên nhạc sĩ và số lượng bản nhạc của họ, nhưng chỉ hiển thị những nhạc sĩ có từ 5 bản nhạc trở lên. Sử dụng kết quả từ câu 7 (GROUP BY và COUNT), bạn cần thêm mệnh đề nào để lọc các nhóm?

  • A. WHERE
  • B. HAVING
  • C. ORDER BY
  • D. LIMIT

Câu 17: Khi nối hai bảng A và B, việc sử dụng bí danh (alias) cho bảng (ví dụ: `A AS T1`) mang lại lợi ích chính nào?

  • A. Bắt buộc phải có khi nối nhiều hơn hai bảng.
  • B. Cải thiện hiệu suất thực thi truy vấn.
  • C. Cho phép chọn tất cả các cột từ bảng đó bằng cách sử dụng `T1.*`.
  • D. Làm cho câu lệnh SQL ngắn gọn và dễ đọc hơn.

Câu 18: Bạn có bảng `hocsinh` (maHS, tenHS, maLop) và bảng `lop` (maLop, tenLop). Bạn muốn lấy danh sách tất cả các lớp và số lượng học sinh trong mỗi lớp. Những lớp chưa có học sinh cũng cần hiển thị với số lượng là 0. Câu lệnh nào sau đây là đúng?

  • A. SELECT L.tenLop, COUNT(H.maHS) FROM lop L INNER JOIN hocsinh H ON L.maLop = H.maLop GROUP BY L.tenLop;
  • B. SELECT L.tenLop, COUNT(*) FROM lop L, hocsinh H WHERE L.maLop = H.maLop GROUP BY L.tenLop;
  • C. SELECT L.tenLop, COUNT(H.maHS) FROM lop L LEFT JOIN hocsinh H ON L.maLop = H.maLop GROUP BY L.tenLop;
  • D. SELECT L.tenLop, COUNT(H.maHS) FROM hocsinh H RIGHT JOIN lop L ON L.maLop = H.maLop GROUP BY L.tenLop;

Câu 19: Trong câu lệnh `SELECT * FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;`, ký tự `*` có ý nghĩa gì?

  • A. Chọn tất cả các cột từ tất cả các bảng tham gia JOIN.
  • B. Chọn tất cả các bản ghi từ tất cả các bảng tham gia JOIN.
  • C. Chỉ chọn các cột khóa chính và khóa ngoại.
  • D. Báo hiệu rằng đây là phép nối INNER JOIN.

Câu 20: Bạn muốn lấy danh sách tên bản nhạc, tên nhạc sĩ, tên ca sĩ và tên thể loại cho tất cả các bản thu âm. Đây là một truy vấn phức tạp liên quan đến 4 bảng. Thứ tự các bảng trong mệnh đề FROM và JOIN có quan trọng không?

  • A. Có, thứ tự bảng trong FROM và JOIN quyết định bản ghi nào sẽ được giữ lại.
  • B. Không, với INNER JOIN, thứ tự các bảng không ảnh hưởng đến kết quả cuối cùng, chỉ có điều kiện ON là quan trọng.
  • C. Có, bảng đầu tiên trong FROM luôn là bảng chính.
  • D. Chỉ quan trọng khi sử dụng LEFT hoặc RIGHT JOIN.

Câu 21: Giả sử bảng `nhacsi` có một cột `quocGia`. Bạn muốn lấy tên các bản nhạc và tên nhạc sĩ, nhưng chỉ cho những nhạc sĩ đến từ "Việt Nam". Câu lệnh nào sau đây là đúng?

  • A. SELECT B.tenBannhac, NS.tenNhacsi FROM bannhac B INNER JOIN nhacsi NS ON B.idNhacsi = NS.idNhacsi WHERE NS.quocGia = "Việt Nam";
  • B. SELECT B.tenBannhac, NS.tenNhacsi FROM bannhac B, nhacsi NS WHERE B.idNhacsi = NS.idNhacsi AND B.quocGia = "Việt Nam";
  • C. SELECT B.tenBannhac, NS.tenNhacsi FROM bannhac B LEFT JOIN nhacsi NS ON B.idNhacsi = NS.idNhacsi WHERE NS.quocGia = "Việt Nam";
  • D. SELECT B.tenBannhac, NS.tenNhacsi FROM bannhac B INNER JOIN nhacsi NS ON B.idNhacsi = NS.idNhacsi AND B.quocGia = "Việt Nam";

Câu 22: Phép nối LEFT JOIN (hoặc LEFT OUTER JOIN) giữa bảng A và B (A LEFT JOIN B ON ...) có đặc điểm gì khác biệt so với INNER JOIN?

  • A. LEFT JOIN chỉ trả về các bản ghi từ bảng bên trái không có bản ghi phù hợp ở bảng bên phải.
  • B. LEFT JOIN trả về tất cả các bản ghi từ bảng bên trái và các bản ghi phù hợp từ bảng bên phải (NULL nếu không có).
  • C. LEFT JOIN chỉ trả về các bản ghi từ bảng bên phải không có bản ghi phù hợp ở bảng bên trái.
  • D. LEFT JOIN trả về tất cả các bản ghi từ cả hai bảng, điền NULL vào các cột không có giá trị phù hợp.

Câu 23: Bạn muốn lấy danh sách tên các thể loại và số lượng bản nhạc thuộc mỗi thể loại đó. Sử dụng các bảng `theloai` và `bannhac`. Câu lệnh SQL nào là phù hợp nhất để bao gồm cả những thể loại chưa có bản nhạc nào?

  • A. SELECT T.tenTheloai, COUNT(*) FROM theloai T INNER JOIN bannhac B ON T.idTheloai = B.idTheloai GROUP BY T.tenTheloai;
  • B. SELECT tenTheloai, COUNT(*) FROM bannhac GROUP BY tenTheloai;
  • C. SELECT T.tenTheloai, COUNT(B.idBannhac) FROM theloai T, bannhac B WHERE T.idTheloai = B.idTheloai GROUP BY T.tenTheloai;
  • D. SELECT T.tenTheloai, COUNT(B.idBannhac) FROM theloai T LEFT JOIN bannhac B ON T.idTheloai = B.idTheloai GROUP BY T.tenTheloai;

Câu 24: Trong một truy vấn nối nhiều bảng, nếu bạn muốn lấy tất cả các cột từ bảng `bannhac` và chỉ tên nhạc sĩ từ bảng `nhacsi`, sử dụng bí danh B cho `bannhac` và NS cho `nhacsi`, mệnh đề SELECT sẽ là gì?

  • A. SELECT *, NS.tenNhacsi FROM bannhac B INNER JOIN nhacsi NS ON B.idNhacsi = NS.idNhacsi;
  • B. SELECT B.*, NS.tenNhacsi FROM bannhac B INNER JOIN nhacsi NS ON B.idNhacsi = NS.idNhacsi;
  • C. SELECT B.tenBannhac, NS.tenNhacsi FROM bannhac B INNER JOIN nhacsi NS ON B.idNhacsi = NS.idNhacsi;
  • D. SELECT B., NS. FROM bannhac B INNER JOIN nhacsi NS ON B.idNhacsi = NS.idNhacsi;

Câu 25: Khi nối hai bảng A và B bằng điều kiện `A.khoa = B.khoa`, điều kiện này thường dựa trên mối quan hệ nào giữa hai cột?

  • A. Khóa chính và Khóa ngoại.
  • B. Hai khóa chính.
  • C. Hai khóa ngoại.
  • D. Hai cột bất kỳ có cùng kiểu dữ liệu.

Câu 26: Bạn đang viết một truy vấn để lấy thông tin bản thu âm, bản nhạc, nhạc sĩ và ca sĩ. Bạn sử dụng INNER JOIN giữa `banthuam` và `bannhac`, sau đó INNER JOIN kết quả với `casi`. Tiếp theo, bạn muốn nối với `nhacsi` thông qua `bannhac.idNhacsi`. Câu lệnh nào mô tả cấu trúc JOIN đúng?

  • A. FROM banthuam JOIN bannhac ON ... AND casi ON ... AND nhacsi ON ...
  • B. FROM banthuam JOIN bannhac ON ... JOIN casi ON ... JOIN nhacsi ON ...
  • C. FROM banthuam INNER JOIN bannhac ON banthuam.idBannhac = bannhac.idBannhac INNER JOIN casi ON banthuam.idCasi = casi.idCasi INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi
  • D. FROM banthuam, bannhac, casi, nhacsi WHERE banthuam.idBannhac = bannhac.idBannhac OR banthuam.idCasi = casi.idCasi OR bannhac.idNhacsi = nhacsi.idNhacsi

Câu 27: Bạn muốn lấy danh sách tên các bản nhạc và tên thể loại, bao gồm cả những bản nhạc chưa được gán thể loại. Bảng `bannhac` có cột `idTheloai` (có thể NULL). Bảng `theloai` có `idTheloai` và `tenTheloai`. Bạn nên sử dụng phép nối nào?

  • A. INNER JOIN
  • B. LEFT JOIN
  • C. RIGHT JOIN
  • D. FULL OUTER JOIN

Câu 28: Khi thực hiện phép nối, điều kiện nối (đặt sau từ khóa ON) có vai trò gì?

  • A. Lọc các hàng sau khi phép nối hoàn thành.
  • B. Xác định thứ tự các cột trong kết quả.
  • C. Chỉ định cách các hàng từ hai bảng được kết hợp dựa trên sự phù hợp của các cột.
  • D. Đếm số lượng bản ghi trong mỗi bảng.

Câu 29: Bạn muốn lấy tên các nhạc sĩ và tên các bản nhạc của họ, nhưng chỉ những bản nhạc có `idBannhac` lớn hơn 100. Câu lệnh SQL nào sau đây là đúng?

  • A. SELECT NS.tenNhacsi, B.tenBannhac FROM nhacsi NS INNER JOIN bannhac B ON NS.idNhacsi = B.idNhacsi WHERE B.idBannhac > 100;
  • B. SELECT NS.tenNhacsi, B.tenBannhac FROM nhacsi NS, bannhac B WHERE NS.idNhacsi = B.idNhacsi AND NS.idBannhac > 100;
  • C. SELECT NS.tenNhacsi, B.tenBannhac FROM nhacsi NS LEFT JOIN bannhac B ON NS.idNhacsi = B.idNhacsi WHERE B.idBannhac > 100;
  • D. SELECT NS.tenNhacsi, B.tenBannhac FROM nhacsi NS INNER JOIN bannhac B ON NS.idNhacsi = B.idNhacsi HAVING B.idBannhac > 100;

Câu 30: Trong cơ sở dữ liệu âm nhạc, bạn muốn lấy tên của tất cả các ca sĩ chưa từng thu âm bất kỳ bản nhạc nào. Sử dụng các bảng `casi` và `banthuam`. Câu lệnh nào sau đây là đúng?

  • A. SELECT tenCasi FROM casi WHERE idCasi NOT IN (SELECT idCasi FROM banthuam);
  • B. SELECT C.tenCasi FROM casi C LEFT JOIN banthuam BT ON C.idCasi = BT.idCasi WHERE BT.idCasi IS NULL;
  • C. SELECT C.tenCasi FROM casi C INNER JOIN banthuam BT ON C.idCasi = BT.idCasi WHERE BT.idCasi IS NULL;
  • D. SELECT tenCasi FROM casi WHERE EXISTS (SELECT idCasi FROM banthuam WHERE casi.idCasi = banthuam.idCasi);

1 / 30

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

Tags: Bộ đề 02

Câu 1: Trong cơ sở dữ liệu quản lý âm nhạc với các bảng `bannhac` (idBannhac, tenBannhac, idNhacsi), `nhacsi` (idNhacsi, tenNhacsi), bạn muốn lấy danh sách tên bản nhạc cùng với tên nhạc sĩ sáng tác. Câu lệnh SQL nào sau đây thực hiện được yêu cầu này một cách hiệu quả?

2 / 30

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

Tags: Bộ đề 02

Câu 2: Vẫn sử dụng cơ sở dữ liệu quản lý âm nhạc (bảng `bannhac`, `nhacsi`). Bạn muốn tìm tất cả các bản nhạc *không* có thông tin nhạc sĩ liên kết trong bảng `nhacsi`. Câu lệnh SQL nào sau đây là đúng?

3 / 30

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

Tags: Bộ đề 02

Câu 3: Giả sử bạn có thêm bảng `theloai` (idTheloai, tenTheloai) liên kết với bảng `bannhac` qua khóa ngoại `idTheloai`. Bạn muốn lấy danh sách tên bản nhạc và tên thể loại của chúng. Câu lệnh nào sau đây là đúng?

4 / 30

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

Tags: Bộ đề 02

Câu 4: Để truy vấn danh sách các bản thu âm, bao gồm tên bản nhạc, tên nhạc sĩ và tên ca sĩ thể hiện, từ các bảng `banthuam` (idBanthuam, idBannhac, idCasi), `bannhac` (idBannhac, tenBannhac, idNhacsi), `nhacsi` (idNhacsi, tenNhacsi), và `casi` (idCasi, tenCasi), bạn cần thực hiện bao nhiêu phép nối (JOIN)?

5 / 30

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

Tags: Bộ đề 02

Câu 5: Xem xét câu lệnh SQL sau: `SELECT B.tenBannhac, NS.tenNhacsi FROM bannhac AS B INNER JOIN nhacsi AS NS ON B.idNhacsi = NS.idNhacsi;` Mục đích của việc sử dụng `AS B` và `AS NS` trong câu lệnh này là gì?

6 / 30

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

Tags: Bộ đề 02

Câu 6: Bạn muốn lấy danh sách tên bản nhạc và tên ca sĩ đã thu âm bản nhạc đó. Dữ liệu cần thiết nằm trong các bảng `banthuam` (idBanthuam, idBannhac, idCasi), `bannhac` (idBannhac, tenBannhac), và `casi` (idCasi, tenCasi). Câu lệnh SQL nào sau đây là đúng?

7 / 30

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

Tags: Bộ đề 02

Câu 7: Giả sử bạn muốn lấy danh sách tất cả nhạc sĩ và số lượng bản nhạc mà mỗi nhạc sĩ đã sáng tác. Bạn cần sử dụng các bảng `nhacsi` và `bannhac`. Ngoài phép nối, bạn cần sử dụng thêm mệnh đề SQL nào để nhóm các bản nhạc theo nhạc sĩ và đếm?

8 / 30

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

Tags: Bộ đề 02

Câu 8: Cho câu lệnh: `SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac LEFT JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;` Kết quả của câu lệnh này sẽ bao gồm những bản nhạc nào?

9 / 30

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

Tags: Bộ đề 02

Câu 9: Để lấy danh sách tên bản nhạc và tên thể loại của những bản nhạc thuộc thể loại 'Nhạc Trữ Tình', sử dụng các bảng `bannhac` và `theloai`. Câu lệnh nào sau đây là đúng?

10 / 30

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

Tags: Bộ đề 02

Câu 10: Trong phép nối nhiều bảng (`banthuam`, `bannhac`, `nhacsi`, `casi`), nếu một bản thu âm không có thông tin ca sĩ liên kết (ví dụ: idCasi trong banthuam là NULL hoặc không tồn tại trong casi), sử dụng INNER JOIN giữa `banthuam` và `casi` sẽ ảnh hưởng đến kết quả như thế nào?

11 / 30

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

Tags: Bộ đề 02

Câu 11: Để lấy danh sách tên ca sĩ và số lượng bản thu âm mà mỗi ca sĩ đã thực hiện, sử dụng các bảng `casi` và `banthuam`. Câu lệnh SQL nào là phù hợp nhất?

12 / 30

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

Tags: Bộ đề 02

Câu 12: Bạn muốn lấy danh sách các bản nhạc có tên chứa từ 'tình' và tên nhạc sĩ sáng tác. Sử dụng các bảng `bannhac` và `nhacsi`. Câu lệnh nào sau đây là đúng?

13 / 30

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

Tags: Bộ đề 02

Câu 13: Câu lệnh SQL nào sau đây sẽ trả về tất cả các ca sĩ, ngay cả khi họ chưa thu âm bất kỳ bản nhạc nào trong bảng `banthuam`? (Sử dụng bảng `casi` và `banthuam`)

14 / 30

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

Tags: Bộ đề 02

Câu 14: Cho schema cơ sở dữ liệu như đã mô tả (bannhac, nhacsi, banthuam, casi, theloai). Bạn muốn lấy tên các bản nhạc và tên ca sĩ đã thu âm chúng, nhưng chỉ cho những bản nhạc thuộc thể loại 'Pop'. Câu lệnh SQL nào sau đây là đúng?

15 / 30

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

Tags: Bộ đề 02

Câu 15: Khi sử dụng INNER JOIN giữa hai bảng A và B dựa trên điều kiện A.khoa_ngoai = B.khoa_chinh, điều gì sẽ xảy ra nếu có một bản ghi trong bảng A mà giá trị `khoa_ngoai` của nó không có giá trị tương ứng trong cột `khoa_chinh` của bảng B?

16 / 30

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

Tags: Bộ đề 02

Câu 16: Bạn muốn lấy danh sách tên nhạc sĩ và số lượng bản nhạc của họ, nhưng chỉ hiển thị những nhạc sĩ có từ 5 bản nhạc trở lên. Sử dụng kết quả từ câu 7 (GROUP BY và COUNT), bạn cần thêm mệnh đề nào để lọc các nhóm?

17 / 30

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

Tags: Bộ đề 02

Câu 17: Khi nối hai bảng A và B, việc sử dụng bí danh (alias) cho bảng (ví dụ: `A AS T1`) mang lại lợi ích chính nào?

18 / 30

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

Tags: Bộ đề 02

Câu 18: Bạn có bảng `hocsinh` (maHS, tenHS, maLop) và bảng `lop` (maLop, tenLop). Bạn muốn lấy danh sách tất cả các lớp và số lượng học sinh trong mỗi lớp. Những lớp chưa có học sinh cũng cần hiển thị với số lượng là 0. Câu lệnh nào sau đây là đúng?

19 / 30

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

Tags: Bộ đề 02

Câu 19: Trong câu lệnh `SELECT * FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;`, ký tự `*` có ý nghĩa gì?

20 / 30

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

Tags: Bộ đề 02

Câu 20: Bạn muốn lấy danh sách tên bản nhạc, tên nhạc sĩ, tên ca sĩ và tên thể loại cho tất cả các bản thu âm. Đây là một truy vấn phức tạp liên quan đến 4 bảng. Thứ tự các bảng trong mệnh đề FROM và JOIN có quan trọng không?

21 / 30

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

Tags: Bộ đề 02

Câu 21: Giả sử bảng `nhacsi` có một cột `quocGia`. Bạn muốn lấy tên các bản nhạc và tên nhạc sĩ, nhưng chỉ cho những nhạc sĩ đến từ 'Việt Nam'. Câu lệnh nào sau đây là đúng?

22 / 30

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

Tags: Bộ đề 02

Câu 22: Phép nối LEFT JOIN (hoặc LEFT OUTER JOIN) giữa bảng A và B (A LEFT JOIN B ON ...) có đặc điểm gì khác biệt so với INNER JOIN?

23 / 30

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

Tags: Bộ đề 02

Câu 23: Bạn muốn lấy danh sách tên các thể loại và số lượng bản nhạc thuộc mỗi thể loại đó. Sử dụng các bảng `theloai` và `bannhac`. Câu lệnh SQL nào là phù hợp nhất để bao gồm cả những thể loại chưa có bản nhạc nào?

24 / 30

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

Tags: Bộ đề 02

Câu 24: Trong một truy vấn nối nhiều bảng, nếu bạn muốn lấy tất cả các cột từ bảng `bannhac` và chỉ tên nhạc sĩ từ bảng `nhacsi`, sử dụng bí danh B cho `bannhac` và NS cho `nhacsi`, mệnh đề SELECT sẽ là gì?

25 / 30

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

Tags: Bộ đề 02

Câu 25: Khi nối hai bảng A và B bằng điều kiện `A.khoa = B.khoa`, điều kiện này thường dựa trên mối quan hệ nào giữa hai cột?

26 / 30

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

Tags: Bộ đề 02

Câu 26: Bạn đang viết một truy vấn để lấy thông tin bản thu âm, bản nhạc, nhạc sĩ và ca sĩ. Bạn sử dụng INNER JOIN giữa `banthuam` và `bannhac`, sau đó INNER JOIN kết quả với `casi`. Tiếp theo, bạn muốn nối với `nhacsi` thông qua `bannhac.idNhacsi`. Câu lệnh nào mô tả cấu trúc JOIN đúng?

27 / 30

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

Tags: Bộ đề 02

Câu 27: Bạn muốn lấy danh sách tên các bản nhạc và tên thể loại, bao gồm cả những bản nhạc chưa được gán thể loại. Bảng `bannhac` có cột `idTheloai` (có thể NULL). Bảng `theloai` có `idTheloai` và `tenTheloai`. Bạn nên sử dụng phép nối nào?

28 / 30

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

Tags: Bộ đề 02

Câu 28: Khi thực hiện phép nối, điều kiện nối (đặt sau từ khóa ON) có vai trò gì?

29 / 30

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

Tags: Bộ đề 02

Câu 29: Bạn muốn lấy tên các nhạc sĩ và tên các bản nhạc của họ, nhưng chỉ những bản nhạc có `idBannhac` lớn hơn 100. Câu lệnh SQL nào sau đây là đúng?

30 / 30

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

Tags: Bộ đề 02

Câu 30: Trong cơ sở dữ liệu âm nhạc, bạn muốn lấy tên của tất cả các ca sĩ *chưa từng* thu âm bất kỳ bản nhạc nào. Sử dụng các bảng `casi` và `banthuam`. Câu lệnh nào sau đây là đúng?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 03

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 03 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Giả sử cơ sở dữ liệu quản lý nhạc gồm các bảng `bannhac` (idBannhac, tenBannhac, idNhacsi), `nhacsi` (idNhacsi, tenNhacsi). Câu lệnh SQL nào sau đây **đúng nhất** để lấy danh sách tên bản nhạc cùng với tên nhạc sĩ sáng tác tương ứng, chỉ hiển thị những bản nhạc đã có thông tin nhạc sĩ?

  • A. SELECT tenBannhac, tenNhacsi FROM bannhac, nhacsi WHERE bannhac.idNhacsi = nhacsi.idNhacsi
  • B. SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac LEFT JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi
  • C. SELECT * FROM bannhac JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi
  • D. SELECT b.tenBannhac, n.tenNhacsi FROM bannhac AS b INNER JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi

Câu 2: Vẫn với cấu trúc bảng `bannhac` và `nhacsi` như trên. Bạn muốn lấy danh sách tất cả các nhạc sĩ cùng với tên các bản nhạc của họ. Nếu một nhạc sĩ chưa có bản nhạc nào trong bảng `bannhac`, họ vẫn phải xuất hiện trong kết quả. Câu lệnh SQL nào thực hiện yêu cầu này?

  • A. SELECT n.tenNhacsi, b.tenBannhac FROM nhacsi AS n LEFT JOIN bannhac AS b ON n.idNhacsi = b.idNhacsi
  • B. SELECT n.tenNhacsi, b.tenBannhac FROM nhacsi AS n INNER JOIN bannhac AS b ON n.idNhacsi = b.idNhacsi
  • C. SELECT tenNhacsi, tenBannhac FROM nhacsi, bannhac WHERE nhacsi.idNhacsi = bannhac.idNhacsi
  • D. SELECT n.tenNhacsi, b.tenBannhac FROM nhacsi AS n RIGHT JOIN bannhac AS b ON n.idNhacsi = b.idNhacsi

Câu 3: Để lấy danh sách các bản nhạc có tên bắt đầu bằng chữ "H" cùng với tên nhạc sĩ của chúng, bạn sẽ sửa câu lệnh INNER JOIN cơ bản như thế nào? Sử dụng cấu trúc bảng `bannhac` và `nhacsi`.

  • A. SELECT b.tenBannhac, n.tenNhacsi FROM bannhac AS b INNER JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi LIKE "H%"
  • B. SELECT b.tenBannhac, n.tenNhacsi FROM bannhac AS b WHERE b.tenBannhac LIKE "H%" INNER JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi
  • C. SELECT b.tenBannhac, n.tenNhacsi FROM bannhac AS b INNER JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi WHERE b.tenBannhac LIKE "H%"
  • D. SELECT b.tenBannhac, n.tenNhacsi FROM bannhac AS b, nhacsi AS n WHERE b.idNhacsi = n.idNhacsi AND b.tenBannhac LIKE "H%"

Câu 4: Cần truy xuất thông tin về các bản thu âm, bao gồm tên bản nhạc được thu âm và tên ca sĩ thể hiện. Các bảng liên quan là `banthuam` (idBanthuam, idBannhac, idCasi), `bannhac` (idBannhac, tenBannhac, ...), và `casi` (idCasi, tenCasi). Câu lệnh SQL nào thực hiện việc này?

  • A. SELECT bt.idBanthuam, bn.tenBannhac, cs.tenCasi FROM banthuam AS bt, bannhac AS bn, casi AS cs WHERE bt.idBannhac = bn.idBannhac OR bt.idCasi = cs.idCasi
  • B. SELECT bt.idBanthuam, bn.tenBannhac, cs.tenCasi FROM banthuam AS bt INNER JOIN bannhac AS bn ON bt.idBannhac = bn.idBannhac INNER JOIN casi AS cs ON bt.idCasi = cs.idCasi
  • C. SELECT bt.idBanthuam, bn.tenBannhac, cs.tenCasi FROM banthuam AS bt LEFT JOIN bannhac AS bn ON bt.idBannhac = bn.idBannhac LEFT JOIN casi AS cs ON bt.idCasi = cs.idCasi
  • D. SELECT bt.idBanthuam, bn.tenBannhac, cs.tenCasi FROM banthuam AS bt JOIN bannhac AS bn JOIN casi AS cs ON bt.idBannhac = bn.idBannhac AND bt.idCasi = cs.idCasi

Câu 5: Vẫn với các bảng `banthuam`, `bannhac`, `casi`. Bạn muốn tìm tất cả các bản thu âm được thể hiện bởi ca sĩ có tên là "Mỹ Tâm". Câu lệnh nào sau đây **đúng**?

  • A. SELECT bt.idBanthuam, bn.tenBannhac, cs.tenCasi FROM banthuam AS bt INNER JOIN bannhac AS bn ON bt.idBannhac = bn.idBannhac INNER JOIN casi AS cs ON bt.idCasi = cs.idCasi WHERE cs.tenCasi = "Mỹ Tâm"
  • B. SELECT * FROM banthuam WHERE idCasi = (SELECT idCasi FROM casi WHERE tenCasi = "Mỹ Tâm")
  • C. SELECT bt.idBanthuam, bn.tenBannhac FROM banthuam AS bt INNER JOIN bannhac AS bn ON bt.idBannhac = bn.idBannhac WHERE bt.idCasi IN (SELECT idCasi FROM casi WHERE tenCasi = "Mỹ Tâm")
  • D. SELECT bt.idBanthuam, bn.tenBannhac, cs.tenCasi FROM banthuam AS bt, bannhac AS bn, casi AS cs WHERE bt.idBannhac = bn.idBannhac AND bt.idCasi = cs.idCasi AND cs.tenCasi = "Mỹ Tâm"

Câu 6: Bảng `bannhac` có thêm cột `idTheloai` liên kết với bảng `theloai` (idTheloai, tenTheloai). Bạn muốn lấy danh sách tên bản nhạc, tên nhạc sĩ và tên thể loại của bản nhạc đó. Cần JOIN bao nhiêu bảng để thực hiện truy vấn này?

  • A. 2 bảng
  • B. 4 bảng
  • C. 3 bảng
  • D. Chỉ cần 1 bảng nếu các cột cần thiết đều có trong đó

Câu 7: Viết câu lệnh SQL để lấy danh sách tên bản nhạc, tên nhạc sĩ và tên thể loại, sử dụng các bảng `bannhac`, `nhacsi`, `theloai` và các liên kết đã mô tả ở câu 6.

  • A. SELECT b.tenBannhac, n.tenNhacsi, tl.tenTheloai FROM bannhac AS b, nhacsi AS n, theloai AS tl WHERE b.idNhacsi = n.idNhacsi OR b.idTheloai = tl.idTheloai
  • B. SELECT b.tenBannhac, n.tenNhacsi, tl.tenTheloai FROM bannhac AS b LEFT JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi LEFT JOIN theloai AS tl ON b.idTheloai = tl.idTheloai
  • C. SELECT b.tenBannhac, n.tenNhacsi, tl.tenTheloai FROM bannhac AS b INNER JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi JOIN theloai AS tl
  • D. SELECT b.tenBannhac, n.tenNhacsi, tl.tenTheloai FROM bannhac AS b INNER JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi INNER JOIN theloai AS tl ON b.idTheloai = tl.idTheloai

Câu 8: Giả sử có một bản nhạc trong bảng `bannhac` mà cột `idNhacsi` của nó là NULL (chưa rõ nhạc sĩ). Nếu bạn sử dụng câu lệnh INNER JOIN giữa `bannhac` và `nhacsi` để lấy tên bản nhạc và tên nhạc sĩ, bản nhạc này có xuất hiện trong kết quả không? Tại sao?

  • A. Không, vì INNER JOIN chỉ trả về các hàng có giá trị khớp ở cả hai bảng, và NULL không khớp với bất kỳ giá trị nào (kể cả NULL khác).
  • B. Có, vì bản nhạc đó tồn tại trong bảng `bannhac`.
  • C. Có, nếu trong bảng `nhacsi` cũng có một nhạc sĩ với `idNhacsi` là NULL.
  • D. Tùy thuộc vào hệ quản trị cơ sở dữ liệu.

Câu 9: Bạn muốn liệt kê tất cả các thể loại nhạc và số lượng bản nhạc thuộc mỗi thể loại đó. Bảng `bannhac` có `idTheloai` và bảng `theloai` có `tenTheloai`. Câu lệnh SQL nào sau đây có thể được sử dụng (có thể cần các mệnh đề khác ngoài JOIN)?

  • A. SELECT tl.tenTheloai, COUNT(*) FROM theloai AS tl INNER JOIN bannhac AS b ON tl.idTheloai = b.idTheloai
  • B. SELECT tl.tenTheloai, COUNT(b.idBannhac) FROM theloai AS tl LEFT JOIN bannhac AS b ON tl.idTheloai = b.idTheloai GROUP BY tl.tenTheloai
  • C. SELECT tl.tenTheloai, COUNT(*) FROM theloai AS tl, bannhac AS b WHERE tl.idTheloai = b.idTheloai GROUP BY tl.tenTheloai
  • D. SELECT tl.tenTheloai, COUNT(*) FROM bannhac AS b RIGHT JOIN theloai AS tl ON b.idTheloai = tl.idTheloai

Câu 10: Xem xét câu lệnh SQL sau: `SELECT b.tenBannhac, n.tenNhacsi FROM bannhac AS b JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi WHERE n.tenNhacsi = "Trịnh Công Sơn"`. Câu lệnh này sẽ trả về kết quả gì?

  • A. Danh sách tên các bản nhạc của nhạc sĩ "Trịnh Công Sơn" cùng với tên của ông.
  • B. Tên của nhạc sĩ "Trịnh Công Sơn" và tổng số bản nhạc của ông.
  • C. Danh sách tất cả các bản nhạc và nhạc sĩ, chỉ bôi đậm những bản nhạc của "Trịnh Công Sơn".
  • D. Báo lỗi vì không thể dùng WHERE sau JOIN.

Câu 11: Trong cơ sở dữ liệu nhạc, giả sử có bản thu âm mà `idCasi` trong bảng `banthuam` là NULL (chưa rõ ca sĩ thể hiện). Nếu dùng LEFT JOIN từ `banthuam` sang `casi` để lấy thông tin bản thu âm và tên ca sĩ, bản thu âm này có xuất hiện không và cột tên ca sĩ sẽ có giá trị gì?

  • A. Không xuất hiện.
  • B. Xuất hiện, cột tên ca sĩ có giá trị NULL.
  • C. Xuất hiện, cột tên ca sĩ hiển thị chuỗi rỗng ("").
  • D. Báo lỗi vì không thể JOIN với giá trị NULL.

Câu 12: Bạn cần một danh sách tất cả các ca sĩ và các bản nhạc họ đã thu âm. Nếu một ca sĩ chưa thu âm bản nhạc nào, họ vẫn cần xuất hiện trong danh sách. Cần JOIN những bảng nào và loại JOIN nào là phù hợp nhất?

  • A. INNER JOIN giữa `casi` và `banthuam`.
  • B. INNER JOIN giữa `casi`, `banthuam`, `bannhac`.
  • C. LEFT JOIN từ `casi` sang `banthuam`, sau đó LEFT JOIN sang `bannhac`.
  • D. RIGHT JOIN từ `casi` sang `banthuam`.

Câu 13: Viết câu lệnh SQL để liệt kê tên tất cả các ca sĩ và các bản nhạc họ đã thu âm (bao gồm ca sĩ chưa thu âm), sử dụng các bảng `casi`, `banthuam`, `bannhac`.

  • A. SELECT cs.tenCasi, bn.tenBannhac FROM casi AS cs LEFT JOIN banthuam AS bt ON cs.idCasi = bt.idCasi LEFT JOIN bannhac AS bn ON bt.idBannhac = bn.idBannhac
  • B. SELECT cs.tenCasi, bn.tenBannhac FROM casi AS cs INNER JOIN banthuam AS bt ON cs.idCasi = bt.idCasi INNER JOIN bannhac AS bn ON bt.idBannhac = bn.idBannhac
  • C. SELECT cs.tenCasi, bn.tenBannhac FROM casi AS cs, banthuam AS bt, bannhac AS bn WHERE cs.idCasi = bt.idCasi AND bt.idBannhac = bn.idBannhac
  • D. SELECT cs.tenCasi, bn.tenBannhac FROM casi AS cs LEFT JOIN banthuam AS bt ON cs.idCasi = bt.idCasi WHERE bt.idBannhac = bn.idBannhac

Câu 14: Để lấy danh sách các bản nhạc chưa được thu âm bởi ca sĩ nào, bạn có thể sử dụng loại JOIN nào và điều kiện lọc như thế nào?

  • A. INNER JOIN giữa `bannhac` và `banthuam`, lọc với `WHERE bt.idBanthuam IS NULL`.
  • B. RIGHT JOIN từ `bannhac` sang `banthuam`, lọc với `WHERE bn.idBannhac IS NOT NULL`.
  • C. INNER JOIN giữa `bannhac` và `banthuam`, lọc với `WHERE bn.idBannhac IS NOT NULL`.
  • D. LEFT JOIN từ `bannhac` sang `banthuam`, lọc với `WHERE bt.idBanthuam IS NULL`.

Câu 15: Viết câu lệnh SQL để lấy danh sách tên các bản nhạc chưa được thu âm, sử dụng các bảng `bannhac` và `banthuam`.

  • A. SELECT b.tenBannhac FROM bannhac AS b INNER JOIN banthuam AS bt ON b.idBannhac = bt.idBannhac WHERE bt.idBanthuam IS NULL
  • B. SELECT b.tenBannhac FROM bannhac AS b LEFT JOIN banthuam AS bt ON b.idBannhac = bt.idBannhac WHERE bt.idBanthuam IS NULL
  • C. SELECT b.tenBannhac FROM bannhac AS b WHERE b.idBannhac NOT IN (SELECT idBannhac FROM banthuam)
  • D. SELECT b.tenBannhac FROM bannhac AS b WHERE b.idBannhac = NULL

Câu 16: Khi thực hiện JOIN hai bảng `A` và `B` trên điều kiện `A.khoa = B.khoa`, nếu một hàng trong bảng `A` có giá trị `khoa` không khớp với bất kỳ hàng nào trong bảng `B`, thì hàng đó sẽ xuất hiện trong kết quả của loại JOIN nào dưới đây?

  • A. INNER JOIN
  • B. RIGHT JOIN (khi B là bảng bên phải)
  • C. LEFT JOIN (khi A là bảng bên trái)
  • D. CROSS JOIN

Câu 17: Mục đích chính của việc sử dụng mệnh đề `ON` trong câu lệnh JOIN là gì?

  • A. Để lọc các hàng sau khi JOIN.
  • B. Để xác định cách các hàng từ hai bảng được kết hợp dựa trên một điều kiện.
  • C. Để liệt kê các cột cần hiển thị trong kết quả.
  • D. Để chỉ định thứ tự sắp xếp của kết quả.

Câu 18: Bạn muốn hiển thị tên tất cả các thể loại nhạc và, nếu có, tên các bản nhạc thuộc thể loại đó. Câu lệnh nào sau đây **không** phù hợp với yêu cầu này?

  • A. SELECT tl.tenTheloai, b.tenBannhac FROM theloai AS tl INNER JOIN bannhac AS b ON tl.idTheloai = b.idTheloai
  • B. SELECT tl.tenTheloai, b.tenBannhac FROM theloai AS tl LEFT JOIN bannhac AS b ON tl.idTheloai = b.idTheloai
  • C. SELECT tl.tenTheloai, b.tenBannhac FROM bannhac AS b RIGHT JOIN theloai AS tl ON tl.idTheloai = b.idTheloai
  • D. SELECT tl.tenTheloai, (SELECT COUNT(*) FROM bannhac WHERE idTheloai = tl.idTheloai) AS SoLuongBai FROM theloai AS tl

Câu 19: Khi sử dụng bí danh (alias) cho tên bảng trong câu lệnh JOIN (ví dụ: `bannhac AS b`), lợi ích chính là gì?

  • A. Bắt buộc phải sử dụng bí danh khi JOIN nhiều bảng.
  • B. Giúp tăng tốc độ thực hiện truy vấn.
  • C. Làm cho câu lệnh SQL ngắn gọn, dễ đọc và dễ quản lý hơn.
  • D. Cho phép JOIN các bảng không có khóa chung.

Câu 20: Bạn muốn tìm tất cả các ca sĩ đã thu âm các bản nhạc thuộc thể loại "Nhạc trẻ". Cần JOIN những bảng nào và áp dụng điều kiện lọc ở đâu?

  • A. JOIN `casi`, `banthuam`, `bannhac`, `theloai`. Lọc `WHERE tenTheloai = "Nhạc trẻ"`.
  • B. JOIN `casi`, `theloai`. Lọc `WHERE tenTheloai = "Nhạc trẻ"`.
  • C. JOIN `casi`, `banthuam`. Lọc `WHERE tenTheloai = "Nhạc trẻ"`.
  • D. JOIN `casi`, `bannhac`. Lọc `WHERE tenTheloai = "Nhạc trẻ"`.

Câu 21: Viết câu lệnh SQL để lấy danh sách tên các ca sĩ đã thu âm các bản nhạc thuộc thể loại "Nhạc trẻ", đảm bảo mỗi ca sĩ chỉ xuất hiện một lần.

  • A. SELECT cs.tenCasi FROM casi AS cs INNER JOIN banthuam AS bt ON cs.idCasi = bt.idCasi INNER JOIN bannhac AS bn ON bt.idBannhac = bn.idBannhac INNER JOIN theloai AS tl ON bn.idTheloai = tl.idTheloai WHERE tl.tenTheloai = "Nhạc trẻ"
  • B. SELECT DISTINCT cs.tenCasi FROM casi AS cs LEFT JOIN banthuam AS bt ON cs.idCasi = bt.idCasi LEFT JOIN bannhac AS bn ON bt.idBannhac = bn.idBannhac LEFT JOIN theloai AS tl ON bn.idTheloai = tl.idTheloai WHERE tl.tenTheloai = "Nhạc trẻ"
  • C. SELECT cs.tenCasi FROM casi AS cs, banthuam AS bt, bannhac AS bn, theloai AS tl WHERE cs.idCasi = bt.idCasi AND bt.idBannhac = bn.idBannhac AND bn.idTheloai = tl.idTheloai AND tl.tenTheloai = "Nhạc trẻ" GROUP BY cs.tenCasi
  • D. SELECT DISTINCT cs.tenCasi FROM casi AS cs INNER JOIN banthuam AS bt ON cs.idCasi = bt.idCasi INNER JOIN bannhac AS bn ON bt.idBannhac = bn.idBannhac INNER JOIN theloai AS tl ON bn.idTheloai = tl.idTheloai WHERE tl.tenTheloai = "Nhạc trẻ"

Câu 22: Phân tích câu lệnh sau: `SELECT b.tenBannhac, n.tenNhacsi FROM bannhac AS b LEFT JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi WHERE n.idNhacsi IS NULL`. Câu lệnh này sẽ trả về kết quả gì?

  • A. Tất cả các bản nhạc và tên nhạc sĩ của chúng.
  • B. Chỉ các bản nhạc có nhạc sĩ và tên nhạc sĩ đó.
  • C. Các bản nhạc chưa có thông tin nhạc sĩ liên kết.
  • D. Tất cả các nhạc sĩ và các bản nhạc của họ.

Câu 23: Trong ngữ cảnh cơ sở dữ liệu này, mối quan hệ giữa bảng `bannhac` và bảng `nhacsi` thường là loại quan hệ nào? (Một nhạc sĩ có thể sáng tác nhiều bản nhạc, một bản nhạc thường chỉ do một nhạc sĩ sáng tác).

  • A. Một - Nhiều (One-to-Many)
  • B. Nhiều - Nhiều (Many-to-Many)
  • C. Một - Một (One-to-One)
  • D. Không có quan hệ

Câu 24: Mối quan hệ giữa bảng `banthuam` và bảng `bannhac` là gì? (Một bản nhạc có thể có nhiều bản thu âm bởi các ca sĩ khác nhau hoặc cùng một ca sĩ, một bản thu âm chỉ ghi một bản nhạc).

  • A. Một - Nhiều (One-to-Many)
  • B. Nhiều - Nhiều (Many-to-Many)
  • C. Một - Một (One-to-One)
  • D. Không có quan hệ

Câu 25: Mối quan hệ giữa bảng `banthuam` và bảng `casi` là gì? (Một ca sĩ có thể thực hiện nhiều bản thu âm, một bản thu âm thường chỉ do một ca sĩ thực hiện).

  • A. Một - Nhiều (One-to-Many)
  • B. Nhiều - Nhiều (Many-to-Many)
  • C. Một - Một (One-to-One)
  • D. Không có quan hệ

Câu 26: Bảng `banthuam` đóng vai trò gì trong việc liên kết ca sĩ với bản nhạc trong mô hình cơ sở dữ liệu này?

  • A. Lưu trữ thông tin chi tiết về bản nhạc.
  • B. Lưu trữ thông tin chi tiết về ca sĩ.
  • C. Lưu trữ thông tin về nhạc sĩ sáng tác.
  • D. Lưu trữ thông tin về sự kiện thu âm, đóng vai trò bảng trung gian liên kết bản nhạc và ca sĩ.

Câu 27: Bạn cần lấy danh sách tên các bản nhạc được sáng tác bởi cùng một nhạc sĩ và thuộc cùng một thể loại. Giả sử bạn đã JOIN các bảng `bannhac`, `nhacsi`, `theloai`. Để tìm các cặp bản nhạc thỏa mãn điều kiện này, bạn có thể sử dụng kỹ thuật gì sau khi JOIN?

  • A. Sử dụng mệnh đề WHERE với điều kiện `b1.idNhacsi = b2.idNhacsi AND b1.idTheloai = b2.idTheloai`.
  • B. Sử dụng LEFT JOIN và kiểm tra giá trị NULL.
  • C. Sử dụng GROUP BY theo nhạc sĩ và thể loại, sau đó dùng HAVING để lọc các nhóm có số lượng bản nhạc > 1.
  • D. Chỉ cần INNER JOIN các bảng liên quan.

Câu 28: Viết câu lệnh SQL để lấy danh sách tên các bản nhạc được sáng tác bởi nhạc sĩ "Phạm Tuyên" và được thu âm bởi ca sĩ "Hợp ca". Sử dụng các bảng `bannhac`, `nhacsi`, `banthuam`, `casi`.

  • A. SELECT bn.tenBannhac FROM bannhac AS bn INNER JOIN nhacsi AS n ON bn.idNhacsi = n.idNhacsi WHERE n.tenNhacsi = "Phạm Tuyên" AND bn.idBannhac IN (SELECT idBannhac FROM banthuam INNER JOIN casi ON banthuam.idCasi = casi.idCasi WHERE casi.tenCasi = "Hợp ca")
  • B. SELECT DISTINCT bn.tenBannhac FROM bannhac AS bn INNER JOIN nhacsi AS n ON bn.idNhacsi = n.idNhacsi INNER JOIN banthuam AS bt ON bn.idBannhac = bt.idBannhac INNER JOIN casi AS cs ON bt.idCasi = cs.idCasi WHERE n.tenNhacsi = "Phạm Tuyên" AND cs.tenCasi = "Hợp ca"
  • C. SELECT bn.tenBannhac FROM bannhac AS bn, nhacsi AS n, banthuam AS bt, casi AS cs WHERE bn.idNhacsi = n.idNhacsi AND bn.idBannhac = bt.idBannhac AND bt.idCasi = cs.idCasi AND n.tenNhacsi = "Phạm Tuyên" OR cs.tenCasi = "Hợp ca"
  • D. SELECT bn.tenBannhac FROM bannhac AS bn WHERE bn.idNhacsi = (SELECT idNhacsi FROM nhacsi WHERE tenNhacsi = "Phạm Tuyên") AND bn.idBannhac = (SELECT idBannhac FROM banthuam WHERE idCasi = (SELECT idCasi FROM casi WHERE tenCasi = "Hợp ca"))

Câu 29: Khi nào thì việc sử dụng LEFT JOIN mang lại kết quả khác biệt so với INNER JOIN khi JOIN hai bảng A và B trên điều kiện A.khoa = B.khoa?

  • A. Khi có ít nhất một hàng trong bảng bên trái không có hàng khớp trong bảng bên phải theo điều kiện JOIN.
  • B. Khi các bảng được JOIN có cùng số lượng hàng.
  • C. Khi điều kiện JOIN sử dụng nhiều hơn một cột.
  • D. Luôn khác biệt.

Câu 30: Trong truy vấn dữ liệu qua liên kết các bảng, việc hiểu rõ mối quan hệ (Một-Một, Một-Nhiều, Nhiều-Nhiều) giữa các bảng là quan trọng nhất vì lý do nào sau đây?

  • A. Giúp giảm số lượng bản ghi trong kết quả truy vấn.
  • B. Chỉ định thứ tự các cột được hiển thị.
  • C. Xác định loại dữ liệu của các cột.
  • D. Xác định cách các bảng được liên kết với nhau (qua khóa chính/khóa ngoại) để viết mệnh đề ON chính xác.

1 / 30

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

Tags: Bộ đề 03

Câu 1: Giả sử cơ sở dữ liệu quản lý nhạc gồm các bảng `bannhac` (idBannhac, tenBannhac, idNhacsi), `nhacsi` (idNhacsi, tenNhacsi). Câu lệnh SQL nào sau đây **đúng nhất** để lấy danh sách tên bản nhạc cùng với tên nhạc sĩ sáng tác tương ứng, chỉ hiển thị những bản nhạc đã có thông tin nhạc sĩ?

2 / 30

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

Tags: Bộ đề 03

Câu 2: Vẫn với cấu trúc bảng `bannhac` và `nhacsi` như trên. Bạn muốn lấy danh sách tất cả các nhạc sĩ cùng với tên các bản nhạc của họ. Nếu một nhạc sĩ chưa có bản nhạc nào trong bảng `bannhac`, họ vẫn phải xuất hiện trong kết quả. Câu lệnh SQL nào thực hiện yêu cầu này?

3 / 30

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

Tags: Bộ đề 03

Câu 3: Để lấy danh sách các bản nhạc có tên bắt đầu bằng chữ 'H' cùng với tên nhạc sĩ của chúng, bạn sẽ sửa câu lệnh INNER JOIN cơ bản như thế nào? Sử dụng cấu trúc bảng `bannhac` và `nhacsi`.

4 / 30

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

Tags: Bộ đề 03

Câu 4: Cần truy xuất thông tin về các bản thu âm, bao gồm tên bản nhạc được thu âm và tên ca sĩ thể hiện. Các bảng liên quan là `banthuam` (idBanthuam, idBannhac, idCasi), `bannhac` (idBannhac, tenBannhac, ...), và `casi` (idCasi, tenCasi). Câu lệnh SQL nào thực hiện việc này?

5 / 30

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

Tags: Bộ đề 03

Câu 5: Vẫn với các bảng `banthuam`, `bannhac`, `casi`. Bạn muốn tìm tất cả các bản thu âm được thể hiện bởi ca sĩ có tên là 'Mỹ Tâm'. Câu lệnh nào sau đây **đúng**?

6 / 30

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

Tags: Bộ đề 03

Câu 6: Bảng `bannhac` có thêm cột `idTheloai` liên kết với bảng `theloai` (idTheloai, tenTheloai). Bạn muốn lấy danh sách tên bản nhạc, tên nhạc sĩ và tên thể loại của bản nhạc đó. Cần JOIN bao nhiêu bảng để thực hiện truy vấn này?

7 / 30

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

Tags: Bộ đề 03

Câu 7: Viết câu lệnh SQL để lấy danh sách tên bản nhạc, tên nhạc sĩ và tên thể loại, sử dụng các bảng `bannhac`, `nhacsi`, `theloai` và các liên kết đã mô tả ở câu 6.

8 / 30

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

Tags: Bộ đề 03

Câu 8: Giả sử có một bản nhạc trong bảng `bannhac` mà cột `idNhacsi` của nó là NULL (chưa rõ nhạc sĩ). Nếu bạn sử dụng câu lệnh INNER JOIN giữa `bannhac` và `nhacsi` để lấy tên bản nhạc và tên nhạc sĩ, bản nhạc này có xuất hiện trong kết quả không? Tại sao?

9 / 30

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

Tags: Bộ đề 03

Câu 9: Bạn muốn liệt kê tất cả các thể loại nhạc và số lượng bản nhạc thuộc mỗi thể loại đó. Bảng `bannhac` có `idTheloai` và bảng `theloai` có `tenTheloai`. Câu lệnh SQL nào sau đây có thể được sử dụng (có thể cần các mệnh đề khác ngoài JOIN)?

10 / 30

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

Tags: Bộ đề 03

Câu 10: Xem xét câu lệnh SQL sau: `SELECT b.tenBannhac, n.tenNhacsi FROM bannhac AS b JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi WHERE n.tenNhacsi = 'Trịnh Công Sơn'`. Câu lệnh này sẽ trả về kết quả gì?

11 / 30

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

Tags: Bộ đề 03

Câu 11: Trong cơ sở dữ liệu nhạc, giả sử có bản thu âm mà `idCasi` trong bảng `banthuam` là NULL (chưa rõ ca sĩ thể hiện). Nếu dùng LEFT JOIN từ `banthuam` sang `casi` để lấy thông tin bản thu âm và tên ca sĩ, bản thu âm này có xuất hiện không và cột tên ca sĩ sẽ có giá trị gì?

12 / 30

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

Tags: Bộ đề 03

Câu 12: Bạn cần một danh sách tất cả các ca sĩ và các bản nhạc họ đã thu âm. Nếu một ca sĩ chưa thu âm bản nhạc nào, họ vẫn cần xuất hiện trong danh sách. Cần JOIN những bảng nào và loại JOIN nào là phù hợp nhất?

13 / 30

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

Tags: Bộ đề 03

Câu 13: Viết câu lệnh SQL để liệt kê tên tất cả các ca sĩ và các bản nhạc họ đã thu âm (bao gồm ca sĩ chưa thu âm), sử dụng các bảng `casi`, `banthuam`, `bannhac`.

14 / 30

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

Tags: Bộ đề 03

Câu 14: Để lấy danh sách các bản nhạc chưa được thu âm bởi ca sĩ nào, bạn có thể sử dụng loại JOIN nào và điều kiện lọc như thế nào?

15 / 30

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

Tags: Bộ đề 03

Câu 15: Viết câu lệnh SQL để lấy danh sách tên các bản nhạc chưa được thu âm, sử dụng các bảng `bannhac` và `banthuam`.

16 / 30

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

Tags: Bộ đề 03

Câu 16: Khi thực hiện JOIN hai bảng `A` và `B` trên điều kiện `A.khoa = B.khoa`, nếu một hàng trong bảng `A` có giá trị `khoa` không khớp với bất kỳ hàng nào trong bảng `B`, thì hàng đó sẽ xuất hiện trong kết quả của loại JOIN nào dưới đây?

17 / 30

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

Tags: Bộ đề 03

Câu 17: Mục đích chính của việc sử dụng mệnh đề `ON` trong câu lệnh JOIN là gì?

18 / 30

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

Tags: Bộ đề 03

Câu 18: Bạn muốn hiển thị tên tất cả các thể loại nhạc và, nếu có, tên các bản nhạc thuộc thể loại đó. Câu lệnh nào sau đây **không** phù hợp với yêu cầu này?

19 / 30

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

Tags: Bộ đề 03

Câu 19: Khi sử dụng bí danh (alias) cho tên bảng trong câu lệnh JOIN (ví dụ: `bannhac AS b`), lợi ích chính là gì?

20 / 30

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

Tags: Bộ đề 03

Câu 20: Bạn muốn tìm tất cả các ca sĩ đã thu âm các bản nhạc thuộc thể loại 'Nhạc trẻ'. Cần JOIN những bảng nào và áp dụng điều kiện lọc ở đâu?

21 / 30

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

Tags: Bộ đề 03

Câu 21: Viết câu lệnh SQL để lấy danh sách tên các ca sĩ đã thu âm các bản nhạc thuộc thể loại 'Nhạc trẻ', đảm bảo mỗi ca sĩ chỉ xuất hiện một lần.

22 / 30

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

Tags: Bộ đề 03

Câu 22: Phân tích câu lệnh sau: `SELECT b.tenBannhac, n.tenNhacsi FROM bannhac AS b LEFT JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi WHERE n.idNhacsi IS NULL`. Câu lệnh này sẽ trả về kết quả gì?

23 / 30

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

Tags: Bộ đề 03

Câu 23: Trong ngữ cảnh cơ sở dữ liệu này, mối quan hệ giữa bảng `bannhac` và bảng `nhacsi` thường là loại quan hệ nào? (Một nhạc sĩ có thể sáng tác nhiều bản nhạc, một bản nhạc thường chỉ do một nhạc sĩ sáng tác).

24 / 30

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

Tags: Bộ đề 03

Câu 24: Mối quan hệ giữa bảng `banthuam` và bảng `bannhac` là gì? (Một bản nhạc có thể có nhiều bản thu âm bởi các ca sĩ khác nhau hoặc cùng một ca sĩ, một bản thu âm chỉ ghi một bản nhạc).

25 / 30

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

Tags: Bộ đề 03

Câu 25: Mối quan hệ giữa bảng `banthuam` và bảng `casi` là gì? (Một ca sĩ có thể thực hiện nhiều bản thu âm, một bản thu âm thường chỉ do một ca sĩ thực hiện).

26 / 30

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

Tags: Bộ đề 03

Câu 26: Bảng `banthuam` đóng vai trò gì trong việc liên kết ca sĩ với bản nhạc trong mô hình cơ sở dữ liệu này?

27 / 30

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

Tags: Bộ đề 03

Câu 27: Bạn cần lấy danh sách tên các bản nhạc được sáng tác bởi cùng một nhạc sĩ và thuộc cùng một thể loại. Giả sử bạn đã JOIN các bảng `bannhac`, `nhacsi`, `theloai`. Để tìm các cặp bản nhạc thỏa mãn điều kiện này, bạn có thể sử dụng kỹ thuật gì sau khi JOIN?

28 / 30

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

Tags: Bộ đề 03

Câu 28: Viết câu lệnh SQL để lấy danh sách tên các bản nhạc được sáng tác bởi nhạc sĩ 'Phạm Tuyên' và được thu âm bởi ca sĩ 'Hợp ca'. Sử dụng các bảng `bannhac`, `nhacsi`, `banthuam`, `casi`.

29 / 30

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

Tags: Bộ đề 03

Câu 29: Khi nào thì việc sử dụng LEFT JOIN mang lại kết quả khác biệt so với INNER JOIN khi JOIN hai bảng A và B trên điều kiện A.khoa = B.khoa?

30 / 30

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

Tags: Bộ đề 03

Câu 30: Trong truy vấn dữ liệu qua liên kết các bảng, việc hiểu rõ mối quan hệ (Một-Một, Một-Nhiều, Nhiều-Nhiều) giữa các bảng là quan trọng nhất vì lý do nào sau đây?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 04

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 04 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Giả sử có hai bảng `Sach` (chứa các cột idSach, tenSach, idTacGia) và `TacGia` (chứa các cột idTacGia, tenTacGia). Cột `idTacGia` trong bảng `Sach` là khóa ngoại liên kết đến cột `idTacGia` là khóa chính trong bảng `TacGia`. Câu lệnh SQL nào sau đây sẽ truy vấn danh sách tên sách và tên tác giả tương ứng của các cuốn sách?

  • A. SELECT * FROM Sach, TacGia WHERE Sach.idTacGia = TacGia.idTacGia;
  • B. SELECT Sach.tenSach, TacGia.tenTacGia FROM Sach INNER JOIN TacGia ON Sach.idTacGia = TacGia.idTacGia;
  • C. SELECT tenSach, tenTacGia FROM Sach LEFT JOIN TacGia ON Sach.idTacGia = TacGia.idTacGia;
  • D. SELECT Sach.tenSach, TacGia.tenTacGia FROM Sach WHERE Sach.idTacGia = TacGia.idTacGia;

Câu 2: Vẫn với hai bảng `Sach` và `TacGia` như ở Câu 1. Bạn muốn lấy danh sách tất cả các tác giả và tên các cuốn sách của họ (nếu có). Các tác giả chưa có sách nào cũng phải xuất hiện trong kết quả. Câu lệnh SQL nào phù hợp nhất?

  • A. SELECT TacGia.tenTacGia, Sach.tenSach FROM TacGia INNER JOIN Sach ON TacGia.idTacGia = Sach.idTacGia;
  • B. SELECT TacGia.tenTacGia, Sach.tenSach FROM TacGia WHERE TacGia.idTacGia = Sach.idTacGia;
  • C. SELECT TacGia.tenTacGia, Sach.tenSach FROM TacGia LEFT JOIN Sach ON TacGia.idTacGia = Sach.idTacGia;
  • D. SELECT * FROM TacGia FULL OUTER JOIN Sach ON TacGia.idTacGia = Sach.idTacGia;

Câu 3: Khi thực hiện truy vấn LEFT JOIN giữa bảng `TacGia` (trái) và bảng `Sach` (phải) như ở Câu 2, những tác giả chưa có cuốn sách nào sẽ xuất hiện trong kết quả. Các cột lấy từ bảng `Sach` (ví dụ: `tenSach`) trong các hàng tương ứng với những tác giả này sẽ có giá trị là gì?

  • A. NULL
  • B. Giá trị rỗng (empty string)
  • C. 0
  • D. Giá trị mặc định của kiểu dữ liệu

Câu 4: Có ba bảng: `HocSinh` (idHS, tenHS, idLop), `LopHoc` (idLop, tenLop, idGVCN), `GiaoVien` (idGV, tenGV). `idLop` trong `HocSinh` liên kết đến `LopHoc`. `idGVCN` trong `LopHoc` liên kết đến `GiaoVien`. Câu lệnh SQL nào sau đây truy vấn danh sách tên học sinh, tên lớp và tên giáo viên chủ nhiệm của lớp đó?

  • A. SELECT h.tenHS, l.tenLop, g.tenGV FROM HocSinh h JOIN LopHoc l ON h.idLop = l.idLop WHERE l.idGVCN = g.idGV;
  • B. SELECT h.tenHS, l.tenLop, g.tenGV FROM HocSinh h JOIN LopHoc l ON h.idLop = l.idLop JOIN GiaoVien g ON l.idGVCN = g.idGV;
  • C. SELECT HocSinh.tenHS, LopHoc.tenLop, GiaoVien.tenGV FROM HocSinh, LopHoc, GiaoVien WHERE HocSinh.idLop = LopHoc.idLop AND LopHoc.idGVCN = GiaoVien.idGV;
  • D. SELECT h.tenHS, l.tenLop, g.tenGV FROM HocSinh h, LopHoc l, GiaoVien g WHERE h.idLop = l.idLop OR l.idGVCN = g.idGV;

Câu 5: Sử dụng cấu trúc bảng ở Câu 4. Bạn muốn tìm tất cả học sinh và tên giáo viên chủ nhiệm của họ trong lớp có tên là "11A1". Câu lệnh SQL nào thực hiện được điều này?

  • A. SELECT h.tenHS, g.tenGV FROM HocSinh h JOIN LopHoc l ON h.idLop = l.idLop JOIN GiaoVien g ON l.idGVCN = g.idGV WHERE l.tenLop = "11A1";
  • B. SELECT h.tenHS, g.tenGV FROM HocSinh h, LopHoc l, GiaoVien g WHERE h.idLop = l.idLop AND l.idGVCN = g.idGV AND l.tenLop = "11A1";
  • C. SELECT h.tenHS, g.tenGV FROM HocSinh h INNER JOIN LopHoc l ON h.idLop = l.idLop WHERE l.tenLop = "11A1";
  • D. SELECT h.tenHS, g.tenGV FROM HocSinh h LEFT JOIN LopHoc l ON h.idLop = l.idLop WHERE l.tenLop = "11A1";

Câu 6: Trong câu lệnh JOIN, mệnh đề `ON` có vai trò gì?

  • A. Chỉ định các cột cần hiển thị trong kết quả.
  • B. Lọc các hàng dựa trên điều kiện.
  • C. Sắp xếp kết quả truy vấn.
  • D. Xác định mối quan hệ hoặc điều kiện để kết hợp các hàng giữa các bảng.

Câu 7: Sự khác biệt cơ bản giữa INNER JOIN và LEFT JOIN là gì?

  • A. INNER JOIN chỉ trả về các hàng có dữ liệu khớp ở cả hai bảng, LEFT JOIN trả về tất cả các hàng từ bảng bên trái và các hàng khớp từ bảng bên phải.
  • B. INNER JOIN trả về tất cả các hàng, LEFT JOIN chỉ trả về các hàng khớp.
  • C. INNER JOIN dùng cho 2 bảng, LEFT JOIN dùng cho nhiều hơn 2 bảng.
  • D. INNER JOIN nhanh hơn LEFT JOIN.

Câu 8: Giả sử bảng `SanPham` (idSP, tenSP, idLoai) và bảng `LoaiSP` (idLoai, tenLoai). Có một sản phẩm trong bảng `SanPham` có `idLoai` là NULL (chưa phân loại). Khi thực hiện `SELECT s.tenSP, l.tenLoai FROM SanPham s INNER JOIN LoaiSP l ON s.idLoai = l.idLoai;`, sản phẩm chưa phân loại này có xuất hiện trong kết quả không? Vì sao?

  • A. Có, vì INNER JOIN trả về tất cả các hàng.
  • B. Có, vì NULL được coi là khớp với NULL.
  • C. Không, vì INNER JOIN chỉ trả về các hàng có giá trị khớp ở cả hai bảng và NULL không khớp với bất kỳ giá trị nào.
  • D. Không, nhưng sẽ xuất hiện nếu dùng LEFT JOIN.

Câu 9: Để lấy danh sách các loại sản phẩm (từ bảng `LoaiSP`) mà hiện tại chưa có sản phẩm nào thuộc loại đó (trong bảng `SanPham`), bạn sẽ sử dụng loại JOIN nào và điều kiện lọc nào?

  • A. INNER JOIN và WHERE SanPham.idLoai IS NULL
  • B. LEFT JOIN (từ LoaiSP sang SanPham) và WHERE SanPham.idSP IS NULL
  • C. RIGHT JOIN (từ LoaiSP sang SanPham) và WHERE SanPham.idSP IS NOT NULL
  • D. INNER JOIN và WHERE LoaiSP.idLoai IS NULL

Câu 10: Giả sử bạn thực hiện một truy vấn JOIN và kết quả trả về số lượng hàng rất lớn, dường như là tích của số hàng của hai bảng ban đầu. Lỗi phổ biến nào trong câu lệnh JOIN có thể gây ra kết quả này?

  • A. Thiếu hoặc sai điều kiện kết nối (mệnh đề ON).
  • B. Sử dụng sai loại JOIN (ví dụ: dùng LEFT thay vì INNER).
  • C. Mệnh đề WHERE bị thiếu.
  • D. Sử dụng bí danh (alias) cho tên bảng.

Câu 11: Trong câu lệnh `SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;`, việc sử dụng `bannhac.tenBannhac` và `nhacsi.tenNhacsi` (thêm tên bảng trước tên cột) là bắt buộc khi nào?

  • A. Luôn luôn bắt buộc để câu lệnh rõ ràng.
  • B. Chỉ khi tên cột giống nhau ở cả hai bảng.
  • C. Khi tên cột cần chọn xuất hiện ở nhiều hơn một bảng tham gia JOIN.
  • D. Chỉ khi sử dụng bí danh (alias) cho tên bảng.

Câu 12: Bạn muốn lấy danh sách các bản thu âm (từ bảng `banthuam`) cùng với tên bản nhạc (từ bảng `bannhac`) và tên ca sĩ (từ bảng `casi`) đã thực hiện bản thu âm đó. Giả sử các bảng này liên kết với nhau qua các khóa ngoại phù hợp. Câu lệnh nào sau đây thực hiện đúng yêu cầu?

  • A. SELECT bt.idBanthuam, bn.tenBannhac, cs.tenCasi FROM banthuam bt JOIN bannhac bn ON bt.idBannhac = bn.idBannhac JOIN casi cs ON bt.idCasi = cs.idCasi;
  • B. SELECT bt.idBanthuam, bn.tenBannhac, cs.tenCasi FROM banthuam bt, bannhac bn, casi cs WHERE bt.idBannhac = bn.idBannhac AND bt.idCasi = cs.idCasi;
  • C. SELECT * FROM banthuam bt LEFT JOIN bannhac bn ON bt.idBannhac = bn.idBannhac LEFT JOIN casi cs ON bt.idCasi = cs.idCasi;
  • D. SELECT bt.idBanthuam, bn.tenBannhac, cs.tenCasi FROM banthuam bt JOIN bannhac bn ON bt.idBannhac = bn.idBannhac OR bt.idCasi = cs.idCasi;

Câu 13: Sử dụng cấu trúc bảng ở Câu 12. Bạn muốn tìm tất cả các bản thu âm của ca sĩ có tên "Mỹ Tâm". Câu lệnh nào sau đây là chính xác?

  • A. SELECT bt.* FROM banthuam bt WHERE bt.idCasi = (SELECT idCasi FROM casi WHERE tenCasi = "Mỹ Tâm");
  • B. SELECT bt.* FROM banthuam bt JOIN casi cs ON bt.idCasi = cs.idCasi WHERE cs.tenCasi = "Mỹ Tâm";
  • C. SELECT bt.idBanthuam, bn.tenBannhac, cs.tenCasi FROM banthuam bt JOIN bannhac bn ON bt.idBannhac = bn.idBannhac JOIN casi cs ON bt.idCasi = cs.idCasi WHERE cs.tenCasi = "Mỹ Tâm";
  • D. SELECT bt.* FROM banthuam bt WHERE tenCasi = "Mỹ Tâm";

Câu 14: Bạn có bảng `KhachHang` (idKH, tenKH) và `DonHang` (idDH, idKH, ngayDH, tongTien). `idKH` trong `DonHang` là khóa ngoại liên kết đến `KhachHang`. Bạn muốn liệt kê tất cả khách hàng và tổng số đơn hàng mà mỗi khách hàng đã đặt. Khách hàng chưa đặt đơn hàng nào cũng phải xuất hiện với tổng số đơn là 0. Câu lệnh SQL nào phù hợp?

  • A. SELECT kh.tenKH, COUNT(dh.idDH) FROM KhachHang kh INNER JOIN DonHang dh ON kh.idKH = dh.idKH GROUP BY kh.tenKH;
  • B. SELECT kh.tenKH, COUNT(dh.idDH) FROM KhachHang kh, DonHang dh WHERE kh.idKH = dh.idKH GROUP BY kh.tenKH;
  • C. SELECT kh.tenKH, COUNT(dh.idDH) FROM KhachHang kh LEFT JOIN DonHang dh ON kh.idKH = dh.idKH;
  • D. SELECT kh.tenKH, COUNT(dh.idDH) AS TongDonHang FROM KhachHang kh LEFT JOIN DonHang dh ON kh.idKH = dh.idKH GROUP BY kh.tenKH ORDER BY kh.tenKH;

Câu 15: Khi sử dụng bí danh (alias) cho tên bảng trong câu lệnh JOIN (ví dụ: `FROM bannhac bn JOIN nhacsi ns ON bn.idNhacsi = ns.idNhacsi`), mục đích chính là gì?

  • A. Bắt buộc phải có khi JOIN nhiều hơn một bảng.
  • B. Làm cho câu lệnh ngắn gọn, dễ đọc và tránh nhập nhằng tên cột.
  • C. Tăng tốc độ thực hiện truy vấn.
  • D. Chỉ được sử dụng với LEFT JOIN.

Câu 16: Giả sử bảng `SanPham` (idSP, tenSP) và bảng `ChiTietDonHang` (idCTDH, idDH, idSP, soLuong). `idSP` trong `ChiTietDonHang` liên kết đến `SanPham`. Bạn muốn tìm tất cả sản phẩm đã từng được bán. Câu lệnh SQL nào phù hợp?

  • A. SELECT DISTINCT sp.tenSP FROM SanPham sp JOIN ChiTietDonHang ctdh ON sp.idSP = ctdh.idSP;
  • B. SELECT sp.tenSP FROM SanPham sp LEFT JOIN ChiTietDonHang ctdh ON sp.idSP = ctdh.idSP;
  • C. SELECT sp.tenSP FROM SanPham sp WHERE sp.idSP IN (SELECT idSP FROM ChiTietDonHang);
  • D. SELECT sp.tenSP FROM SanPham sp;

Câu 17: Trong một câu lệnh JOIN, nếu không sử dụng mệnh đề `ON` hoặc `WHERE` để chỉ định điều kiện kết nối, kết quả trả về sẽ là gì?

  • A. Báo lỗi cú pháp.
  • B. Tích Descartes (Cartesian Product) của hai bảng.
  • C. Chỉ các hàng từ bảng đầu tiên.
  • D. Chỉ các hàng có giá trị NULL.

Câu 18: Bạn có bảng `NhanVien` (idNV, tenNV, idPhongBan) và `PhongBan` (idPhongBan, tenPhongBan). `idPhongBan` trong `NhanVien` là khóa ngoại. Bạn muốn liệt kê tên phòng ban và số lượng nhân viên trong mỗi phòng ban. Câu lệnh nào sau đây thực hiện điều này?

  • A. SELECT pb.tenPhongBan, COUNT(nv.idNV) AS SoLuongNhanVien FROM PhongBan pb JOIN NhanVien nv ON pb.idPhongBan = nv.idPhongBan GROUP BY pb.tenPhongBan;
  • B. SELECT pb.tenPhongBan, COUNT(*) FROM PhongBan pb LEFT JOIN NhanVien nv ON pb.idPhongBan = nv.idPhongBan GROUP BY pb.tenPhongBan;
  • C. SELECT pb.tenPhongBan, COUNT(nv.idNV) FROM PhongBan pb, NhanVien nv WHERE pb.idPhongBan = nv.idPhongBan GROUP BY pb.tenPhongBan;
  • D. SELECT tenPhongBan, COUNT(*) FROM NhanVien GROUP BY tenPhongBan;

Câu 19: Vẫn với bảng `NhanVien` và `PhongBan` như ở Câu 18. Bạn muốn liệt kê tên phòng ban và số lượng nhân viên, bao gồm cả các phòng ban hiện chưa có nhân viên nào (với số lượng nhân viên là 0). Câu lệnh nào phù hợp?

  • A. SELECT pb.tenPhongBan, COUNT(nv.idNV) FROM PhongBan pb INNER JOIN NhanVien nv ON pb.idPhongBan = nv.idPhongBan GROUP BY pb.tenPhongBan;
  • B. SELECT pb.tenPhongBan, COUNT(nv.idNV) AS SoLuongNhanVien FROM PhongBan pb LEFT JOIN NhanVien nv ON pb.idPhongBan = nv.idPhongBan GROUP BY pb.tenPhongBan ORDER BY pb.tenPhongBan;
  • C. SELECT pb.tenPhongBan, COUNT(*) FROM PhongBan pb RIGHT JOIN NhanVien nv ON pb.idPhongBan = nv.idPhongBan GROUP BY pb.tenPhongBan;
  • D. SELECT pb.tenPhongBan, COUNT(nv.idNV) FROM PhongBan pb WHERE pb.idPhongBan NOT IN (SELECT idPhongBan FROM NhanVien) GROUP BY pb.tenPhongBan;

Câu 20: Khi viết câu lệnh SELECT với JOIN, việc sử dụng bí danh (alias) cho tên cột (ví dụ: `COUNT(nv.idNV) AS SoLuongNhanVien`) có mục đích gì?

  • A. Chỉ định cột nào từ bảng nào.
  • B. Lọc dữ liệu trước khi JOIN.
  • C. Đặt tên tạm thời cho cột trong kết quả truy vấn.
  • D. Xác định điều kiện kết nối giữa các bảng.

Câu 21: Giả sử bạn có bảng `SinhVien` (idSV, tenSV, idKhoa) và bảng `Khoa` (idKhoa, tenKhoa). Bạn thực hiện truy vấn `SELECT s.tenSV, k.tenKhoa FROM SinhVien s LEFT JOIN Khoa k ON s.idKhoa = k.idKhoa;`. Nếu có sinh viên trong bảng `SinhVien` mà `idKhoa` của họ là NULL, kết quả truy vấn sẽ hiển thị gì cho sinh viên đó?

  • A. Sinh viên đó sẽ không xuất hiện trong kết quả.
  • B. Cột `tenKhoa` sẽ hiển thị giá trị rỗng.
  • C. Cột `tenKhoa` sẽ hiển thị "Không xác định".
  • D. Sinh viên đó sẽ xuất hiện, và cột `tenKhoa` sẽ hiển thị NULL.

Câu 22: Mục đích chính của việc liên kết (tạo quan hệ) giữa các bảng trong cơ sở dữ liệu quan hệ là gì?

  • A. Tổ chức dữ liệu, tránh lặp thừa và cho phép truy xuất dữ liệu kết hợp từ nhiều bảng.
  • B. Chỉ để phục vụ cho việc sử dụng câu lệnh JOIN.
  • C. Đảm bảo tính bảo mật của dữ liệu.
  • D. Giới hạn số lượng bản ghi trong mỗi bảng.

Câu 23: Giả sử bạn có bảng `SanBay` (idSB, tenSB, thanhPho) và bảng `ChuyenBay` (idCB, maCB, idSBDi, idSBDen). `idSBDi` và `idSBDen` trong `ChuyenBay` đều là khóa ngoại liên kết đến `idSB` trong `SanBay`. Bạn muốn liệt kê mã chuyến bay, tên sân bay đi và tên sân bay đến. Câu lệnh SQL nào phù hợp?

  • A. SELECT cb.maCB, sb.tenSB, sb.tenSB FROM ChuyenBay cb JOIN SanBay sb ON cb.idSBDi = sb.idSB AND cb.idSBDen = sb.idSB;
  • B. SELECT cb.maCB, sbDi.tenSB, sbDen.tenSB FROM ChuyenBay cb JOIN SanBay sbDi ON cb.idSBDi = sbDi.idSB JOIN SanBay sbDen ON cb.idSBDen = sbDen.idSB;
  • C. SELECT cb.maCB, SanBay.tenSB FROM ChuyenBay cb JOIN SanBay ON cb.idSBDi = SanBay.idSB OR cb.idSBDen = SanBay.idSB;
  • D. SELECT cb.maCB, sbDi.tenSB, sbDen.tenSB FROM ChuyenBay cb INNER JOIN SanBay sbDi ON cb.idSBDi = sbDi.idSB INNER JOIN SanBay sbDen ON cb.idSBDen = sbDen.idSB;

Câu 24: Trong một câu lệnh JOIN, mệnh đề `WHERE` được áp dụng ở bước nào của quá trình xử lý truy vấn (về mặt logic)?

  • A. Trước khi thực hiện JOIN.
  • B. Sau khi thực hiện JOIN và tạo ra tập kết quả tạm thời.
  • C. Cùng lúc với mệnh đề ON.
  • D. Sau khi thực hiện SELECT.

Câu 25: Bạn có hai bảng `KhachHang` (idKH, tenKH, thanhPho) và `DonHang` (idDH, idKH, ngayDH). Bạn muốn tìm tên của tất cả khách hàng ở "Hà Nội" đã đặt ít nhất một đơn hàng. Câu lệnh SQL nào phù hợp?

  • A. SELECT DISTINCT kh.tenKH FROM KhachHang kh JOIN DonHang dh ON kh.idKH = dh.idKH WHERE kh.thanhPho = "Hà Nội";
  • B. SELECT kh.tenKH FROM KhachHang kh WHERE kh.thanhPho = "Hà Nội" AND kh.idKH IN (SELECT idKH FROM DonHang);
  • C. SELECT kh.tenKH FROM KhachHang kh LEFT JOIN DonHang dh ON kh.idKH = dh.idKH WHERE kh.thanhPho = "Hà Nội";
  • D. SELECT kh.tenKH FROM KhachHang kh WHERE kh.thanhPho = "Hà Nội";

Câu 26: Đâu là lợi ích chính của việc sử dụng JOIN để kết hợp dữ liệu từ các bảng, so với việc thực hiện các truy vấn riêng lẻ rồi xử lý kết quả trong ứng dụng?

  • A. Giảm số lượng cột trong kết quả.
  • B. Luôn trả về kết quả ít hơn so với truy vấn riêng lẻ.
  • C. Thường hiệu quả hơn về tài nguyên và tốc độ xử lý dữ liệu lớn tại máy chủ cơ sở dữ liệu.
  • D. Chỉ có thể thực hiện được với các bảng có cùng số lượng hàng.

Câu 27: Cho bảng `SanPham` (idSP, tenSP, idLoai) và `LoaiSP` (idLoai, tenLoai). Một câu lệnh truy vấn được viết như sau: `SELECT s.tenSP, l.tenLoai FROM SanPham s, LoaiSP l WHERE s.idLoai = l.idLoai;`. Đây là cách viết JOIN kiểu cũ. Nó tương đương với loại JOIN nào trong cú pháp JOIN hiện đại?

  • A. INNER JOIN
  • B. LEFT JOIN
  • C. RIGHT JOIN
  • D. FULL OUTER JOIN

Câu 28: Cần sử dụng loại JOIN nào nếu bạn muốn lấy tất cả các hàng từ bảng bên phải, và các hàng khớp từ bảng bên trái (điền NULL nếu không khớp)?

  • A. INNER JOIN
  • B. LEFT JOIN
  • C. RIGHT JOIN
  • D. FULL OUTER JOIN

Câu 29: Giả sử có bảng `HocSinh` (idHS, tenHS) và `Diem` (idDiem, idHS, monHoc, diemSo). `idHS` trong `Diem` là khóa ngoại. Bạn muốn tìm tất cả học sinh chưa có bất kỳ điểm nào trong bảng `Diem`. Câu lệnh SQL nào phù hợp?

  • A. SELECT hs.tenHS FROM HocSinh hs INNER JOIN Diem d ON hs.idHS = d.idHS WHERE d.idHS IS NULL;
  • B. SELECT hs.tenHS FROM HocSinh hs LEFT JOIN Diem d ON hs.idHS = d.idHS WHERE d.idHS IS NULL;
  • C. SELECT hs.tenHS FROM HocSinh hs WHERE hs.idHS NOT IN (SELECT idHS FROM Diem);
  • D. SELECT hs.tenHS FROM HocSinh hs WHERE EXISTS (SELECT idHS FROM Diem WHERE hs.idHS = Diem.idHS);

Câu 30: Trong câu lệnh JOIN, nếu cả hai bảng được JOIN đều có một cột cùng tên (ví dụ: cả `BangA` và `BangB` đều có cột `ID`), và bạn muốn chọn cột `ID` trong kết quả, bạn cần làm gì để tránh lỗi nhập nhằng?

  • A. Chỉ định rõ cột đó thuộc về bảng nào bằng cách sử dụng `TenBang.TenCot` hoặc `BiDanh.TenCot` (ví dụ: `BangA.ID` hoặc `a.ID`).
  • B. Đổi tên cột ở một trong hai bảng trước khi JOIN.
  • C. Chỉ chọn cột ID một lần duy nhất.
  • D. Sử dụng mệnh đề DISTINCT.

1 / 30

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

Tags: Bộ đề 04

Câu 1: Giả sử có hai bảng `Sach` (chứa các cột idSach, tenSach, idTacGia) và `TacGia` (chứa các cột idTacGia, tenTacGia). Cột `idTacGia` trong bảng `Sach` là khóa ngoại liên kết đến cột `idTacGia` là khóa chính trong bảng `TacGia`. Câu lệnh SQL nào sau đây sẽ truy vấn danh sách tên sách và tên tác giả tương ứng của các cuốn sách?

2 / 30

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

Tags: Bộ đề 04

Câu 2: Vẫn với hai bảng `Sach` và `TacGia` như ở Câu 1. Bạn muốn lấy danh sách *tất cả* các tác giả và tên các cuốn sách của họ (nếu có). Các tác giả chưa có sách nào cũng phải xuất hiện trong kết quả. Câu lệnh SQL nào phù hợp nhất?

3 / 30

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

Tags: Bộ đề 04

Câu 3: Khi thực hiện truy vấn LEFT JOIN giữa bảng `TacGia` (trái) và bảng `Sach` (phải) như ở Câu 2, những tác giả chưa có cuốn sách nào sẽ xuất hiện trong kết quả. Các cột lấy từ bảng `Sach` (ví dụ: `tenSach`) trong các hàng tương ứng với những tác giả này sẽ có giá trị là gì?

4 / 30

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

Tags: Bộ đề 04

Câu 4: Có ba bảng: `HocSinh` (idHS, tenHS, idLop), `LopHoc` (idLop, tenLop, idGVCN), `GiaoVien` (idGV, tenGV). `idLop` trong `HocSinh` liên kết đến `LopHoc`. `idGVCN` trong `LopHoc` liên kết đến `GiaoVien`. Câu lệnh SQL nào sau đây truy vấn danh sách tên học sinh, tên lớp và tên giáo viên chủ nhiệm của lớp đó?

5 / 30

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

Tags: Bộ đề 04

Câu 5: Sử dụng cấu trúc bảng ở Câu 4. Bạn muốn tìm tất cả học sinh và tên giáo viên chủ nhiệm của họ trong lớp có tên là '11A1'. Câu lệnh SQL nào thực hiện được điều này?

6 / 30

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

Tags: Bộ đề 04

Câu 6: Trong câu lệnh JOIN, mệnh đề `ON` có vai trò gì?

7 / 30

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

Tags: Bộ đề 04

Câu 7: Sự khác biệt cơ bản giữa INNER JOIN và LEFT JOIN là gì?

8 / 30

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

Tags: Bộ đề 04

Câu 8: Giả sử bảng `SanPham` (idSP, tenSP, idLoai) và bảng `LoaiSP` (idLoai, tenLoai). Có một sản phẩm trong bảng `SanPham` có `idLoai` là NULL (chưa phân loại). Khi thực hiện `SELECT s.tenSP, l.tenLoai FROM SanPham s INNER JOIN LoaiSP l ON s.idLoai = l.idLoai;`, sản phẩm chưa phân loại này có xuất hiện trong kết quả không? Vì sao?

9 / 30

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

Tags: Bộ đề 04

Câu 9: Để lấy danh sách các loại sản phẩm (từ bảng `LoaiSP`) mà hiện tại chưa có sản phẩm nào thuộc loại đó (trong bảng `SanPham`), bạn sẽ sử dụng loại JOIN nào và điều kiện lọc nào?

10 / 30

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

Tags: Bộ đề 04

Câu 10: Giả sử bạn thực hiện một truy vấn JOIN và kết quả trả về số lượng hàng rất lớn, dường như là tích của số hàng của hai bảng ban đầu. Lỗi phổ biến nào trong câu lệnh JOIN có thể gây ra kết quả này?

11 / 30

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

Tags: Bộ đề 04

Câu 11: Trong câu lệnh `SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;`, việc sử dụng `bannhac.tenBannhac` và `nhacsi.tenNhacsi` (thêm tên bảng trước tên cột) là bắt buộc khi nào?

12 / 30

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

Tags: Bộ đề 04

Câu 12: Bạn muốn lấy danh sách các bản thu âm (từ bảng `banthuam`) cùng với tên bản nhạc (từ bảng `bannhac`) và tên ca sĩ (từ bảng `casi`) đã thực hiện bản thu âm đó. Giả sử các bảng này liên kết với nhau qua các khóa ngoại phù hợp. Câu lệnh nào sau đây thực hiện đúng yêu cầu?

13 / 30

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

Tags: Bộ đề 04

Câu 13: Sử dụng cấu trúc bảng ở Câu 12. Bạn muốn tìm tất cả các bản thu âm của ca sĩ có tên 'Mỹ Tâm'. Câu lệnh nào sau đây là chính xác?

14 / 30

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

Tags: Bộ đề 04

Câu 14: Bạn có bảng `KhachHang` (idKH, tenKH) và `DonHang` (idDH, idKH, ngayDH, tongTien). `idKH` trong `DonHang` là khóa ngoại liên kết đến `KhachHang`. Bạn muốn liệt kê tất cả khách hàng và tổng số đơn hàng mà mỗi khách hàng đã đặt. Khách hàng chưa đặt đơn hàng nào cũng phải xuất hiện với tổng số đơn là 0. Câu lệnh SQL nào phù hợp?

15 / 30

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

Tags: Bộ đề 04

Câu 15: Khi sử dụng bí danh (alias) cho tên bảng trong câu lệnh JOIN (ví dụ: `FROM bannhac bn JOIN nhacsi ns ON bn.idNhacsi = ns.idNhacsi`), mục đích chính là gì?

16 / 30

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

Tags: Bộ đề 04

Câu 16: Giả sử bảng `SanPham` (idSP, tenSP) và bảng `ChiTietDonHang` (idCTDH, idDH, idSP, soLuong). `idSP` trong `ChiTietDonHang` liên kết đến `SanPham`. Bạn muốn tìm tất cả sản phẩm đã từng được bán. Câu lệnh SQL nào phù hợp?

17 / 30

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

Tags: Bộ đề 04

Câu 17: Trong một câu lệnh JOIN, nếu không sử dụng mệnh đề `ON` hoặc `WHERE` để chỉ định điều kiện kết nối, kết quả trả về sẽ là gì?

18 / 30

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

Tags: Bộ đề 04

Câu 18: Bạn có bảng `NhanVien` (idNV, tenNV, idPhongBan) và `PhongBan` (idPhongBan, tenPhongBan). `idPhongBan` trong `NhanVien` là khóa ngoại. Bạn muốn liệt kê tên phòng ban và số lượng nhân viên trong mỗi phòng ban. Câu lệnh nào sau đây thực hiện điều này?

19 / 30

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

Tags: Bộ đề 04

Câu 19: Vẫn với bảng `NhanVien` và `PhongBan` như ở Câu 18. Bạn muốn liệt kê tên phòng ban và số lượng nhân viên, bao gồm cả các phòng ban hiện chưa có nhân viên nào (với số lượng nhân viên là 0). Câu lệnh nào phù hợp?

20 / 30

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

Tags: Bộ đề 04

Câu 20: Khi viết câu lệnh SELECT với JOIN, việc sử dụng bí danh (alias) cho tên cột (ví dụ: `COUNT(nv.idNV) AS SoLuongNhanVien`) có mục đích gì?

21 / 30

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

Tags: Bộ đề 04

Câu 21: Giả sử bạn có bảng `SinhVien` (idSV, tenSV, idKhoa) và bảng `Khoa` (idKhoa, tenKhoa). Bạn thực hiện truy vấn `SELECT s.tenSV, k.tenKhoa FROM SinhVien s LEFT JOIN Khoa k ON s.idKhoa = k.idKhoa;`. Nếu có sinh viên trong bảng `SinhVien` mà `idKhoa` của họ là NULL, kết quả truy vấn sẽ hiển thị gì cho sinh viên đó?

22 / 30

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

Tags: Bộ đề 04

Câu 22: Mục đích chính của việc liên kết (tạo quan hệ) giữa các bảng trong cơ sở dữ liệu quan hệ là gì?

23 / 30

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

Tags: Bộ đề 04

Câu 23: Giả sử bạn có bảng `SanBay` (idSB, tenSB, thanhPho) và bảng `ChuyenBay` (idCB, maCB, idSBDi, idSBDen). `idSBDi` và `idSBDen` trong `ChuyenBay` đều là khóa ngoại liên kết đến `idSB` trong `SanBay`. Bạn muốn liệt kê mã chuyến bay, tên sân bay đi và tên sân bay đến. Câu lệnh SQL nào phù hợp?

24 / 30

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

Tags: Bộ đề 04

Câu 24: Trong một câu lệnh JOIN, mệnh đề `WHERE` được áp dụng ở bước nào của quá trình xử lý truy vấn (về mặt logic)?

25 / 30

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

Tags: Bộ đề 04

Câu 25: Bạn có hai bảng `KhachHang` (idKH, tenKH, thanhPho) và `DonHang` (idDH, idKH, ngayDH). Bạn muốn tìm tên của tất cả khách hàng ở 'Hà Nội' đã đặt ít nhất một đơn hàng. Câu lệnh SQL nào phù hợp?

26 / 30

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

Tags: Bộ đề 04

Câu 26: Đâu là lợi ích chính của việc sử dụng JOIN để kết hợp dữ liệu từ các bảng, so với việc thực hiện các truy vấn riêng lẻ rồi xử lý kết quả trong ứng dụng?

27 / 30

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

Tags: Bộ đề 04

Câu 27: Cho bảng `SanPham` (idSP, tenSP, idLoai) và `LoaiSP` (idLoai, tenLoai). Một câu lệnh truy vấn được viết như sau: `SELECT s.tenSP, l.tenLoai FROM SanPham s, LoaiSP l WHERE s.idLoai = l.idLoai;`. Đây là cách viết JOIN kiểu cũ. Nó tương đương với loại JOIN nào trong cú pháp JOIN hiện đại?

28 / 30

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

Tags: Bộ đề 04

Câu 28: Cần sử dụng loại JOIN nào nếu bạn muốn lấy tất cả các hàng từ bảng bên phải, và các hàng khớp từ bảng bên trái (điền NULL nếu không khớp)?

29 / 30

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

Tags: Bộ đề 04

Câu 29: Giả sử có bảng `HocSinh` (idHS, tenHS) và `Diem` (idDiem, idHS, monHoc, diemSo). `idHS` trong `Diem` là khóa ngoại. Bạn muốn tìm tất cả học sinh chưa có bất kỳ điểm nào trong bảng `Diem`. Câu lệnh SQL nào phù hợp?

30 / 30

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

Tags: Bộ đề 04

Câu 30: Trong câu lệnh JOIN, nếu cả hai bảng được JOIN đều có một cột cùng tên (ví dụ: cả `BangA` và `BangB` đều có cột `ID`), và bạn muốn chọn cột `ID` trong kết quả, bạn cần làm gì để tránh lỗi nhập nhằng?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 05

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 05 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong cơ sở dữ liệu quản lý nhạc, giả sử có hai bảng `bannhac` (idBannhac, tenBannhac, idNhacsi, idTheloai) và `nhacsi` (idNhacsi, tenNhacsi). Câu lệnh SQL nào dưới đây sẽ liệt kê tên tất cả bản nhạc cùng với tên nhạc sĩ sáng tác tương ứng, chỉ bao gồm các bản nhạc có thông tin nhạc sĩ đầy đủ?

  • A. SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac, nhacsi WHERE bannhac.idNhacsi = nhacsi.idNhacsi;
  • B. SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b INNER JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi;
  • C. SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac LEFT JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;
  • D. SELECT tenBannhac, tenNhacsi FROM bannhac JOIN nhacsi WHERE bannhac.idNhacsi = nhacsi.idNhacsi;

Câu 2: Sử dụng cấu trúc bảng như Câu 1, làm thế nào để lấy danh sách tên các bản nhạc được sáng tác bởi nhạc sĩ có `idNhacsi` là 5? (Giả sử nhạc sĩ này tồn tại)

  • A. SELECT tenBannhac FROM bannhac, nhacsi WHERE nhacsi.idNhacsi = 5;
  • B. SELECT b.tenBannhac FROM bannhac AS b JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi AND ns.idNhacsi = 5;
  • C. SELECT tenBannhac FROM bannhac WHERE idNhacsi = 5;
  • D. SELECT tenBannhac FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi WHERE idNhacsi = 5;

Câu 3: Giả sử có thêm bảng `theloai` (idTheloai, tenTheloai) liên kết với bảng `bannhac` qua `idTheloai`. Câu lệnh SQL nào sẽ liệt kê tên bản nhạc, tên nhạc sĩ, và tên thể loại cho tất cả bản nhạc có đầy đủ thông tin liên kết?

  • A. SELECT b.tenBannhac, ns.tenNhacsi, tl.tenTheloai FROM bannhac AS b JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi JOIN theloai AS tl ON b.idTheloai = tl.idTheloai;
  • B. SELECT b.tenBannhac, ns.tenNhacsi, tl.tenTheloai FROM bannhac AS b, nhacsi AS ns, theloai AS tl WHERE b.idNhacsi = ns.idNhacsi OR b.idTheloai = tl.idTheloai;
  • C. SELECT bannhac.tenBannhac, nhacsi.tenNhacsi, theloai.tenTheloai FROM bannhac, nhacsi, theloai WHERE bannhac.idNhacsi = nhacsi.idNhacsi AND bannhac.idTheloai = theloai.idTheloai;
  • D. SELECT * FROM bannhac JOIN nhacsi JOIN theloai ON bannhac.idNhacsi = nhacsi.idNhacsi AND bannhac.idTheloai = theloai.idTheloai;

Câu 4: Vẫn với các bảng `bannhac`, `nhacsi`, `theloai`. Làm thế nào để liệt kê tên các bản nhạc thuộc thể loại "Nhạc Trữ Tình"?

  • A. SELECT tenBannhac FROM bannhac WHERE idTheloai = (SELECT idTheloai FROM theloai WHERE tenTheloai = "Nhạc Trữ Tình");
  • B. SELECT b.tenBannhac FROM bannhac AS b JOIN theloai AS tl ON b.idTheloai = tl.idTheloai WHERE tl.tenTheloai = "Nhạc Trữ Tình";
  • C. SELECT b.tenBannhac FROM bannhac AS b, theloai AS tl WHERE tl.tenTheloai = "Nhạc Trữ Tình";
  • D. SELECT tenBannhac FROM bannhac WHERE tenTheloai = "Nhạc Trữ Tình";

Câu 5: Trong truy vấn dữ liệu từ nhiều bảng, việc sử dụng bí danh (alias) cho tên bảng mang lại lợi ích chính nào?

  • A. Bắt buộc phải sử dụng khi JOIN nhiều hơn 2 bảng.
  • B. Giúp tăng tốc độ thực thi câu lệnh SQL.
  • C. Cho phép chọn tất cả các cột từ tất cả các bảng mà không cần chỉ định rõ.
  • D. Rút gọn tên bảng, giúp câu lệnh ngắn gọn, dễ đọc và tránh nhầm lẫn khi các bảng có cột trùng tên.

Câu 6: Giả sử có bảng `casi` (idCasi, tenCasi) và bảng trung gian `banthuam` (idBanthuam, idBannhac, idCasi) liên kết `bannhac` và `casi`. Câu lệnh SQL nào sẽ liệt kê tên bản nhạc và tên ca sĩ cho tất cả các bản thu âm hiện có?

  • A. SELECT b.tenBannhac, c.tenCasi FROM bannhac AS b, casi AS c;
  • B. SELECT b.tenBannhac, c.tenCasi FROM banthuam AS bt JOIN bannhac AS b ON bt.idBannhac = b.idBannhac;
  • C. SELECT b.tenBannhac, c.tenCasi FROM banthuam AS bt JOIN bannhac AS b ON bt.idBannhac = b.idBannhac JOIN casi AS c ON bt.idCasi = c.idCasi;
  • D. SELECT b.tenBannhac, c.tenCasi FROM banthuam AS bt WHERE bt.idBannhac = bannhac.idBannhac AND bt.idCasi = casi.idCasi;

Câu 7: Sử dụng cấu trúc bảng như Câu 5. Làm thế nào để liệt kê tên các bản nhạc đã được thu âm bởi ca sĩ "Mỹ Tâm"?

  • A. SELECT DISTINCT b.tenBannhac FROM banthuam AS bt JOIN bannhac AS b ON bt.idBannhac = b.idBannhac JOIN casi AS c ON bt.idCasi = c.idCasi WHERE c.tenCasi = "Mỹ Tâm";
  • B. SELECT b.tenBannhac FROM bannhac AS b WHERE EXISTS (SELECT 1 FROM banthuam AS bt JOIN casi AS c ON bt.idCasi = c.idCasi WHERE bt.idBannhac = b.idBannhac AND c.tenCasi = "Mỹ Tâm");
  • C. SELECT b.tenBannhac FROM bannhac AS b, casi AS c, banthuam AS bt WHERE b.idBannhac = bt.idBannhac AND c.idCasi = bt.idCasi AND c.tenCasi = "Mỹ Tâm";
  • D. Tất cả các đáp án trên đều đúng.

Câu 8: Câu lệnh SQL nào sử dụng `LEFT JOIN` để liệt kê tên tất cả các bản nhạc từ bảng `bannhac` và tên nhạc sĩ tương ứng từ bảng `nhacsi`, bao gồm cả những bản nhạc chưa có thông tin nhạc sĩ?

  • A. SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b INNER JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi;
  • B. SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b RIGHT JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi;
  • C. SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b, nhacsi AS ns WHERE b.idNhacsi = ns.idNhacsi (+);
  • D. SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b LEFT JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi;

Câu 9: Khi sử dụng `LEFT JOIN` giữa bảng A (bên trái) và bảng B (bên phải) trên một điều kiện liên kết, kết quả sẽ bao gồm:

  • A. Chỉ các hàng có sự khớp giữa cả hai bảng A và B.
  • B. Tất cả các hàng từ bảng B và các hàng khớp từ bảng A.
  • C. Tất cả các hàng từ bảng A và các hàng khớp từ bảng B (với giá trị NULL cho các cột của B nếu không có hàng khớp).
  • D. Tất cả các hàng từ cả hai bảng A và B, bất kể có khớp hay không.

Câu 10: Sử dụng cấu trúc bảng như Câu 1 (`bannhac`, `nhacsi`). Câu lệnh nào sẽ liệt kê tên các bản nhạc chưa có thông tin nhạc sĩ được gán trong cơ sở dữ liệu?

  • A. SELECT b.tenBannhac FROM bannhac AS b LEFT JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi WHERE ns.idNhacsi IS NULL;
  • B. SELECT b.tenBannhac FROM bannhac AS b WHERE b.idNhacsi IS NULL;
  • C. SELECT b.tenBannhac FROM bannhac AS b WHERE b.idNhacsi NOT IN (SELECT idNhacsi FROM nhacsi);
  • D. SELECT b.tenBannhac FROM bannhac AS b JOIN nhacsi AS ns ON b.idNhacsi != ns.idNhacsi;

Câu 11: Xem xét câu lệnh sau: `SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b, nhacsi AS ns WHERE b.idNhacsi = ns.idNhacsi;`. Câu lệnh này tương đương với loại JOIN nào?

  • A. LEFT JOIN
  • B. INNER JOIN
  • C. RIGHT JOIN
  • D. FULL OUTER JOIN

Câu 12: Trong cơ sở dữ liệu nhạc, bạn muốn tìm tất cả các bản thu âm (từ bảng `banthuam`) và hiển thị tên bản nhạc (từ `bannhac`) và tên ca sĩ (từ `casi`) đã thực hiện bản thu đó. Bảng `banthuam` có khóa ngoại `idBannhac` và `idCasi`. Bạn cần sử dụng các phép JOIN nào?

  • A. Hai lần INNER JOIN.
  • B. Một lần LEFT JOIN và một lần RIGHT JOIN.
  • C. Hai lần LEFT JOIN.
  • D. Một lần INNER JOIN và một lần LEFT JOIN.

Câu 13: Bạn thực hiện truy vấn `SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b LEFT JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi;`. Nếu có một bản nhạc trong bảng `bannhac` mà `idNhacsi` của nó không khớp với bất kỳ `idNhacsi` nào trong bảng `nhacsi`, kết quả hiển thị cho bản nhạc đó sẽ như thế nào?

  • A. Bản nhạc đó sẽ không xuất hiện trong kết quả.
  • B. Tên bản nhạc xuất hiện, cột `tenNhacsi` sẽ hiển thị giá trị mặc định (ví dụ: "Không rõ").
  • C. Tên bản nhạc xuất hiện, cột `tenNhacsi` sẽ hiển thị giá trị NULL.
  • D. Sẽ xảy ra lỗi cú pháp vì không có nhạc sĩ tương ứng.

Câu 14: Để lấy danh sách tên các nhạc sĩ và số lượng bản nhạc họ đã sáng tác, bạn cần thực hiện các bước nào sau khi JOIN bảng `bannhac` và `nhacsi`?

  • A. Chỉ cần JOIN và SELECT tên nhạc sĩ.
  • B. JOIN, sau đó dùng mệnh đề WHERE để đếm.
  • C. JOIN, sau đó dùng mệnh đề ORDER BY.
  • D. JOIN, sau đó nhóm kết quả theo tên nhạc sĩ và sử dụng hàm COUNT().

Câu 15: Khi kết hợp nhiều bảng bằng `INNER JOIN`, số lượng hàng trong kết quả truy vấn sẽ là:

  • A. Nhỏ hơn hoặc bằng số hàng của bảng có ít hàng nhất trong phép JOIN.
  • B. Luôn bằng tổng số hàng của tất cả các bảng được JOIN.
  • C. Bằng tích số hàng của tất cả các bảng được JOIN.
  • D. Chỉ bao gồm các hàng có giá trị NULL trong cột liên kết.

Câu 16: Bạn muốn lấy danh sách tên tất cả các ca sĩ và các bản nhạc họ đã thu âm. Nếu một ca sĩ chưa thu âm bản nhạc nào, bạn vẫn muốn tên ca sĩ đó xuất hiện trong danh sách. Bạn sẽ sử dụng loại JOIN nào giữa bảng `casi` và bảng `banthuam` (hoặc kết hợp với `bannhac`)?

  • A. INNER JOIN
  • B. LEFT JOIN (với `casi` là bảng bên trái)
  • C. RIGHT JOIN (với `casi` là bảng bên phải)
  • D. FULL OUTER JOIN

Câu 17: Trong câu lệnh `SELECT b.tenBannhac AS "Tên Bài Hát", ns.tenNhacsi AS "Nhạc Sĩ" FROM bannhac AS b JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi;`, việc sử dụng `AS "Tên Bài Hát"` và `AS "Nhạc Sĩ"` có tác dụng gì?

  • A. Đổi tên bảng `bannhac` thành "Tên Bài Hát" và `nhacsi` thành "Nhạc Sĩ".
  • B. Chỉ hiển thị các bản nhạc có tên là "Tên Bài Hát" và nhạc sĩ có tên là "Nhạc Sĩ".
  • C. Đổi tên cột `tenBannhac` trong kết quả thành "Tên Bài Hát" và cột `tenNhacsi` thành "Nhạc Sĩ".
  • D. Tạo ra một bảng tạm thời mới với tên "Tên Bài Hát" và "Nhạc Sĩ".

Câu 18: Bạn cần truy vấn danh sách các bản nhạc (tên bản nhạc) thuộc thể loại "Nhạc Vàng" và được sáng tác bởi nhạc sĩ "Trịnh Công Sơn". Các bảng liên quan: `bannhac`, `nhacsi`, `theloai`. Mối quan hệ như đã mô tả ở các câu trước. Câu lệnh SQL nào thực hiện được yêu cầu này?

  • A. SELECT b.tenBannhac FROM bannhac AS b JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi JOIN theloai AS tl ON b.idTheloai = tl.idTheloai WHERE ns.tenNhacsi = "Trịnh Công Sơn" AND tl.tenTheloai = "Nhạc Vàng";
  • B. SELECT b.tenBannhac FROM bannhac AS b WHERE b.idNhacsi = (SELECT idNhacsi FROM nhacsi WHERE tenNhacsi = "Trịnh Công Sơn") AND b.idTheloai = (SELECT idTheloai FROM theloai WHERE tenTheloai = "Nhạc Vàng");
  • C. SELECT b.tenBannhac FROM bannhac AS b, nhacsi AS ns, theloai AS tl WHERE ns.tenNhacsi = "Trịnh Công Sơn" AND tl.tenTheloai = "Nhạc Vàng";
  • D. Cả A và B đều đúng.

Câu 19: Xem xét câu lệnh: `SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi WHERE b.idTheloai = 10;`. Câu lệnh này sẽ hiển thị:

  • A. Tất cả bản nhạc và nhạc sĩ của họ.
  • B. Chỉ các nhạc sĩ có bản nhạc với `idTheloai` là 10.
  • C. Tên bản nhạc và tên nhạc sĩ cho tất cả các bản nhạc.
  • D. Tên bản nhạc và tên nhạc sĩ, nhưng chỉ cho những bản nhạc có `idTheloai` là 10.

Câu 20: Giả sử bạn cần liệt kê tên tất cả các thể loại nhạc (từ bảng `theloai`) ngay cả khi không có bản nhạc nào thuộc thể loại đó. Bạn sẽ sử dụng loại JOIN nào giữa bảng `theloai` và `bannhac`?

  • A. LEFT JOIN (với `theloai` là bảng bên trái)
  • B. INNER JOIN
  • C. RIGHT JOIN (với `theloai` là bảng bên trái)
  • D. CROSS JOIN

Câu 21: Để lấy danh sách tên các ca sĩ và tên bản nhạc mà họ đã thu âm, sắp xếp theo tên ca sĩ, bạn cần thực hiện các bước nào?

  • A. JOIN `casi` và `bannhac`, sau đó dùng ORDER BY `tenCasi`.
  • B. JOIN `casi` và `banthuam`, sau đó JOIN `banthuam` và `bannhac`, cuối cùng dùng ORDER BY `tenBannhac`.
  • C. JOIN `casi` với `banthuam` và `bannhac`, sau đó dùng ORDER BY `tenCasi`.
  • D. JOIN `casi` và `bannhac`, sau đó dùng GROUP BY `tenCasi`.

Câu 22: Trong câu lệnh JOIN, mệnh đề `ON` được sử dụng để làm gì?

  • A. Chỉ định điều kiện lọc dữ liệu sau khi JOIN.
  • B. Xác định các cột liên kết giữa hai bảng để thực hiện phép JOIN.
  • C. Liệt kê các cột cần hiển thị trong kết quả truy vấn.
  • D. Đặt tên bí danh cho các bảng được JOIN.

Câu 23: Sử dụng cấu trúc bảng `bannhac` (idBannhac, tenBannhac, idNhacsi), `nhacsi` (idNhacsi, tenNhacsi), `banthuam` (idBanthuam, idBannhac, idCasi), `casi` (idCasi, tenCasi). Câu lệnh nào sẽ liệt kê tên các bản nhạc đã được thu âm?

  • A. SELECT tenBannhac FROM bannhac;
  • B. SELECT b.tenBannhac FROM bannhac AS b JOIN banthuam AS bt ON b.idBannhac = bt.idBannhac;
  • C. SELECT DISTINCT b.tenBannhac FROM bannhac AS b JOIN banthuam AS bt ON b.idBannhac = bt.idBannhac;
  • D. Cả B và C đều đúng (tùy thuộc vào việc có cần loại bỏ bản nhạc trùng lặp do nhiều bản thu âm không).

Câu 24: Xem xét câu lệnh: `SELECT c.tenCasi, COUNT(bt.idBanthuam) AS SoBanthuam FROM casi AS c LEFT JOIN banthuam AS bt ON c.idCasi = bt.idCasi GROUP BY c.tenCasi;`. Câu lệnh này sẽ hiển thị:

  • A. Chỉ những ca sĩ đã thu âm ít nhất một bản nhạc.
  • B. Tất cả các ca sĩ, và số lượng bản thu âm của mỗi người (hiển thị 0 nếu chưa thu âm bản nào).
  • C. Số lượng bản thu âm cho mỗi bản nhạc.
  • D. Danh sách các bản thu âm và tên ca sĩ.

Câu 25: Để lấy danh sách tên các nhạc sĩ (từ bảng `nhacsi`) và tên thể loại nhạc (từ bảng `theloai`) cho các bản nhạc mà họ sáng tác (qua bảng `bannhac`), bạn cần JOIN các bảng nào?

  • A. `nhacsi`, `bannhac`, `theloai`.
  • B. `nhacsi`, `theloai`.
  • C. `nhacsi`, `bannhac`.
  • D. `bannhac`, `theloai`.

Câu 26: Bạn muốn tìm tên các ca sĩ đã thu âm các bản nhạc thuộc thể loại "Nhạc Cách Mạng". Cần JOIN những bảng nào và lọc như thế nào?

  • A. JOIN `casi` và `bannhac`, lọc `tenTheloai = "Nhạc Cách Mạng"` trên `bannhac`.
  • B. JOIN `casi` và `banthuam`, lọc `tenTheloai = "Nhạc Cách Mạng"` trên `banthuam`.
  • C. JOIN `casi`, `banthuam`, `bannhac`, và `theloai`, lọc `tenTheloai = "Nhạc Cách Mạng"` trên `theloai`.
  • D. JOIN `casi` và `theloai`, lọc `tenTheloai = "Nhạc Cách Mạng"` trên `theloai`.

Câu 27: Trong câu lệnh `SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac b JOIN nhacsi ns ON b.idNhacsi = ns.idNhacsi;`, nếu bảng `bannhac` có 100 hàng và bảng `nhacsi` có 50 hàng, và mỗi bản nhạc đều có một nhạc sĩ tương ứng duy nhất, số lượng hàng kết quả sẽ là:

  • A. 50
  • B. 100
  • C. 150
  • D. 5000

Câu 28: Nếu trong câu 26, có 5 bản nhạc không có `idNhacsi` (giá trị NULL) và bạn thay `JOIN` bằng `LEFT JOIN` (với `bannhac` bên trái), số lượng hàng kết quả sẽ là:

  • A. 95
  • B. 100
  • C. 100 (bao gồm cả 5 hàng có `tenNhacsi` là NULL)
  • D. 105

Câu 29: Bạn muốn liệt kê tên tất cả các bản nhạc và tên nhạc sĩ, sắp xếp kết quả theo tên bản nhạc từ A-Z. Câu lệnh nào đúng?

  • A. SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b LEFT JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi ORDER BY b.tenBannhac ASC;
  • B. SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b, nhacsi AS ns WHERE b.idNhacsi = ns.idNhacsi SORT BY b.tenBannhac;
  • C. SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi ORDER BY ns.tenNhacsi;
  • D. SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b INNER JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi GROUP BY b.tenBannhac;

Câu 30: Để lấy danh sách các ca sĩ có tên bắt đầu bằng chữ "L", bạn có thể sử dụng câu lệnh nào? (Không cần JOIN nếu chỉ lọc trên bảng `casi`)

  • A. SELECT tenCasi FROM casi WHERE tenCasi = "L%";
  • B. SELECT tenCasi FROM casi WHERE tenCasi LIKE "L%";
  • C. SELECT tenCasi FROM casi WHERE LEFT(tenCasi, 1) = "L";
  • D. SELECT tenCasi FROM casi WHERE SUBSTRING(tenCasi, 1, 1) = "L";

Câu 31: Bạn muốn hiển thị tên các nhạc sĩ và số lượng bản nhạc thuộc thể loại "Nhạc Đỏ" mà mỗi nhạc sĩ đã sáng tác. Cần JOIN các bảng nào và sử dụng thêm mệnh đề gì?

  • A. JOIN `nhacsi` và `bannhac`, lọc `tenTheloai = "Nhạc Đỏ"`, GROUP BY `tenNhacsi`, COUNT `bannhac.idBannhac`.
  • B. JOIN `nhacsi`, `bannhac`, `theloai`, lọc `tenTheloai = "Nhạc Đỏ"` trên `theloai`, sau đó GROUP BY `tenNhacsi` và COUNT `bannhac.idBannhac`.
  • C. JOIN `nhacsi`, `bannhac`, `theloai`, lọc `tenTheloai = "Nhạc Đỏ"` trên `theloai`, sau đó GROUP BY `ns.tenNhacsi` và COUNT `b.idBannhac` (sử dụng bí danh).
  • D. Chỉ cần JOIN `nhacsi` và `theloai`, lọc `tenTheloai = "Nhạc Đỏ"`, COUNT các nhạc sĩ.

1 / 30

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

Tags: Bộ đề 05

Trong cơ sở dữ liệu quản lý nhạc, giả sử có hai bảng `bannhac` (idBannhac, tenBannhac, idNhacsi, idTheloai) và `nhacsi` (idNhacsi, tenNhacsi). Câu lệnh SQL nào dưới đây sẽ liệt kê tên tất cả bản nhạc cùng với tên nhạc sĩ sáng tác tương ứng, chỉ bao gồm các bản nhạc có thông tin nhạc sĩ đầy đủ?

2 / 30

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

Tags: Bộ đề 05

Sử dụng cấu trúc bảng như Câu 1, làm thế nào để lấy danh sách tên các bản nhạc được sáng tác bởi nhạc sĩ có `idNhacsi` là 5? (Giả sử nhạc sĩ này tồn tại)

3 / 30

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

Tags: Bộ đề 05

Giả sử có thêm bảng `theloai` (idTheloai, tenTheloai) liên kết với bảng `bannhac` qua `idTheloai`. Câu lệnh SQL nào sẽ liệt kê tên bản nhạc, tên nhạc sĩ, và tên thể loại cho tất cả bản nhạc có đầy đủ thông tin liên kết?

4 / 30

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

Tags: Bộ đề 05

Vẫn với các bảng `bannhac`, `nhacsi`, `theloai`. Làm thế nào để liệt kê tên các bản nhạc thuộc thể loại 'Nhạc Trữ Tình'?

5 / 30

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

Tags: Bộ đề 05

Trong truy vấn dữ liệu từ nhiều bảng, việc sử dụng bí danh (alias) cho tên bảng mang lại lợi ích chính nào?

6 / 30

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

Tags: Bộ đề 05

Giả sử có bảng `casi` (idCasi, tenCasi) và bảng trung gian `banthuam` (idBanthuam, idBannhac, idCasi) liên kết `bannhac` và `casi`. Câu lệnh SQL nào sẽ liệt kê tên bản nhạc và tên ca sĩ cho tất cả các bản thu âm hiện có?

7 / 30

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

Tags: Bộ đề 05

Sử dụng cấu trúc bảng như Câu 5. Làm thế nào để liệt kê tên các bản nhạc đã được thu âm bởi ca sĩ 'Mỹ Tâm'?

8 / 30

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

Tags: Bộ đề 05

Câu lệnh SQL nào sử dụng `LEFT JOIN` để liệt kê tên tất cả các bản nhạc từ bảng `bannhac` và tên nhạc sĩ tương ứng từ bảng `nhacsi`, bao gồm cả những bản nhạc chưa có thông tin nhạc sĩ?

9 / 30

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

Tags: Bộ đề 05

Khi sử dụng `LEFT JOIN` giữa bảng A (bên trái) và bảng B (bên phải) trên một điều kiện liên kết, kết quả sẽ bao gồm:

10 / 30

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

Tags: Bộ đề 05

Sử dụng cấu trúc bảng như Câu 1 (`bannhac`, `nhacsi`). Câu lệnh nào sẽ liệt kê tên các bản nhạc *chưa* có thông tin nhạc sĩ được gán trong cơ sở dữ liệu?

11 / 30

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

Tags: Bộ đề 05

Xem xét câu lệnh sau: `SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b, nhacsi AS ns WHERE b.idNhacsi = ns.idNhacsi;`. Câu lệnh này tương đương với loại JOIN nào?

12 / 30

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

Tags: Bộ đề 05

Trong cơ sở dữ liệu nhạc, bạn muốn tìm tất cả các bản thu âm (từ bảng `banthuam`) và hiển thị tên bản nhạc (từ `bannhac`) và tên ca sĩ (từ `casi`) đã thực hiện bản thu đó. Bảng `banthuam` có khóa ngoại `idBannhac` và `idCasi`. Bạn cần sử dụng các phép JOIN nào?

13 / 30

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

Tags: Bộ đề 05

Bạn thực hiện truy vấn `SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b LEFT JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi;`. Nếu có một bản nhạc trong bảng `bannhac` mà `idNhacsi` của nó không khớp với bất kỳ `idNhacsi` nào trong bảng `nhacsi`, kết quả hiển thị cho bản nhạc đó sẽ như thế nào?

14 / 30

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

Tags: Bộ đề 05

Để lấy danh sách tên các nhạc sĩ và số lượng bản nhạc họ đã sáng tác, bạn cần thực hiện các bước nào sau khi JOIN bảng `bannhac` và `nhacsi`?

15 / 30

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

Tags: Bộ đề 05

Khi kết hợp nhiều bảng bằng `INNER JOIN`, số lượng hàng trong kết quả truy vấn sẽ là:

16 / 30

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

Tags: Bộ đề 05

Bạn muốn lấy danh sách tên tất cả các ca sĩ và các bản nhạc họ đã thu âm. Nếu một ca sĩ chưa thu âm bản nhạc nào, bạn vẫn muốn tên ca sĩ đó xuất hiện trong danh sách. Bạn sẽ sử dụng loại JOIN nào giữa bảng `casi` và bảng `banthuam` (hoặc kết hợp với `bannhac`)?

17 / 30

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

Tags: Bộ đề 05

Trong câu lệnh `SELECT b.tenBannhac AS 'Tên Bài Hát', ns.tenNhacsi AS 'Nhạc Sĩ' FROM bannhac AS b JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi;`, việc sử dụng `AS 'Tên Bài Hát'` và `AS 'Nhạc Sĩ'` có tác dụng gì?

18 / 30

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

Tags: Bộ đề 05

Bạn cần truy vấn danh sách các bản nhạc (tên bản nhạc) thuộc thể loại 'Nhạc Vàng' và được sáng tác bởi nhạc sĩ 'Trịnh Công Sơn'. Các bảng liên quan: `bannhac`, `nhacsi`, `theloai`. Mối quan hệ như đã mô tả ở các câu trước. Câu lệnh SQL nào thực hiện được yêu cầu này?

19 / 30

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

Tags: Bộ đề 05

Xem xét câu lệnh: `SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac AS b JOIN nhacsi AS ns ON b.idNhacsi = ns.idNhacsi WHERE b.idTheloai = 10;`. Câu lệnh này sẽ hiển thị:

20 / 30

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

Tags: Bộ đề 05

Giả sử bạn cần liệt kê tên tất cả các thể loại nhạc (từ bảng `theloai`) ngay cả khi không có bản nhạc nào thuộc thể loại đó. Bạn sẽ sử dụng loại JOIN nào giữa bảng `theloai` và `bannhac`?

21 / 30

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

Tags: Bộ đề 05

Để lấy danh sách tên các ca sĩ và tên bản nhạc mà họ đã thu âm, sắp xếp theo tên ca sĩ, bạn cần thực hiện các bước nào?

22 / 30

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

Tags: Bộ đề 05

Trong câu lệnh JOIN, mệnh đề `ON` được sử dụng để làm gì?

23 / 30

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

Tags: Bộ đề 05

Sử dụng cấu trúc bảng `bannhac` (idBannhac, tenBannhac, idNhacsi), `nhacsi` (idNhacsi, tenNhacsi), `banthuam` (idBanthuam, idBannhac, idCasi), `casi` (idCasi, tenCasi). Câu lệnh nào sẽ liệt kê tên các bản nhạc đã được thu âm?

24 / 30

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

Tags: Bộ đề 05

Xem xét câu lệnh: `SELECT c.tenCasi, COUNT(bt.idBanthuam) AS SoBanthuam FROM casi AS c LEFT JOIN banthuam AS bt ON c.idCasi = bt.idCasi GROUP BY c.tenCasi;`. Câu lệnh này sẽ hiển thị:

25 / 30

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

Tags: Bộ đề 05

Để lấy danh sách tên các nhạc sĩ (từ bảng `nhacsi`) và tên thể loại nhạc (từ bảng `theloai`) cho các bản nhạc mà họ sáng tác (qua bảng `bannhac`), bạn cần JOIN các bảng nào?

26 / 30

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

Tags: Bộ đề 05

Bạn muốn tìm tên các ca sĩ đã thu âm các bản nhạc thuộc thể loại 'Nhạc Cách Mạng'. Cần JOIN những bảng nào và lọc như thế nào?

27 / 30

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

Tags: Bộ đề 05

Trong câu lệnh `SELECT b.tenBannhac, ns.tenNhacsi FROM bannhac b JOIN nhacsi ns ON b.idNhacsi = ns.idNhacsi;`, nếu bảng `bannhac` có 100 hàng và bảng `nhacsi` có 50 hàng, và mỗi bản nhạc đều có một nhạc sĩ tương ứng duy nhất, số lượng hàng kết quả sẽ là:

28 / 30

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

Tags: Bộ đề 05

Nếu trong câu 26, có 5 bản nhạc không có `idNhacsi` (giá trị NULL) và bạn thay `JOIN` bằng `LEFT JOIN` (với `bannhac` bên trái), số lượng hàng kết quả sẽ là:

29 / 30

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

Tags: Bộ đề 05

Bạn muốn liệt kê tên tất cả các bản nhạc và tên nhạc sĩ, sắp xếp kết quả theo tên bản nhạc từ A-Z. Câu lệnh nào đúng?

30 / 30

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

Tags: Bộ đề 05

Để lấy danh sách các ca sĩ có tên bắt đầu bằng chữ 'L', bạn có thể sử dụng câu lệnh nào? (Không cần JOIN nếu chỉ lọc trên bảng `casi`)

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 06

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 06 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Giả sử bạn có hai bảng trong cơ sở dữ liệu quản lý nhạc: `BaiHat` (chứa thông tin bài hát, có khóa ngoại `MaNS` tham chiếu đến bảng `NgheSi`) và `NgheSi` (chứa thông tin nghệ sĩ, có khóa chính `MaNS`). Để lấy danh sách tên tất cả bài hát cùng với tên nghệ sĩ sáng tác tương ứng, câu lệnh SQL nào sau đây là đúng nhất?

  • A. SELECT BaiHat.TenBH, NgheSi.TenNS FROM BaiHat, NgheSi WHERE BaiHat.MaNS = NgheSi.MaNS;
  • B. SELECT BH.TenBH, NS.TenNS FROM BaiHat AS BH INNER JOIN NgheSi AS NS ON BH.MaNS = NS.MaNS;
  • C. SELECT TenBH, TenNS FROM BaiHat JOIN NgheSi ON BaiHat.MaNS = NgheSi.MaNS WHERE BaiHat.MaNS IS NOT NULL;
  • D. SELECT * FROM BaiHat LEFT JOIN NgheSi ON BaiHat.MaNS = NgheSi.MaNS;

Câu 2: Tiếp tục với cấu trúc bảng `BaiHat` và `NgheSi` như trên. Bạn muốn lấy danh sách tất cả nghệ sĩ và các bài hát của họ, bao gồm cả những nghệ sĩ chưa có bài hát nào được ghi trong bảng `BaiHat`. Loại JOIN nào là phù hợp nhất cho yêu cầu này?

  • A. INNER JOIN
  • B. RIGHT JOIN
  • C. LEFT JOIN
  • D. FULL OUTER JOIN

Câu 3: Cho câu lệnh SQL sau: `SELECT T1.CotA, T2.CotB FROM Bang1 AS T1 LEFT JOIN Bang2 AS T2 ON T1.ID = T2.ID;`. Nếu có một dòng trong `Bang1` có giá trị ID không tồn tại trong `Bang2`, kết quả truy vấn sẽ hiển thị dòng đó như thế nào?

  • A. Dòng đó sẽ bị loại bỏ khỏi kết quả.
  • B. Dòng đó sẽ hiển thị với giá trị `CotA` và `CotB` lấy từ `Bang1`.
  • C. Dòng đó sẽ hiển thị với giá trị `CotA` là NULL và `CotB` lấy từ `Bang2`.
  • D. Dòng đó sẽ hiển thị với giá trị `CotA` lấy từ `Bang1` và `CotB` là NULL.

Câu 4: Trong một cơ sở dữ liệu quản lý sách, có hai bảng `Sach` (MaSach, TenSach, MaTacGia) và `TacGia` (MaTacGia, TenTacGia). Khóa ngoại `MaTacGia` trong bảng `Sach` liên kết với khóa chính `MaTacGia` trong bảng `TacGia`. Để tìm tất cả sách được viết bởi tác giả có tên "Nguyễn Du", câu lệnh SQL nào sau đây là đúng?

  • A. SELECT S.TenSach FROM Sach AS S INNER JOIN TacGia AS TG ON S.MaTacGia = TG.MaTacGia WHERE TG.TenTacGia = "Nguyễn Du";
  • B. SELECT TenSach FROM Sach WHERE MaTacGia IN (SELECT MaTacGia FROM TacGia WHERE TenTacGia = "Nguyễn Du");
  • C. SELECT S.TenSach FROM Sach S, TacGia TG WHERE S.MaTacGia = TG.MaTacGia AND TG.TenTacGia LIKE "%Nguyễn Du%";
  • D. Tất cả các câu lệnh trên đều có thể cho kết quả đúng.

Câu 5: Bạn có các bảng: `KhachHang` (MaKH, TenKH), `DonHang` (MaDH, MaKH, NgayDH), `ChiTietDH` (MaDH, MaSP, SoLuong), `SanPham` (MaSP, TenSP). Để lấy danh sách tên khách hàng và ngày đặt của tất cả các đơn hàng mà họ đã tạo, bạn cần JOIN những bảng nào?

  • A. `KhachHang` và `DonHang`.
  • B. `KhachHang`, `DonHang` và `ChiTietDH`.
  • C. `KhachHang` và `SanPham`.
  • D. `DonHang` và `ChiTietDH`.

Câu 6: Trong câu lệnh JOIN, mệnh đề `ON` được sử dụng để làm gì?

  • A. Xác định các cột sẽ hiển thị trong kết quả.
  • B. Lọc các dòng thỏa mãn điều kiện sau khi JOIN.
  • C. Chỉ định điều kiện để kết nối các dòng từ hai bảng.
  • D. Gán bí danh cho các bảng trong câu truy vấn.

Câu 7: Giả sử bạn có bảng `SinhVien` (MaSV, TenSV, MaLop) và `LopHoc` (MaLop, TenLop). Khóa ngoại `MaLop` trong `SinhVien` liên kết với khóa chính `MaLop` trong `LopHoc`. Câu lệnh `SELECT SV.TenSV, LH.TenLop FROM SinhVien SV INNER JOIN LopHoc LH ON SV.MaLop = LH.MaLop WHERE LH.TenLop = "Tin 11A";` sẽ trả về kết quả gì?

  • A. Tất cả sinh viên và tên lớp của họ.
  • B. Tên của các sinh viên học lớp "Tin 11A" cùng với tên lớp đó.
  • C. Tên của lớp "Tin 11A" và tất cả sinh viên trong lớp đó.
  • D. Chỉ tên của các sinh viên học lớp "Tin 11A".

Câu 8: Khi sử dụng bí danh (alias) cho tên bảng trong câu lệnh JOIN, điều gì là bắt buộc?

  • A. Bí danh phải giống với tên bảng gốc.
  • B. Bí danh chỉ được sử dụng trong mệnh đề SELECT.
  • C. Bí danh phải được sử dụng để tham chiếu đến các cột của bảng đó trong suốt câu truy vấn (trừ mệnh đề FROM).
  • D. Bí danh chỉ hữu ích khi JOIN nhiều hơn hai bảng.

Câu 9: Cho hai bảng `Sanpham` (MaSP, TenSP, MaLoai) và `LoaiSP` (MaLoai, TenLoai). Khóa ngoại `MaLoai` trong `Sanpham` liên kết với khóa chính `MaLoai` trong `LoaiSP`. Bạn muốn liệt kê tên sản phẩm và tên loại sản phẩm cho tất cả các sản phẩm, bao gồm cả những sản phẩm chưa được gán loại (MaLoai là NULL trong `Sanpham`). Câu lệnh nào sau đây là phù hợp?

  • A. SELECT SP.TenSP, LSP.TenLoai FROM Sanpham SP LEFT JOIN LoaiSP LSP ON SP.MaLoai = LSP.MaLoai;
  • B. SELECT SP.TenSP, LSP.TenLoai FROM Sanpham SP INNER JOIN LoaiSP LSP ON SP.MaLoai = LSP.MaLoai;
  • C. SELECT SP.TenSP, LSP.TenLoai FROM Sanpham SP RIGHT JOIN LoaiSP LSP ON SP.MaLoai = LSP.MaLoai;
  • D. SELECT TenSP, TenLoai FROM Sanpham, LoaiSP WHERE Sanpham.MaLoai = LoaiSP.MaLoai;

Câu 10: Khi thực hiện INNER JOIN giữa hai bảng, kết quả sẽ bao gồm các dòng nào?

  • A. Tất cả các dòng từ cả hai bảng.
  • B. Chỉ các dòng có giá trị khớp nhau trên cột được chỉ định trong mệnh đề ON ở cả hai bảng.
  • C. Tất cả các dòng từ bảng bên trái và các dòng khớp từ bảng bên phải.
  • D. Tất cả các dòng từ bảng bên phải và các dòng khớp từ bảng bên trái.

Câu 11: Giả sử có các bảng `HocSinh` (MaHS, TenHS, MaLop) và `LopHoc` (MaLop, TenLop). Bạn muốn tìm tên các lớp học hiện không có học sinh nào. Câu lệnh SQL nào sau đây có thể giúp bạn làm điều này?

  • A. SELECT TenLop FROM LopHoc WHERE MaLop NOT IN (SELECT MaLop FROM HocSinh);
  • B. SELECT LH.TenLop FROM LopHoc LH INNER JOIN HocSinh HS ON LH.MaLop = HS.MaLop GROUP BY LH.TenLop HAVING COUNT(HS.MaHS) = 0;
  • C. SELECT LH.TenLop FROM LopHoc LH LEFT JOIN HocSinh HS ON LH.MaLop = HS.MaLop WHERE HS.MaHS IS NULL;
  • D. SELECT LH.TenLop FROM LopHoc LH WHERE LH.MaLop NOT EXISTS (SELECT 1 FROM HocSinh HS WHERE HS.MaLop = LH.MaLop);

Câu 12: Để truy vấn dữ liệu từ ba bảng `A`, `B`, `C` có liên kết với nhau (ví dụ: A liên kết với B, B liên kết với C), bạn sẽ sử dụng bao nhiêu mệnh đề JOIN trong câu lệnh SQL?

  • A. Một.
  • B. Hai.
  • C. Ba.
  • D. Tùy thuộc vào loại JOIN.

Câu 13: Bạn có bảng `DeAn` (MaDA, TenDA, MaNV_ChuTri) và `NhanVien` (MaNV, TenNV). Khóa ngoại `MaNV_ChuTri` trong `DeAn` tham chiếu đến `MaNV` trong `NhanVien`. Để lấy tên các đề án và tên nhân viên chủ trì, đồng thời chỉ lấy những đề án có nhân viên chủ trì được phân công, bạn dùng loại JOIN nào?

  • A. INNER JOIN
  • B. LEFT JOIN
  • C. RIGHT JOIN
  • D. CROSS JOIN

Câu 14: Giả sử bạn có bảng `Sanpham` (MaSP, TenSP) và `Kho` (MaKho, TenKho). Một bảng liên kết `TonKho` (MaSP, MaKho, SoLuong) cho biết số lượng tồn kho của mỗi sản phẩm tại mỗi kho. Để liệt kê tên sản phẩm và tên kho cho tất cả các sản phẩm có tồn kho tại ít nhất một kho, bạn cần JOIN những bảng nào?

  • A. `Sanpham` và `Kho`.
  • B. `Sanpham` và `TonKho`.
  • C. `Kho` và `TonKho`.
  • D. `Sanpham`, `TonKho` và `Kho`.

Câu 15: Cho câu lệnh: `SELECT A.CotX, B.CotY FROM BangA A INNER JOIN BangB B ON A.ID = B.ID WHERE A.GiaTri > 100;`. Mệnh đề `WHERE` trong câu lệnh này có tác dụng gì?

  • A. Lọc các dòng trong `BangA` trước khi thực hiện JOIN.
  • B. Lọc các dòng từ kết quả của phép INNER JOIN.
  • C. Chỉ định điều kiện để kết nối hai bảng.
  • D. Xác định thứ tự sắp xếp của kết quả.

Câu 16: Bạn có bảng `NhanVien` (MaNV, TenNV) và `PhongBan` (MaPB, TenPB, MaTruongPhong). Khóa ngoại `MaTruongPhong` trong `PhongBan` tham chiếu đến `MaNV` trong `NhanVien`. Để lấy tên phòng ban và tên của trưởng phòng đó, câu lệnh SQL nào sau đây là đúng?

  • A. SELECT PB.TenPB, NV.TenNV FROM PhongBan PB INNER JOIN NhanVien NV ON PB.MaTruongPhong = NV.MaNV;
  • B. SELECT TenPB, TenNV FROM PhongBan, NhanVien WHERE PhongBan.MaTruongPhong = NhanVien.MaNV;
  • C. SELECT PB.TenPB, NV.TenNV FROM PhongBan PB LEFT JOIN NhanVien NV ON PB.MaTruongPhong = NV.MaNV WHERE NV.MaNV IS NOT NULL;
  • D. SELECT TenPB, TenNV FROM PhongBan JOIN NhanVien ON PhongBan.MaTruongPhong = NhanVien.MaNV;

Câu 17: Trong cơ sở dữ liệu quản lý dự án, có bảng `DuAn` (MaDA, TenDA) và `NhanVien_DuAn` (MaDA, MaNV, VaiTro). Bảng `NhanVien_DuAn` là bảng trung gian liên kết `DuAn` với bảng `NhanVien` (MaNV, TenNV). Để lấy tên các dự án và tên nhân viên tham gia vào dự án đó, bạn cần JOIN những bảng nào?

  • A. `DuAn` và `NhanVien`.
  • B. `DuAn` và `NhanVien_DuAn`.
  • C. `DuAn`, `NhanVien_DuAn` và `NhanVien`.
  • D. `NhanVien_DuAn` và `NhanVien`.

Câu 18: Cho bảng `HocSinh` (MaHS, TenHS, MaLop) và `LopHoc` (MaLop, TenLop). Bạn muốn liệt kê tên tất cả lớp học, ngay cả khi lớp đó chưa có học sinh nào. Câu lệnh nào sau đây là đúng?

  • A. SELECT LH.TenLop FROM LopHoc LH INNER JOIN HocSinh HS ON LH.MaLop = HS.MaLop;
  • B. SELECT LH.TenLop FROM LopHoc LH LEFT JOIN HocSinh HS ON LH.MaLop = HS.MaLop;
  • C. SELECT LH.TenLop FROM LopHoc LH WHERE LH.MaLop IN (SELECT MaLop FROM HocSinh);
  • D. SELECT LH.TenLop FROM LopHoc LH RIGHT JOIN HocSinh HS ON LH.MaLop = HS.MaLop;

Câu 19: Giả sử bạn cần truy vấn tên bài hát, tên nghệ sĩ và tên thể loại từ các bảng `BaiHat` (MaBH, TenBH, MaNS, MaTL), `NgheSi` (MaNS, TenNS) và `TheLoai` (MaTL, TenTL). Các khóa ngoại tương ứng đã được thiết lập. Thứ tự các bảng trong mệnh đề FROM/JOIN có ảnh hưởng đến kết quả (số lượng dòng) khi sử dụng INNER JOIN không?

  • A. Không, thứ tự các bảng không ảnh hưởng đến số lượng dòng trả về bởi INNER JOIN, chỉ có thể ảnh hưởng đến hiệu suất truy vấn.
  • B. Có, thứ tự các bảng sẽ quyết định bảng nào là "bên trái" và "bên phải", làm thay đổi số lượng dòng.
  • C. Chỉ ảnh hưởng khi có các dòng không khớp trong một trong các bảng.
  • D. Chỉ ảnh hưởng khi sử dụng bí danh cho các cột.

Câu 20: Bạn có bảng `DonHang` (MaDH, MaKH) và `KhachHang` (MaKH, TenKH). Bạn muốn lấy danh sách tên khách hàng đã đặt ít nhất một đơn hàng. Câu lệnh nào sau đây là đúng?

  • A. SELECT TenKH FROM KhachHang WHERE MaKH IN (SELECT MaKH FROM DonHang);
  • B. SELECT DISTINCT KH.TenKH FROM KhachHang KH INNER JOIN DonHang DH ON KH.MaKH = DH.MaKH;
  • C. SELECT KH.TenKH FROM KhachHang KH LEFT JOIN DonHang DH ON KH.MaKH = DH.MaKH WHERE DH.MaDH IS NOT NULL;
  • D. Tất cả các câu lệnh trên đều đúng.

Câu 21: Trong câu lệnh `SELECT A.Cot1, B.Cot2 FROM BangA A JOIN BangB B ON A.ID = B.ID;`, nếu cả hai bảng `BangA` và `BangB` đều có cột tên là `ID`, việc sử dụng bí danh `A.ID` và `B.ID` trong mệnh đề ON là:

  • A. Bắt buộc để phân biệt cột ID từ bảng nào.
  • B. Không cần thiết vì hệ quản trị cơ sở dữ liệu sẽ tự hiểu.
  • C. Chỉ cần thiết nếu bạn muốn hiển thị cột ID trong kết quả SELECT.
  • D. Sai cú pháp.

Câu 22: Bạn có bảng `GiaoVien` (MaGV, TenGV) và `MonHoc` (MaMH, TenMH). Một bảng liên kết `PhanCong` (MaGV, MaMH) cho biết giáo viên nào dạy môn học nào. Để lấy tên giáo viên và tên các môn học mà họ dạy, bạn cần JOIN những bảng nào?

  • A. `GiaoVien` và `MonHoc`.
  • B. `GiaoVien` và `PhanCong`.
  • C. `MonHoc` và `PhanCong`.
  • D. `GiaoVien`, `PhanCong` và `MonHoc`.

Câu 23: Cho bảng `KhachHang` (MaKH, TenKH) và `HoaDon` (MaHD, MaKH, TongTien). Bạn muốn tìm tên những khách hàng chưa từng có hóa đơn nào. Câu lệnh SQL nào sau đây là đúng?

  • A. SELECT KH.TenKH FROM KhachHang KH LEFT JOIN HoaDon HD ON KH.MaKH = HD.MaKH WHERE HD.MaHD IS NULL;
  • B. SELECT TenKH FROM KhachHang WHERE MaKH NOT IN (SELECT MaKH FROM HoaDon);
  • C. SELECT KH.TenKH FROM KhachHang KH INNER JOIN HoaDon HD ON KH.MaKH = HD.MaKH WHERE HD.MaHD IS NULL;
  • D. SELECT TenKH FROM KhachHang WHERE NOT EXISTS (SELECT 1 FROM HoaDon WHERE HoaDon.MaKH = KhachHang.MaKH);

Câu 24: Sự khác biệt cơ bản giữa INNER JOIN và LEFT JOIN nằm ở cách xử lý các dòng không có sự khớp nối (match) trong bảng còn lại. Phát biểu nào sau đây mô tả đúng sự khác biệt này?

  • A. INNER JOIN bao gồm tất cả các dòng từ cả hai bảng, còn LEFT JOIN chỉ bao gồm các dòng khớp.
  • B. INNER JOIN loại bỏ các dòng có giá trị NULL, còn LEFT JOIN giữ lại chúng.
  • C. INNER JOIN chỉ trả về các dòng có khớp ở cả hai bảng, còn LEFT JOIN trả về tất cả các dòng từ bảng bên trái và các dòng khớp từ bảng bên phải (điền NULL cho các cột của bảng bên phải nếu không có khớp).
  • D. INNER JOIN nhanh hơn LEFT JOIN trong mọi trường hợp.

Câu 25: Bạn có bảng `NhanVien` (MaNV, TenNV, MaPB) và `PhongBan` (MaPB, TenPB). Bạn muốn lấy tên tất cả nhân viên và tên phòng ban của họ, bao gồm cả những nhân viên chưa được phân vào phòng ban nào (MaPB là NULL trong `NhanVien`). Bạn cần dùng loại JOIN nào và bảng nào là bảng "bên trái"?

  • A. LEFT JOIN, bảng `NhanVien` là bảng bên trái.
  • B. LEFT JOIN, bảng `PhongBan` là bảng bên trái.
  • C. INNER JOIN, bảng `NhanVien` là bảng bên trái.
  • D. RIGHT JOIN, bảng `NhanVien` là bảng bên trái.

Câu 26: Khi JOIN nhiều bảng, ví dụ `TableA JOIN TableB ON ... JOIN TableC ON ...`, thứ tự thực hiện các phép JOIN có thể ảnh hưởng đến:

  • A. Số lượng dòng trong kết quả cuối cùng (đối với INNER JOIN).
  • B. Các cột được phép hiển thị trong mệnh đề SELECT.
  • C. Tính đúng đắn của điều kiện JOIN.
  • D. Hiệu suất thực thi của câu truy vấn.

Câu 27: Bạn có bảng `BaiViet` (MaBV, TieuDe, MaTG) và `TacGia` (MaTG, TenTG). Bạn muốn lấy tên các bài viết và tên tác giả của chúng, nhưng chỉ những bài viết có tác giả được ghi lại trong bảng `TacGia`. Câu lệnh nào sau đây thực hiện đúng yêu cầu này?

  • A. SELECT BV.TieuDe, TG.TenTG FROM BaiViet BV LEFT JOIN TacGia TG ON BV.MaTG = TG.MaTG WHERE TG.MaTG IS NOT NULL;
  • B. SELECT BV.TieuDe, TG.TenTG FROM BaiViet BV RIGHT JOIN TacGia TG ON BV.MaTG = TG.MaTG;
  • C. SELECT BV.TieuDe, TG.TenTG FROM BaiViet BV INNER JOIN TacGia TG ON BV.MaTG = TG.MaTG;
  • D. SELECT TieuDe, TenTG FROM BaiViet, TacGia WHERE BaiViet.MaTG = TacGia.MaTG AND BaiViet.MaTG IS NOT NULL;

Câu 28: Xét các bảng `DonHang` (MaDH, NgayDH, MaKH), `KhachHang` (MaKH, TenKH, DiaChi). Bạn muốn tạo một báo cáo liệt kê Mã đơn hàng, Ngày đặt hàng, Tên khách hàng và Địa chỉ của khách hàng cho tất cả các đơn hàng. Bạn cần liên kết hai bảng này dựa trên cột nào?

  • A. Cột `MaKH` ở cả hai bảng.
  • B. Cột `MaDH` ở bảng `DonHang` và `MaKH` ở bảng `KhachHang`.
  • C. Cột `NgayDH` ở bảng `DonHang` và `TenKH` ở bảng `KhachHang`.
  • D. Không cần liên kết vì thông tin đã đủ trong mỗi bảng.

Câu 29: Câu lệnh SQL nào sau đây sử dụng bí danh một cách sai cú pháp?

  • A. SELECT A.CotX FROM BangMot AS A;
  • B. SELECT B.CotY FROM BangHai B WHERE B.ID = 10;
  • C. SELECT T1.Z FROM Table1 T1 JOIN Table2 T2 ON T1.ID = T2.ID;
  • D. SELECT TenSp FROM SanPham SP WHERE SP.Gia > 10000 AND SanPham.MaLoai = 5;

Câu 30: Mục đích chính của việc sử dụng các phép JOIN trong truy vấn cơ sở dữ liệu là gì?

  • A. Giảm kích thước của cơ sở dữ liệu.
  • B. Kết hợp dữ liệu từ hai hoặc nhiều bảng có liên quan lại với nhau dựa trên giá trị của các cột chung.
  • C. Tăng tốc độ truy vấn dữ liệu từ một bảng duy nhất.
  • D. Thêm, sửa, xóa dữ liệu trong các bảng.

1 / 30

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

Tags: Bộ đề 06

Câu 1: Giả sử bạn có hai bảng trong cơ sở dữ liệu quản lý nhạc: `BaiHat` (chứa thông tin bài hát, có khóa ngoại `MaNS` tham chiếu đến bảng `NgheSi`) và `NgheSi` (chứa thông tin nghệ sĩ, có khóa chính `MaNS`). Để lấy danh sách tên tất cả bài hát cùng với tên nghệ sĩ sáng tác tương ứng, câu lệnh SQL nào sau đây là đúng nhất?

2 / 30

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

Tags: Bộ đề 06

Câu 2: Tiếp tục với cấu trúc bảng `BaiHat` và `NgheSi` như trên. Bạn muốn lấy danh sách tất cả nghệ sĩ và các bài hát của họ, bao gồm cả những nghệ sĩ chưa có bài hát nào được ghi trong bảng `BaiHat`. Loại JOIN nào là phù hợp nhất cho yêu cầu này?

3 / 30

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

Tags: Bộ đề 06

Câu 3: Cho câu lệnh SQL sau: `SELECT T1.CotA, T2.CotB FROM Bang1 AS T1 LEFT JOIN Bang2 AS T2 ON T1.ID = T2.ID;`. Nếu có một dòng trong `Bang1` có giá trị ID không tồn tại trong `Bang2`, kết quả truy vấn sẽ hiển thị dòng đó như thế nào?

4 / 30

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

Tags: Bộ đề 06

Câu 4: Trong một cơ sở dữ liệu quản lý sách, có hai bảng `Sach` (MaSach, TenSach, MaTacGia) và `TacGia` (MaTacGia, TenTacGia). Khóa ngoại `MaTacGia` trong bảng `Sach` liên kết với khóa chính `MaTacGia` trong bảng `TacGia`. Để tìm tất cả sách được viết bởi tác giả có tên 'Nguyễn Du', câu lệnh SQL nào sau đây là đúng?

5 / 30

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

Tags: Bộ đề 06

Câu 5: Bạn có các bảng: `KhachHang` (MaKH, TenKH), `DonHang` (MaDH, MaKH, NgayDH), `ChiTietDH` (MaDH, MaSP, SoLuong), `SanPham` (MaSP, TenSP). Để lấy danh sách tên khách hàng và ngày đặt của tất cả các đơn hàng mà họ đã tạo, bạn cần JOIN những bảng nào?

6 / 30

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

Tags: Bộ đề 06

Câu 6: Trong câu lệnh JOIN, mệnh đề `ON` được sử dụng để làm gì?

7 / 30

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

Tags: Bộ đề 06

Câu 7: Giả sử bạn có bảng `SinhVien` (MaSV, TenSV, MaLop) và `LopHoc` (MaLop, TenLop). Khóa ngoại `MaLop` trong `SinhVien` liên kết với khóa chính `MaLop` trong `LopHoc`. Câu lệnh `SELECT SV.TenSV, LH.TenLop FROM SinhVien SV INNER JOIN LopHoc LH ON SV.MaLop = LH.MaLop WHERE LH.TenLop = 'Tin 11A';` sẽ trả về kết quả gì?

8 / 30

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

Tags: Bộ đề 06

Câu 8: Khi sử dụng bí danh (alias) cho tên bảng trong câu lệnh JOIN, điều gì là bắt buộc?

9 / 30

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

Tags: Bộ đề 06

Câu 9: Cho hai bảng `Sanpham` (MaSP, TenSP, MaLoai) và `LoaiSP` (MaLoai, TenLoai). Khóa ngoại `MaLoai` trong `Sanpham` liên kết với khóa chính `MaLoai` trong `LoaiSP`. Bạn muốn liệt kê tên sản phẩm và tên loại sản phẩm cho tất cả các sản phẩm, bao gồm cả những sản phẩm chưa được gán loại (MaLoai là NULL trong `Sanpham`). Câu lệnh nào sau đây là phù hợp?

10 / 30

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

Tags: Bộ đề 06

Câu 10: Khi thực hiện INNER JOIN giữa hai bảng, kết quả sẽ bao gồm các dòng nào?

11 / 30

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

Tags: Bộ đề 06

Câu 11: Giả sử có các bảng `HocSinh` (MaHS, TenHS, MaLop) và `LopHoc` (MaLop, TenLop). Bạn muốn tìm tên các lớp học hiện không có học sinh nào. Câu lệnh SQL nào sau đây có thể giúp bạn làm điều này?

12 / 30

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

Tags: Bộ đề 06

Câu 12: Để truy vấn dữ liệu từ ba bảng `A`, `B`, `C` có liên kết với nhau (ví dụ: A liên kết với B, B liên kết với C), bạn sẽ sử dụng bao nhiêu mệnh đề JOIN trong câu lệnh SQL?

13 / 30

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

Tags: Bộ đề 06

Câu 13: Bạn có bảng `DeAn` (MaDA, TenDA, MaNV_ChuTri) và `NhanVien` (MaNV, TenNV). Khóa ngoại `MaNV_ChuTri` trong `DeAn` tham chiếu đến `MaNV` trong `NhanVien`. Để lấy tên các đề án và tên nhân viên chủ trì, đồng thời chỉ lấy những đề án có nhân viên chủ trì được phân công, bạn dùng loại JOIN nào?

14 / 30

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

Tags: Bộ đề 06

Câu 14: Giả sử bạn có bảng `Sanpham` (MaSP, TenSP) và `Kho` (MaKho, TenKho). Một bảng liên kết `TonKho` (MaSP, MaKho, SoLuong) cho biết số lượng tồn kho của mỗi sản phẩm tại mỗi kho. Để liệt kê tên sản phẩm và tên kho cho tất cả các sản phẩm có tồn kho tại ít nhất một kho, bạn cần JOIN những bảng nào?

15 / 30

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

Tags: Bộ đề 06

Câu 15: Cho câu lệnh: `SELECT A.CotX, B.CotY FROM BangA A INNER JOIN BangB B ON A.ID = B.ID WHERE A.GiaTri > 100;`. Mệnh đề `WHERE` trong câu lệnh này có tác dụng gì?

16 / 30

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

Tags: Bộ đề 06

Câu 16: Bạn có bảng `NhanVien` (MaNV, TenNV) và `PhongBan` (MaPB, TenPB, MaTruongPhong). Khóa ngoại `MaTruongPhong` trong `PhongBan` tham chiếu đến `MaNV` trong `NhanVien`. Để lấy tên phòng ban và tên của trưởng phòng đó, câu lệnh SQL nào sau đây là đúng?

17 / 30

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

Tags: Bộ đề 06

Câu 17: Trong cơ sở dữ liệu quản lý dự án, có bảng `DuAn` (MaDA, TenDA) và `NhanVien_DuAn` (MaDA, MaNV, VaiTro). Bảng `NhanVien_DuAn` là bảng trung gian liên kết `DuAn` với bảng `NhanVien` (MaNV, TenNV). Để lấy tên các dự án và tên nhân viên tham gia vào dự án đó, bạn cần JOIN những bảng nào?

18 / 30

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

Tags: Bộ đề 06

Câu 18: Cho bảng `HocSinh` (MaHS, TenHS, MaLop) và `LopHoc` (MaLop, TenLop). Bạn muốn liệt kê tên tất cả lớp học, ngay cả khi lớp đó chưa có học sinh nào. Câu lệnh nào sau đây là đúng?

19 / 30

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

Tags: Bộ đề 06

Câu 19: Giả sử bạn cần truy vấn tên bài hát, tên nghệ sĩ và tên thể loại từ các bảng `BaiHat` (MaBH, TenBH, MaNS, MaTL), `NgheSi` (MaNS, TenNS) và `TheLoai` (MaTL, TenTL). Các khóa ngoại tương ứng đã được thiết lập. Thứ tự các bảng trong mệnh đề FROM/JOIN có ảnh hưởng đến kết quả (số lượng dòng) khi sử dụng INNER JOIN không?

20 / 30

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

Tags: Bộ đề 06

Câu 20: Bạn có bảng `DonHang` (MaDH, MaKH) và `KhachHang` (MaKH, TenKH). Bạn muốn lấy danh sách tên khách hàng đã đặt ít nhất một đơn hàng. Câu lệnh nào sau đây là đúng?

21 / 30

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

Tags: Bộ đề 06

Câu 21: Trong câu lệnh `SELECT A.Cot1, B.Cot2 FROM BangA A JOIN BangB B ON A.ID = B.ID;`, nếu cả hai bảng `BangA` và `BangB` đều có cột tên là `ID`, việc sử dụng bí danh `A.ID` và `B.ID` trong mệnh đề ON là:

22 / 30

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

Tags: Bộ đề 06

Câu 22: Bạn có bảng `GiaoVien` (MaGV, TenGV) và `MonHoc` (MaMH, TenMH). Một bảng liên kết `PhanCong` (MaGV, MaMH) cho biết giáo viên nào dạy môn học nào. Để lấy tên giáo viên và tên các môn học mà họ dạy, bạn cần JOIN những bảng nào?

23 / 30

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

Tags: Bộ đề 06

Câu 23: Cho bảng `KhachHang` (MaKH, TenKH) và `HoaDon` (MaHD, MaKH, TongTien). Bạn muốn tìm tên những khách hàng chưa từng có hóa đơn nào. Câu lệnh SQL nào sau đây là đúng?

24 / 30

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

Tags: Bộ đề 06

Câu 24: Sự khác biệt cơ bản giữa INNER JOIN và LEFT JOIN nằm ở cách xử lý các dòng không có sự khớp nối (match) trong bảng còn lại. Phát biểu nào sau đây mô tả đúng sự khác biệt này?

25 / 30

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

Tags: Bộ đề 06

Câu 25: Bạn có bảng `NhanVien` (MaNV, TenNV, MaPB) và `PhongBan` (MaPB, TenPB). Bạn muốn lấy tên tất cả nhân viên và tên phòng ban của họ, bao gồm cả những nhân viên chưa được phân vào phòng ban nào (MaPB là NULL trong `NhanVien`). Bạn cần dùng loại JOIN nào và bảng nào là bảng 'bên trái'?

26 / 30

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

Tags: Bộ đề 06

Câu 26: Khi JOIN nhiều bảng, ví dụ `TableA JOIN TableB ON ... JOIN TableC ON ...`, thứ tự thực hiện các phép JOIN có thể ảnh hưởng đến:

27 / 30

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

Tags: Bộ đề 06

Câu 27: Bạn có bảng `BaiViet` (MaBV, TieuDe, MaTG) và `TacGia` (MaTG, TenTG). Bạn muốn lấy tên các bài viết và tên tác giả của chúng, nhưng chỉ những bài viết có tác giả được ghi lại trong bảng `TacGia`. Câu lệnh nào sau đây thực hiện đúng yêu cầu này?

28 / 30

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

Tags: Bộ đề 06

Câu 28: Xét các bảng `DonHang` (MaDH, NgayDH, MaKH), `KhachHang` (MaKH, TenKH, DiaChi). Bạn muốn tạo một báo cáo liệt kê Mã đơn hàng, Ngày đặt hàng, Tên khách hàng và Địa chỉ của khách hàng cho tất cả các đơn hàng. Bạn cần liên kết hai bảng này dựa trên cột nào?

29 / 30

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

Tags: Bộ đề 06

Câu 29: Câu lệnh SQL nào sau đây sử dụng bí danh một cách sai cú pháp?

30 / 30

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

Tags: Bộ đề 06

Câu 30: Mục đích chính của việc sử dụng các phép JOIN trong truy vấn cơ sở dữ liệu là gì?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 07

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 07 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Giả sử bạn có hai bảng trong cơ sở dữ liệu quản lý thư viện: `Sach` (chứa `MaSach`, `TenSach`, `MaTacGia`) và `TacGia` (chứa `MaTacGia`, `TenTacGia`). Để lấy danh sách tên sách và tên tác giả tương ứng, bạn cần sử dụng mệnh đề SQL nào để kết nối hai bảng này dựa trên cột `MaTacGia` chung?

  • A. WHERE
  • B. JOIN
  • C. GROUP BY
  • D. ORDER BY

Câu 2: Cho câu lệnh SQL sau: `SELECT A.TenCot1, B.TenCot2 FROM BangA INNER JOIN BangB ON A.KhoaChung = B.KhoaChung;`. Kết quả của câu lệnh này sẽ bao gồm những bản ghi nào?

  • A. Tất cả bản ghi từ BangA.
  • B. Tất cả bản ghi từ BangB.
  • C. Chỉ các bản ghi có giá trị KhoaChung tồn tại ở cả BangA và BangB.
  • D. Tất cả bản ghi từ cả BangA và BangB.

Câu 3: Bạn muốn lấy danh sách tất cả các tác giả từ bảng `TacGia` và, nếu có, tên các cuốn sách mà họ đã viết từ bảng `Sach`. Ngay cả những tác giả chưa có cuốn sách nào cũng phải xuất hiện trong danh sách. Loại JOIN nào phù hợp nhất trong trường hợp này?

  • A. LEFT JOIN
  • B. INNER JOIN
  • C. RIGHT JOIN
  • D. FULL OUTER JOIN

Câu 4: Trong một cơ sở dữ liệu quản lý đơn hàng, có hai bảng: `DonHang` (chứa `MaDonHang`, `MaKhachHang`, `NgayDat`) và `KhachHang` (chứa `MaKhachHang`, `TenKhachHang`, `DiaChi`). Để lấy danh sách tất cả đơn hàng kèm tên khách hàng đặt đơn đó, câu lệnh SQL nào sau đây là đúng?

  • A. SELECT DonHang.*, KhachHang.TenKhachHang FROM DonHang, KhachHang WHERE DonHang.MaKhachHang = KhachHang.MaKhachHang;
  • B. SELECT MaDonHang, NgayDat, TenKhachHang FROM DonHang JOIN KhachHang ON DonHang.MaKhachHang = KhachHang.MaKhachHang;
  • C. SELECT DonHang.MaDonHang, DonHang.NgayDat, KhachHang.TenKhachHang FROM DonHang INNER JOIN KhachHang ON DonHang.MaKhachHang = KhachHang.MaKhachHang;
  • D. Tất cả các câu lệnh trên đều đúng cú pháp và cho kết quả tương tự.

Câu 5: Cho hai bảng `SanPham` (`MaSP`, `TenSP`, `MaLoaiSP`) và `LoaiSanPham` (`MaLoaiSP`, `TenLoai`). Bạn muốn lấy danh sách tên sản phẩm cùng với tên loại sản phẩm của chúng. Tuy nhiên, bạn CHỈ muốn hiển thị các sản phẩm thuộc loại "Điện tử". Câu lệnh SQL nào sau đây thực hiện được điều này?

  • A. SELECT SanPham.TenSP, LoaiSanPham.TenLoai FROM SanPham, LoaiSanPham WHERE SanPham.MaLoaiSP = LoaiSanPham.MaLoaiSP AND LoaiSanPham.MaLoai = "Điện tử";
  • B. SELECT SanPham.TenSP, LoaiSanPham.TenLoai FROM SanPham JOIN LoaiSanPham ON SanPham.MaLoaiSP = LoaiSanPham.MaLoaiSP WHERE LoaiSanPham.TenLoai = "Điện tử";
  • C. Cả A và B đều đúng.
  • D. SELECT SanPham.TenSP, LoaiSanPham.TenLoai FROM SanPham WHERE LoaiSanPham.TenLoai = "Điện tử";

Câu 6: Khi thực hiện `LEFT JOIN` giữa `BangA` (bên trái) và `BangB` (bên phải) trên điều kiện `A.Khoa = B.Khoa`, nếu có một bản ghi trong `BangA` không có bản ghi tương ứng trong `BangB`, thì các cột từ `BangB` trong kết quả của bản ghi đó sẽ có giá trị là gì?

  • A. Giá trị mặc định (nếu có).
  • B. NULL.
  • C. Một chuỗi rỗng ("").
  • D. Không có giá trị (không hiển thị cột).

Câu 7: Bạn có ba bảng: `SinhVien` (`MaSV`, `TenSV`), `DangKyHoc` (`MaSV`, `MaMonHoc`), và `MonHoc` (`MaMonHoc`, `TenMonHoc`). Để lấy danh sách tên sinh viên và tên các môn học mà họ đã đăng ký, bạn cần thực hiện bao nhiêu phép `JOIN`?

  • A. Một.
  • B. Hai.
  • C. Ba.
  • D. Không cần JOIN nếu các bảng có quan hệ.

Câu 8: Cho câu lệnh SQL: `SELECT O.OrderID, C.CustomerName FROM Orders O JOIN Customers C ON O.CustomerID = C.CustomerID WHERE C.City = "London";`. Câu lệnh này có mục đích gì?

  • A. Lấy tất cả đơn hàng và tên khách hàng.
  • B. Lấy tất cả khách hàng và các đơn hàng của họ.
  • C. Lấy các đơn hàng được đặt tại thành phố "London".
  • D. Lấy mã đơn hàng và tên của các khách hàng sống ở "London" đã đặt đơn hàng.

Câu 9: Khi kết nối hai bảng `A` và `B` bằng `INNER JOIN` trên điều kiện `A.ID = B.ID`, giả sử có một bản ghi trong `A` có `ID = 5` nhưng không có bản ghi nào trong `B` có `ID = 5`. Bản ghi này sẽ xuất hiện trong kết quả truy vấn không?

  • A. Có, nó sẽ xuất hiện với giá trị NULL cho các cột của B.
  • B. Không, vì không có sự trùng khớp ở bảng B.
  • C. Có, nó sẽ xuất hiện với giá trị mặc định cho các cột của B.
  • D. Chỉ khi sử dụng bí danh (alias).

Câu 10: Đâu là lý do chính khiến việc sử dụng `JOIN` thay vì chỉ dùng `WHERE` với nhiều bảng trong mệnh đề `FROM` được khuyến khích trong các hệ quản trị CSDL hiện đại?

  • A. Cú pháp `JOIN` rõ ràng, dễ đọc và giúp tối ưu hóa hiệu quả hơn.
  • B. Cú pháp `WHERE` với nhiều bảng chỉ hoạt động với `INNER JOIN`.
  • C. Cú pháp `JOIN` luôn nhanh hơn.
  • D. Cú pháp `WHERE` với nhiều bảng đã lỗi thời và không còn được hỗ trợ.

Câu 11: Bạn có bảng `NhanVien` (`MaNV`, `TenNV`, `MaPhongBan`) và `PhongBan` (`MaPhongBan`, `TenPhongBan`). Bạn muốn lấy danh sách tên nhân viên và tên phòng ban của họ. Tuy nhiên, bạn phát hiện có một số nhân viên chưa được gán mã phòng ban (MaPhongBan là NULL). Bạn muốn hiển thị tất cả nhân viên, kể cả những người chưa có phòng ban. Câu lệnh SQL nào sau đây phù hợp?

  • A. SELECT NhanVien.TenNV, PhongBan.TenPhongBan FROM NhanVien LEFT JOIN PhongBan ON NhanVien.MaPhongBan = PhongBan.MaPhongBan;
  • B. SELECT NhanVien.TenNV, PhongBan.TenPhongBan FROM NhanVien INNER JOIN PhongBan ON NhanVien.MaPhongBan = PhongBan.MaPhongBan;
  • C. SELECT NhanVien.TenNV, PhongBan.TenPhongBan FROM NhanVien RIGHT JOIN PhongBan ON NhanVien.MaPhongBan = PhongBan.MaPhongBan;
  • D. SELECT NhanVien.TenNV, PhongBan.TenPhongBan FROM NhanVien, PhongBan WHERE NhanVien.MaPhongBan = PhongBan.MaPhongBan;

Câu 12: Trong truy vấn dữ liệu từ nhiều bảng sử dụng `JOIN`, tại sao việc sử dụng bí danh (alias) cho tên bảng lại hữu ích?

  • A. Để đổi tên vĩnh viễn bảng trong cơ sở dữ liệu.
  • B. Để bắt buộc sử dụng `INNER JOIN`.
  • C. Để ẩn các cột không cần thiết.
  • D. Để rút gọn tên bảng, làm câu lệnh dễ đọc và tránh xung đột tên cột.

Câu 13: Bạn muốn lấy danh sách tất cả các phòng ban từ bảng `PhongBan` và, nếu có, tên nhân viên làm việc trong phòng ban đó từ bảng `NhanVien`. Ngay cả những phòng ban chưa có nhân viên nào cũng phải xuất hiện trong danh sách. Loại JOIN nào phù hợp nhất trong trường hợp này?

  • A. LEFT JOIN
  • B. INNER JOIN
  • C. RIGHT JOIN
  • D. CROSS JOIN

Câu 14: Cho hai bảng `Students` (`StudentID`, `Name`) và `Courses` (`CourseID`, `CourseName`), cùng bảng liên kết `Enrollments` (`EnrollmentID`, `StudentID`, `CourseID`). Để lấy danh sách tên sinh viên và tên các khóa học họ đã đăng ký, câu lệnh SQL nào sau đây là chính xác?

  • A. SELECT S.Name, C.CourseName FROM Students S, Courses C, Enrollments E WHERE S.StudentID = E.StudentID AND C.CourseID = E.CourseID;
  • B. SELECT S.Name, C.CourseName FROM Students S JOIN Enrollments E ON S.StudentID = E.StudentID JOIN Courses C ON E.CourseID = C.CourseID;
  • C. SELECT S.Name, C.CourseName FROM Students S INNER JOIN Courses C ON S.StudentID = C.StudentID;
  • D. SELECT S.Name, C.CourseName FROM Students S LEFT JOIN Enrollments E ON S.StudentID = E.StudentID WHERE E.CourseID IS NOT NULL;

Câu 15: Khi thực hiện `LEFT JOIN` giữa bảng `A` và bảng `B` trên cột `ID`, và bạn muốn chỉ hiển thị các bản ghi từ bảng `A` mà KHÔNG có bản ghi tương ứng trong bảng `B`, bạn sẽ thêm điều kiện lọc nào vào cuối câu lệnh JOIN?

  • A. WHERE B.ID IS NULL
  • B. WHERE B.ID IS NOT NULL
  • C. WHERE A.ID = B.ID
  • D. WHERE NOT EXISTS (SELECT 1 FROM B WHERE B.ID = A.ID)

Câu 16: Trong câu lệnh `SELECT O.OrderID, C.CustomerName FROM Orders O JOIN Customers C ON O.CustomerID = C.CustomerID;`, chữ "O" và "C" sau tên bảng `Orders` và `Customers` được gọi là gì?

  • A. Tham số
  • B. Biến
  • C. Chỉ mục
  • D. Bí danh (Alias)

Câu 17: Bạn có hai bảng `Products` (`ProductID`, `ProductName`) và `OrderItems` (`OrderItemID`, `OrderID`, `ProductID`, `Quantity`). Bạn muốn lấy danh sách tất cả sản phẩm và tổng số lượng đã được đặt cho mỗi sản phẩm. Nếu một sản phẩm chưa từng được đặt, nó vẫn phải xuất hiện với tổng số lượng là 0 hoặc NULL. Câu lệnh SQL nào sau đây phù hợp nhất?

  • A. SELECT P.ProductName, SUM(OI.Quantity) FROM Products P JOIN OrderItems OI ON P.ProductID = OI.ProductID GROUP BY P.ProductName;
  • B. SELECT P.ProductName, COALESCE(SUM(OI.Quantity), 0) FROM Products P LEFT JOIN OrderItems OI ON P.ProductID = OI.ProductID GROUP BY P.ProductName;
  • C. SELECT P.ProductName, SUM(OI.Quantity) FROM Products P LEFT JOIN OrderItems OI ON P.ProductID = OI.ProductID;
  • D. SELECT P.ProductName, SUM(OI.Quantity) FROM OrderItems OI RIGHT JOIN Products P ON P.ProductID = OI.ProductID GROUP BY P.ProductName;

Câu 18: Trong câu lệnh `SELECT * FROM BangA JOIN BangB ON BangA.ID = BangB.ID;`, ký tự `*` có ý nghĩa gì khi sử dụng với JOIN?

  • A. Chọn tất cả các cột từ tất cả các bảng tham gia JOIN.
  • B. Chọn tất cả các cột chỉ từ bảng đầu tiên được liệt kê.
  • C. Chọn tất cả các cột chỉ từ bảng thứ hai được liệt kê.
  • D. Chọn tất cả các cột ngoại trừ các cột khóa chung.

Câu 19: Giả sử bạn có bảng `Customers` (`CustomerID`, `Name`) và bảng `Invoices` (`InvoiceID`, `CustomerID`, `Amount`). Bạn muốn tìm tất cả khách hàng chưa có hóa đơn nào. Câu lệnh SQL nào sau đây thực hiện được điều này?

  • A. SELECT C.Name FROM Customers C INNER JOIN Invoices I ON C.CustomerID = I.CustomerID WHERE I.InvoiceID IS NULL;
  • B. SELECT C.Name FROM Customers C, Invoices I WHERE C.CustomerID = I.CustomerID AND I.InvoiceID IS NULL;
  • C. SELECT C.Name FROM Customers C LEFT JOIN Invoices I ON C.CustomerID = I.CustomerID WHERE I.InvoiceID IS NULL;
  • D. SELECT C.Name FROM Customers C WHERE C.CustomerID NOT IN (SELECT CustomerID FROM Invoices);

Câu 20: Khi nối hai bảng `Orders` và `Customers` bằng `INNER JOIN` trên `CustomerID`, và bạn muốn sắp xếp kết quả theo tên khách hàng theo thứ tự bảng chữ cái, bạn sẽ thêm mệnh đề nào vào cuối câu lệnh?

  • A. ORDER BY Customers.CustomerName ASC;
  • B. GROUP BY Customers.CustomerName;
  • C. SORT BY Customers.CustomerName;
  • D. FILTER BY Customers.CustomerName;

Câu 21: Bạn có bảng `Employees` (`EmployeeID`, `Name`, `ManagerID`) trong đó `ManagerID` tham chiếu đến `EmployeeID` của người quản lý (trong cùng bảng `Employees`). Để lấy danh sách nhân viên và tên người quản lý trực tiếp của họ, bạn cần sử dụng kỹ thuật JOIN nào?

  • A. CROSS JOIN
  • B. INNER JOIN giữa hai bảng khác nhau
  • C. FULL OUTER JOIN
  • D. SELF JOIN (nối bảng với chính nó)

Câu 22: Câu lệnh SQL nào dưới đây có thể gây ra lỗi "Column "..." is ambiguous" nếu không sử dụng tiền tố tên bảng hoặc bí danh, giả sử cả hai bảng `Products` và `Categories` đều có cột `Name`?

  • A. SELECT P.ProductName, C.CategoryName FROM Products P JOIN Categories C ON P.CategoryID = C.CategoryID;
  • B. SELECT Name FROM Products JOIN Categories ON Products.CategoryID = Categories.CategoryID;
  • C. SELECT Products.ProductName, Categories.CategoryName FROM Products JOIN Categories ON Products.CategoryID = Categories.CategoryID;
  • D. SELECT * FROM Products JOIN Categories ON Products.CategoryID = Categories.CategoryID;

Câu 23: Bạn có bảng `Orders` (`OrderID`, `CustomerID`) và bảng `OrderDetails` (`OrderDetailID`, `OrderID`, `ProductID`, `Quantity`). Bạn muốn tìm tổng số lượng sản phẩm đã được đặt cho mỗi đơn hàng. Câu lệnh SQL nào sau đây thực hiện được điều này?

  • A. SELECT O.OrderID, SUM(OD.Quantity) FROM Orders O JOIN OrderDetails OD ON O.OrderID = OD.OrderID GROUP BY O.OrderID;
  • B. SELECT O.OrderID, SUM(OD.Quantity) FROM Orders O, OrderDetails OD WHERE O.OrderID = OD.OrderID;
  • C. SELECT O.OrderID, SUM(OD.Quantity) FROM Orders O LEFT JOIN OrderDetails OD ON O.OrderID = OD.OrderID;
  • D. SELECT OrderID, Quantity FROM OrderDetails GROUP BY OrderID;

Câu 24: Trong một truy vấn sử dụng `INNER JOIN`, nếu một bản ghi ở bảng thứ nhất không có bản ghi tương ứng ở bảng thứ hai theo điều kiện JOIN, bản ghi đó sẽ:

  • A. Xuất hiện trong kết quả với giá trị NULL ở các cột của bảng thứ hai.
  • B. Xuất hiện trong kết quả với giá trị mặc định ở các cột của bảng thứ hai.
  • C. Không xuất hiện trong kết quả.
  • D. Gây ra lỗi cú pháp.

Câu 25: Bạn có bảng `Products` (`ProductID`, `ProductName`) và bảng `Suppliers` (`SupplierID`, `SupplierName`), cùng bảng liên kết `ProductSuppliers` (`ProductID`, `SupplierID`). Bạn muốn lấy danh sách tất cả sản phẩm và tên nhà cung cấp của chúng, bao gồm cả những sản phẩm chưa có nhà cung cấp nào. Câu lệnh SQL nào sau đây thực hiện được điều này?

  • A. SELECT P.ProductName, S.SupplierName FROM Products P LEFT JOIN ProductSuppliers PS ON P.ProductID = PS.ProductID LEFT JOIN Suppliers S ON PS.SupplierID = S.SupplierID;
  • B. SELECT P.ProductName, S.SupplierName FROM Products P INNER JOIN ProductSuppliers PS ON P.ProductID = PS.ProductID INNER JOIN Suppliers S ON PS.SupplierID = S.SupplierID;
  • C. SELECT P.ProductName, S.SupplierName FROM Products P LEFT JOIN Suppliers S ON P.SupplierID = S.SupplierID;
  • D. SELECT P.ProductName, S.SupplierName FROM Products P JOIN Suppliers S ON P.ProductID = S.SupplierID;

Câu 26: Mệnh đề `ON` trong câu lệnh `JOIN` được sử dụng để làm gì?

  • A. Lọc các hàng sau khi JOIN.
  • B. Nhóm các hàng có cùng giá trị.
  • C. Xác định điều kiện để kết hợp các hàng từ các bảng.
  • D. Sắp xếp kết quả truy vấn.

Câu 27: Bạn muốn lấy danh sách tên khách hàng và số lượng đơn hàng mà mỗi khách hàng đã đặt. Có hai bảng `Customers` (`CustomerID`, `Name`) và `Orders` (`OrderID`, `CustomerID`). Câu lệnh SQL nào sau đây thực hiện được điều này?

  • A. SELECT C.Name, COUNT(O.OrderID) FROM Customers C LEFT JOIN Orders O ON C.CustomerID = O.CustomerID GROUP BY C.Name;
  • B. SELECT C.Name, COUNT(O.OrderID) FROM Customers C INNER JOIN Orders O ON C.CustomerID = O.CustomerID GROUP BY C.Name;
  • C. SELECT C.Name, COUNT(*) FROM Customers C, Orders O WHERE C.CustomerID = O.CustomerID GROUP BY C.Name;
  • D. SELECT C.Name, COUNT(O.OrderID) FROM Customers C LEFT JOIN Orders O ON C.CustomerID = O.CustomerID;

Câu 28: Khi nào thì kết quả của `INNER JOIN` và `LEFT JOIN` giữa hai bảng `A` và `B` trên điều kiện `A.Khoa = B.Khoa` là giống nhau?

  • A. Khi bảng A có nhiều bản ghi hơn bảng B.
  • B. Khi bảng B có nhiều bản ghi hơn bảng A.
  • C. Khi không có bản ghi nào trong A không có bản ghi tương ứng trong B.
  • D. Khi mọi bản ghi trong bảng bên trái (A) đều có bản ghi tương ứng trong bảng bên phải (B) theo điều kiện JOIN.

Câu 29: Bạn có hai bảng: `Teachers` (`TeacherID`, `Name`) và `Courses` (`CourseID`, `CourseName`, `TeacherID`). Bạn muốn lấy danh sách tên các giáo viên và số lượng khóa học mà mỗi giáo viên đang dạy. Câu lệnh SQL nào sau đây thực hiện được điều này?

  • A. SELECT T.Name, COUNT(C.CourseID) FROM Teachers T INNER JOIN Courses C ON T.TeacherID = C.TeacherID GROUP BY T.Name;
  • B. SELECT T.Name, COUNT(C.CourseID) FROM Teachers T LEFT JOIN Courses C ON T.TeacherID = C.TeacherID;
  • C. SELECT T.Name, COUNT(C.CourseID) FROM Teachers T LEFT JOIN Courses C ON T.TeacherID = C.TeacherID GROUP BY T.Name;
  • D. SELECT T.Name, COUNT(*) FROM Teachers T, Courses C WHERE T.TeacherID = C.TeacherID GROUP BY T.Name;

Câu 30: Giả sử bạn có bảng `Movies` (`MovieID`, `Title`) và `Genres` (`GenreID`, `GenreName`), cùng bảng liên kết `MovieGenres` (`MovieID`, `GenreID`). Bạn muốn tìm tất cả các bộ phim thuộc thể loại "Science Fiction". Câu lệnh SQL nào sau đây thực hiện được điều này?

  • A. SELECT M.Title FROM Movies M JOIN Genres G ON M.GenreID = G.GenreID WHERE G.GenreName = "Science Fiction";
  • B. SELECT M.Title FROM Movies M JOIN MovieGenres MG ON M.MovieID = MG.MovieID JOIN Genres G ON MG.GenreID = G.GenreID WHERE G.GenreName = "Science Fiction";
  • C. SELECT M.Title FROM Movies M, Genres G WHERE G.GenreName = "Science Fiction";
  • D. SELECT M.Title FROM Movies M LEFT JOIN MovieGenres MG ON M.MovieID = MG.MovieID WHERE MG.GenreID IN (SELECT GenreID FROM Genres WHERE GenreName = "Science Fiction");

Câu 31: Bạn có bảng `Employees` (`EmployeeID`, `Name`, `DepartmentID`) và `Departments` (`DepartmentID`, `DepartmentName`). Bạn muốn lấy danh sách tất cả các phòng ban, kể cả những phòng ban chưa có nhân viên nào. Câu lệnh SQL nào sau đây phù hợp?

  • A. SELECT D.DepartmentName, E.Name FROM Employees E INNER JOIN Departments D ON E.DepartmentID = D.DepartmentID;
  • B. SELECT D.DepartmentName, E.Name FROM Employees E LEFT JOIN Departments D ON E.DepartmentID = D.DepartmentID;
  • C. SELECT D.DepartmentName, E.Name FROM Employees E RIGHT JOIN Departments D ON E.DepartmentID = D.DepartmentID;
  • D. SELECT D.DepartmentName FROM Departments D WHERE D.DepartmentID NOT IN (SELECT DepartmentID FROM Employees);

Câu 32: Trong câu lệnh `SELECT T1.ColA, T2.ColB FROM Table1 T1 INNER JOIN Table2 T2 ON T1.ID = T2.ID;`, nếu cả hai bảng `Table1` và `Table2` đều có cột tên là `Description`, để chọn cột `Description` từ `Table1`, bạn phải viết như thế nào trong mệnh đề `SELECT`?

  • A. T1.Description
  • B. Description
  • C. Table1.Description
  • D. T2.Description

Câu 33: Bạn muốn lấy danh sách tên tất cả các sản phẩm (từ bảng `Products`) và tên danh mục của chúng (từ bảng `Categories`), bao gồm cả những sản phẩm chưa được phân loại và những danh mục chưa có sản phẩm nào. Loại JOIN nào phù hợp nhất?

  • A. INNER JOIN
  • B. LEFT JOIN
  • C. RIGHT JOIN
  • D. FULL OUTER JOIN

Câu 34: Cho câu lệnh SQL: `SELECT A.Col1, B.Col2 FROM TableA A LEFT JOIN TableB B ON A.ID = B.ID WHERE B.Col2 IS NOT NULL;`. Câu lệnh này thực chất tương đương với loại JOIN nào?

  • A. INNER JOIN
  • B. RIGHT JOIN
  • C. FULL OUTER JOIN
  • D. CROSS JOIN

Câu 35: Để kết nối hai bảng `Orders` và `Shippers` dựa trên cột `ShipperID` chung, nhưng chỉ lấy các đơn hàng được vận chuyển bởi công ty "Speedy Express", câu lệnh SQL nào sau đây là đúng?

  • A. SELECT * FROM Orders O JOIN Shippers S ON O.ShipperID = S.ShipperID AND S.ShipperName = "Speedy Express";
  • B. SELECT * FROM Orders O JOIN Shippers S ON O.ShipperID = S.ShipperID WHERE S.ShipperName = "Speedy Express";
  • C. SELECT * FROM Orders WHERE ShipperID IN (SELECT ShipperID FROM Shippers WHERE ShipperName = "Speedy Express");
  • D. Tất cả các câu lệnh trên đều đúng cú pháp và cho kết quả tương tự.

Câu 36: Bạn có bảng `Customers` (`CustomerID`, `Name`) và `Payments` (`PaymentID`, `CustomerID`, `Amount`, `PaymentDate`). Bạn muốn lấy danh sách các khách hàng và tổng số tiền họ đã thanh toán sau ngày "2023-01-01". Câu lệnh SQL nào sau đây thực hiện được điều này?

  • A. SELECT C.Name, COALESCE(SUM(P.Amount), 0) FROM Customers C LEFT JOIN Payments P ON C.CustomerID = P.CustomerID WHERE P.PaymentDate > "2023-01-01" OR P.PaymentID IS NULL GROUP BY C.Name;
  • B. SELECT C.Name, SUM(P.Amount) FROM Customers C JOIN Payments P ON C.CustomerID = P.CustomerID WHERE P.PaymentDate > "2023-01-01" GROUP BY C.Name;
  • C. SELECT C.Name, SUM(P.Amount) FROM Customers C LEFT JOIN Payments P ON C.CustomerID = P.CustomerID AND P.PaymentDate > "2023-01-01" GROUP BY C.Name;
  • D. SELECT C.Name, SUM(P.Amount) FROM Customers C LEFT JOIN Payments P ON C.CustomerID = P.CustomerID WHERE P.PaymentDate > "2023-01-01" GROUP BY C.Name;

Câu 37: Sự khác biệt cơ bản giữa `INNER JOIN` và `LEFT JOIN` nằm ở cách xử lý các bản ghi như thế nào?

  • A. INNER JOIN nhanh hơn LEFT JOIN.
  • B. INNER JOIN chỉ trả về các bản ghi có sự trùng khớp ở cả hai bảng, LEFT JOIN trả về tất cả bản ghi từ bảng bên trái và các bản ghi trùng khớp từ bảng bên phải.
  • C. LEFT JOIN yêu cầu khóa chính, INNER JOIN không cần.
  • D. INNER JOIN chỉ dùng cho 2 bảng, LEFT JOIN có thể dùng cho nhiều hơn 2 bảng.

Câu 38: Khi thực hiện truy vấn JOIN trên các bảng có kích thước rất lớn, yếu tố nào sau đây có ảnh hưởng đáng kể đến hiệu suất truy vấn?

  • A. Số lượng cột được chọn trong mệnh đề SELECT.
  • B. Thứ tự viết các mệnh đề SELECT, FROM, JOIN.
  • C. Sử dụng bí danh (alias) cho các bảng.
  • D. Việc có chỉ mục (index) trên các cột được sử dụng trong điều kiện JOIN và WHERE.

Câu 39: Bạn có bảng `Products` (`ProductID`, `ProductName`, `SupplierID`) và bảng `Suppliers` (`SupplierID`, `SupplierName`). Bạn muốn lấy danh sách tên sản phẩm và tên nhà cung cấp của chúng, NHƯNG chỉ lấy các sản phẩm có giá bán lớn hơn 100000 (giả sử có cột `Price` trong bảng `Products`). Câu lệnh SQL nào sau đây là đúng?

  • A. SELECT P.ProductName, S.SupplierName FROM Products P JOIN Suppliers S ON P.SupplierID = S.SupplierID WHERE P.Price > 100000;
  • B. SELECT P.ProductName, S.SupplierName FROM Products P JOIN Suppliers S ON P.SupplierID = S.SupplierID AND P.Price > 100000;
  • C. SELECT P.ProductName, S.SupplierName FROM Products P WHERE P.Price > 100000 JOIN Suppliers S ON P.SupplierID = S.SupplierID;
  • D. SELECT P.ProductName, S.SupplierName FROM Products P WHERE P.Price > 100000;

Câu 40: Trong một cơ sở dữ liệu quản lý dự án, có các bảng `Projects` (`ProjectID`, `ProjectName`), `Tasks` (`TaskID`, `ProjectID`, `TaskName`), và `Employees` (`EmployeeID`, `EmployeeName`), cùng bảng liên kết `ProjectAssignments` (`ProjectID`, `EmployeeID`). Để lấy danh sách tên dự án và tên các nhân viên được phân công vào dự án đó, câu lệnh SQL nào sau đây là chính xác?

  • A. SELECT P.ProjectName, E.EmployeeName FROM Projects P JOIN Employees E ON P.ProjectID = E.ProjectID;
  • B. SELECT P.ProjectName, E.EmployeeName FROM Projects P JOIN ProjectAssignments PA ON P.ProjectID = PA.ProjectID WHERE PA.EmployeeID IN (SELECT EmployeeID FROM Employees);
  • C. SELECT P.ProjectName, E.EmployeeName FROM Projects P JOIN ProjectAssignments PA ON P.ProjectID = PA.ProjectID JOIN Employees E ON PA.EmployeeID = E.EmployeeID;
  • D. SELECT P.ProjectName, E.EmployeeName FROM Projects P, ProjectAssignments PA, Employees E WHERE P.ProjectID = PA.ProjectID AND PA.EmployeeID = E.EmployeeID;

Câu 41: Bạn muốn tìm tất cả các sản phẩm (từ bảng `Products`) chưa từng xuất hiện trong bất kỳ chi tiết đơn hàng nào (từ bảng `OrderItems`). Câu lệnh SQL nào sau đây thực hiện được điều này?

  • A. SELECT P.ProductName FROM Products P INNER JOIN OrderItems OI ON P.ProductID = OI.ProductID WHERE OI.ProductID IS NULL;
  • B. SELECT P.ProductName FROM Products P WHERE P.ProductID NOT IN (SELECT ProductID FROM OrderItems WHERE ProductID IS NOT NULL);
  • C. SELECT P.ProductName FROM Products P, OrderItems OI WHERE P.ProductID = OI.ProductID AND OI.ProductID IS NULL;
  • D. SELECT P.ProductName FROM Products P LEFT JOIN OrderItems OI ON P.ProductID = OI.ProductID WHERE OI.ProductID IS NULL;

Câu 42: Trong một truy vấn JOIN giữa hai bảng, điều gì xảy ra nếu không có bất kỳ bản ghi nào trong bảng thứ nhất khớp với bất kỳ bản ghi nào trong bảng thứ hai dựa trên điều kiện `ON` khi sử dụng `INNER JOIN`?

  • A. Truy vấn trả về một tập hợp kết quả rỗng (không có hàng nào).
  • B. Truy vấn trả về tất cả các hàng từ bảng thứ nhất với giá trị NULL ở các cột của bảng thứ hai.
  • C. Truy vấn trả về tất cả các hàng từ cả hai bảng.
  • D. Truy vấn báo lỗi cú pháp.

Câu 43: Bạn có bảng `Authors` (`AuthorID`, `Name`) và `Books` (`BookID`, `Title`, `AuthorID`). Bạn muốn lấy tên tất cả các tác giả và, nếu có, tên cuốn sách đầu tiên (theo thứ tự bảng chữ cái của tên sách) của mỗi tác giả. Câu lệnh SQL nào sau đây có thể giúp thực hiện điều này, sử dụng kỹ thuật JOIN và hàm tổng hợp/nhóm?

  • A. SELECT A.Name, B.Title FROM Authors A JOIN Books B ON A.AuthorID = B.AuthorID GROUP BY A.Name;
  • B. SELECT A.Name, MIN(B.Title) FROM Authors A LEFT JOIN Books B ON A.AuthorID = B.AuthorID GROUP BY A.Name;
  • C. SELECT A.Name, B.Title FROM Authors A LEFT JOIN Books B ON A.AuthorID = B.AuthorID ORDER BY A.Name, B.Title LIMIT 1;
  • D. SELECT A.Name, FIRST(B.Title) FROM Authors A LEFT JOIN Books B ON A.AuthorID = B.AuthorID GROUP BY A.Name;

Câu 44: Bạn có hai bảng `Students` (`StudentID`, `Name`) và `Grades` (`GradeID`, `StudentID`, `Subject`, `Score`). Bạn muốn lấy danh sách tên sinh viên và điểm trung bình của họ trong môn "Math". Câu lệnh SQL nào sau đây thực hiện được điều này?

  • A. SELECT S.Name, AVG(G.Score) FROM Students S JOIN Grades G ON S.StudentID = G.StudentID WHERE G.Subject = "Math" GROUP BY S.Name;
  • B. SELECT S.Name, AVG(G.Score) FROM Students S LEFT JOIN Grades G ON S.StudentID = G.StudentID WHERE G.Subject = "Math" GROUP BY S.Name;
  • C. SELECT S.Name, AVG(G.Score) FROM Students S, Grades G WHERE S.StudentID = G.StudentID AND G.Subject = "Math" GROUP BY S.Name;
  • D. Cả A và C đều đúng.

Câu 45: Mục đích chính của việc sử dụng các bảng liên kết (linking tables) trong thiết kế cơ sở dữ liệu quan hệ là gì?

  • A. Để lưu trữ dữ liệu tạm thời.
  • B. Để cải thiện tốc độ truy vấn các bảng đơn lẻ.
  • C. Để biểu diễn mối quan hệ nhiều-nhiều (Many-to-Many) giữa hai bảng khác.
  • D. Để sao lưu dữ liệu tự động.

Câu 46: Bạn có bảng `Employees` (`EmployeeID`, `Name`) và bảng `Projects` (`ProjectID`, `ProjectName`), cùng bảng liên kết `Assignments` (`AssignmentID`, `EmployeeID`, `ProjectID`, `Role`). Bạn muốn lấy danh sách tên nhân viên và tên dự án mà họ đang tham gia với vai trò "Lead". Câu lệnh SQL nào sau đây thực hiện được điều này?

  • A. SELECT E.Name, P.ProjectName FROM Employees E JOIN Assignments A ON E.EmployeeID = A.EmployeeID JOIN Projects P ON A.ProjectID = P.ProjectID WHERE A.Role = "Lead";
  • B. SELECT E.Name, P.ProjectName FROM Employees E, Assignments A, Projects P WHERE E.EmployeeID = A.EmployeeID AND A.ProjectID = P.ProjectID AND A.Role = "Lead";
  • C. SELECT E.Name, P.ProjectName FROM Employees E LEFT JOIN Assignments A ON E.EmployeeID = A.EmployeeID LEFT JOIN Projects P ON A.ProjectID = P.ProjectID WHERE A.Role = "Lead";
  • D. Cả A và B đều đúng.

1 / 30

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

Tags: Bộ đề 07

Câu 1: Giả sử bạn có hai bảng trong cơ sở dữ liệu quản lý thư viện: `Sach` (chứa `MaSach`, `TenSach`, `MaTacGia`) và `TacGia` (chứa `MaTacGia`, `TenTacGia`). Để lấy danh sách tên sách và tên tác giả tương ứng, bạn cần sử dụng mệnh đề SQL nào để kết nối hai bảng này dựa trên cột `MaTacGia` chung?

2 / 30

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

Tags: Bộ đề 07

Câu 2: Cho câu lệnh SQL sau: `SELECT A.TenCot1, B.TenCot2 FROM BangA INNER JOIN BangB ON A.KhoaChung = B.KhoaChung;`. Kết quả của câu lệnh này sẽ bao gồm những bản ghi nào?

3 / 30

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

Tags: Bộ đề 07

Câu 3: Bạn muốn lấy danh sách tất cả các tác giả từ bảng `TacGia` và, nếu có, tên các cuốn sách mà họ đã viết từ bảng `Sach`. Ngay cả những tác giả chưa có cuốn sách nào cũng phải xuất hiện trong danh sách. Loại JOIN nào phù hợp nhất trong trường hợp này?

4 / 30

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

Tags: Bộ đề 07

Trong một cơ sở dữ liệu quản lý đơn hàng, có hai bảng: `DonHang` (chứa `MaDonHang`, `MaKhachHang`, `NgayDat`) và `KhachHang` (chứa `MaKhachHang`, `TenKhachHang`, `DiaChi`). Để lấy danh sách tất cả đơn hàng kèm tên khách hàng đặt đơn đó, câu lệnh SQL nào sau đây là đúng?

5 / 30

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

Tags: Bộ đề 07

Cho hai bảng `SanPham` (`MaSP`, `TenSP`, `MaLoaiSP`) và `LoaiSanPham` (`MaLoaiSP`, `TenLoai`). Bạn muốn lấy danh sách tên sản phẩm cùng với tên loại sản phẩm của chúng. Tuy nhiên, bạn CHỈ muốn hiển thị các sản phẩm thuộc loại 'Điện tử'. Câu lệnh SQL nào sau đây thực hiện được điều này?

6 / 30

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

Tags: Bộ đề 07

Khi thực hiện `LEFT JOIN` giữa `BangA` (bên trái) và `BangB` (bên phải) trên điều kiện `A.Khoa = B.Khoa`, nếu có một bản ghi trong `BangA` không có bản ghi tương ứng trong `BangB`, thì các cột từ `BangB` trong kết quả của bản ghi đó sẽ có giá trị là gì?

7 / 30

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

Tags: Bộ đề 07

Bạn có ba bảng: `SinhVien` (`MaSV`, `TenSV`), `DangKyHoc` (`MaSV`, `MaMonHoc`), và `MonHoc` (`MaMonHoc`, `TenMonHoc`). Để lấy danh sách tên sinh viên và tên các môn học mà họ đã đăng ký, bạn cần thực hiện bao nhiêu phép `JOIN`?

8 / 30

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

Tags: Bộ đề 07

Cho câu lệnh SQL: `SELECT O.OrderID, C.CustomerName FROM Orders O JOIN Customers C ON O.CustomerID = C.CustomerID WHERE C.City = 'London';`. Câu lệnh này có mục đích gì?

9 / 30

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

Tags: Bộ đề 07

Khi kết nối hai bảng `A` và `B` bằng `INNER JOIN` trên điều kiện `A.ID = B.ID`, giả sử có một bản ghi trong `A` có `ID = 5` nhưng không có bản ghi nào trong `B` có `ID = 5`. Bản ghi này sẽ xuất hiện trong kết quả truy vấn không?

10 / 30

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

Tags: Bộ đề 07

Đâu là lý do chính khiến việc sử dụng `JOIN` thay vì chỉ dùng `WHERE` với nhiều bảng trong mệnh đề `FROM` được khuyến khích trong các hệ quản trị CSDL hiện đại?

11 / 30

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

Tags: Bộ đề 07

Bạn có bảng `NhanVien` (`MaNV`, `TenNV`, `MaPhongBan`) và `PhongBan` (`MaPhongBan`, `TenPhongBan`). Bạn muốn lấy danh sách tên nhân viên và tên phòng ban của họ. Tuy nhiên, bạn phát hiện có một số nhân viên chưa được gán mã phòng ban (MaPhongBan là NULL). Bạn muốn hiển thị tất cả nhân viên, kể cả những người chưa có phòng ban. Câu lệnh SQL nào sau đây phù hợp?

12 / 30

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

Tags: Bộ đề 07

Trong truy vấn dữ liệu từ nhiều bảng sử dụng `JOIN`, tại sao việc sử dụng bí danh (alias) cho tên bảng lại hữu ích?

13 / 30

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

Tags: Bộ đề 07

Bạn muốn lấy danh sách tất cả các phòng ban từ bảng `PhongBan` và, nếu có, tên nhân viên làm việc trong phòng ban đó từ bảng `NhanVien`. Ngay cả những phòng ban chưa có nhân viên nào cũng phải xuất hiện trong danh sách. Loại JOIN nào phù hợp nhất trong trường hợp này?

14 / 30

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

Tags: Bộ đề 07

Cho hai bảng `Students` (`StudentID`, `Name`) và `Courses` (`CourseID`, `CourseName`), cùng bảng liên kết `Enrollments` (`EnrollmentID`, `StudentID`, `CourseID`). Để lấy danh sách tên sinh viên và tên các khóa học họ đã đăng ký, câu lệnh SQL nào sau đây là chính xác?

15 / 30

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

Tags: Bộ đề 07

Khi thực hiện `LEFT JOIN` giữa bảng `A` và bảng `B` trên cột `ID`, và bạn muốn chỉ hiển thị các bản ghi từ bảng `A` mà KHÔNG có bản ghi tương ứng trong bảng `B`, bạn sẽ thêm điều kiện lọc nào vào cuối câu lệnh JOIN?

16 / 30

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

Tags: Bộ đề 07

Trong câu lệnh `SELECT O.OrderID, C.CustomerName FROM Orders O JOIN Customers C ON O.CustomerID = C.CustomerID;`, chữ 'O' và 'C' sau tên bảng `Orders` và `Customers` được gọi là gì?

17 / 30

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

Tags: Bộ đề 07

Bạn có hai bảng `Products` (`ProductID`, `ProductName`) và `OrderItems` (`OrderItemID`, `OrderID`, `ProductID`, `Quantity`). Bạn muốn lấy danh sách tất cả sản phẩm và tổng số lượng đã được đặt cho mỗi sản phẩm. Nếu một sản phẩm chưa từng được đặt, nó vẫn phải xuất hiện với tổng số lượng là 0 hoặc NULL. Câu lệnh SQL nào sau đây phù hợp nhất?

18 / 30

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

Tags: Bộ đề 07

Trong câu lệnh `SELECT * FROM BangA JOIN BangB ON BangA.ID = BangB.ID;`, ký tự `*` có ý nghĩa gì khi sử dụng với JOIN?

19 / 30

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

Tags: Bộ đề 07

Giả sử bạn có bảng `Customers` (`CustomerID`, `Name`) và bảng `Invoices` (`InvoiceID`, `CustomerID`, `Amount`). Bạn muốn tìm tất cả khách hàng chưa có hóa đơn nào. Câu lệnh SQL nào sau đây thực hiện được điều này?

20 / 30

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

Tags: Bộ đề 07

Khi nối hai bảng `Orders` và `Customers` bằng `INNER JOIN` trên `CustomerID`, và bạn muốn sắp xếp kết quả theo tên khách hàng theo thứ tự bảng chữ cái, bạn sẽ thêm mệnh đề nào vào cuối câu lệnh?

21 / 30

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

Tags: Bộ đề 07

Bạn có bảng `Employees` (`EmployeeID`, `Name`, `ManagerID`) trong đó `ManagerID` tham chiếu đến `EmployeeID` của người quản lý (trong cùng bảng `Employees`). Để lấy danh sách nhân viên và tên người quản lý trực tiếp của họ, bạn cần sử dụng kỹ thuật JOIN nào?

22 / 30

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

Tags: Bộ đề 07

Câu lệnh SQL nào dưới đây có thể gây ra lỗi 'Column '...' is ambiguous' nếu không sử dụng tiền tố tên bảng hoặc bí danh, giả sử cả hai bảng `Products` và `Categories` đều có cột `Name`?

23 / 30

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

Tags: Bộ đề 07

Bạn có bảng `Orders` (`OrderID`, `CustomerID`) và bảng `OrderDetails` (`OrderDetailID`, `OrderID`, `ProductID`, `Quantity`). Bạn muốn tìm tổng số lượng sản phẩm đã được đặt cho mỗi đơn hàng. Câu lệnh SQL nào sau đây thực hiện được điều này?

24 / 30

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

Tags: Bộ đề 07

Trong một truy vấn sử dụng `INNER JOIN`, nếu một bản ghi ở bảng thứ nhất không có bản ghi tương ứng ở bảng thứ hai theo điều kiện JOIN, bản ghi đó sẽ:

25 / 30

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

Tags: Bộ đề 07

Bạn có bảng `Products` (`ProductID`, `ProductName`) và bảng `Suppliers` (`SupplierID`, `SupplierName`), cùng bảng liên kết `ProductSuppliers` (`ProductID`, `SupplierID`). Bạn muốn lấy danh sách tất cả sản phẩm và tên nhà cung cấp của chúng, bao gồm cả những sản phẩm chưa có nhà cung cấp nào. Câu lệnh SQL nào sau đây thực hiện được điều này?

26 / 30

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

Tags: Bộ đề 07

Mệnh đề `ON` trong câu lệnh `JOIN` được sử dụng để làm gì?

27 / 30

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

Tags: Bộ đề 07

Bạn muốn lấy danh sách tên khách hàng và số lượng đơn hàng mà mỗi khách hàng đã đặt. Có hai bảng `Customers` (`CustomerID`, `Name`) và `Orders` (`OrderID`, `CustomerID`). Câu lệnh SQL nào sau đây thực hiện được điều này?

28 / 30

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

Tags: Bộ đề 07

Khi nào thì kết quả của `INNER JOIN` và `LEFT JOIN` giữa hai bảng `A` và `B` trên điều kiện `A.Khoa = B.Khoa` là giống nhau?

29 / 30

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

Tags: Bộ đề 07

Bạn có hai bảng: `Teachers` (`TeacherID`, `Name`) và `Courses` (`CourseID`, `CourseName`, `TeacherID`). Bạn muốn lấy danh sách tên các giáo viên và số lượng khóa học mà mỗi giáo viên đang dạy. Câu lệnh SQL nào sau đây thực hiện được điều này?

30 / 30

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

Tags: Bộ đề 07

Giả sử bạn có bảng `Movies` (`MovieID`, `Title`) và `Genres` (`GenreID`, `GenreName`), cùng bảng liên kết `MovieGenres` (`MovieID`, `GenreID`). Bạn muốn tìm tất cả các bộ phim thuộc thể loại 'Science Fiction'. Câu lệnh SQL nào sau đây thực hiện được điều này?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 08

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 08 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Giả sử bạn có hai bảng `bannhac` (chứa thông tin bản nhạc, có khóa ngoại `idNhacsi`) và `nhacsi` (chứa thông tin nhạc sĩ, có khóa chính `idNhacsi`). Bạn muốn lấy danh sách tên tất cả bản nhạc cùng với tên nhạc sĩ sáng tác tương ứng. Câu lệnh SQL nào sau đây thực hiện được yêu cầu đó, chỉ hiển thị các bản nhạc có nhạc sĩ đã được ghi nhận?

  • A. SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac, nhacsi WHERE bannhac.idNhacsi = nhacsi.idNhacsi;
  • B. SELECT b.tenBannhac, n.tenNhacsi FROM bannhac AS b INNER JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi;
  • C. SELECT bannhac.tenBannhac, nhacsi.tenNhacsi FROM bannhac LEFT JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;
  • D. SELECT tenBannhac, tenNhacsi FROM bannhac WHERE idNhacsi IS NOT NULL;

Câu 2: Vẫn với hai bảng `bannhac` và `nhacsi` như trên. Bạn muốn liệt kê tất cả các bản nhạc của nhạc sĩ có tên "Trịnh Công Sơn". Câu lệnh SQL nào là phù hợp nhất?

  • A. SELECT * FROM bannhac WHERE idNhacsi IN (SELECT idNhacsi FROM nhacsi WHERE tenNhacsi = "Trịnh Công Sơn");
  • B. SELECT b.tenBannhac FROM bannhac AS b JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi AND n.tenNhacsi = "Trịnh Công Sơn";
  • C. SELECT b.tenBannhac, n.tenNhacsi FROM bannhac AS b INNER JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi WHERE n.tenNhacsi = "Trịnh Công Sơn";
  • D. SELECT tenBannhac FROM bannhac WHERE tenNhacsi = "Trịnh Công Sơn";

Câu 3: Bạn cần lấy danh sách các bản thu âm (từ bảng `banthuam` có khóa ngoại `idBannhac`, `idCasi`) bao gồm cả tên bản nhạc (từ bảng `bannhac`) và tên ca sĩ thể hiện (từ bảng `casi`). Cấu trúc bảng: `banthuam` (idBanthuam PK, idBannhac FK, idCasi FK), `bannhac` (idBannhac PK, tenBannhac), `casi` (idCasi PK, tenCasi). Câu lệnh SQL nào sau đây sẽ trả về kết quả mong muốn?

  • A. SELECT bt.idBanthuam, bn.tenBannhac, cs.tenCasi FROM banthuam AS bt JOIN bannhac AS bn ON bt.idBannhac = bn.idBannhac JOIN casi AS cs ON bt.idCasi = cs.idCasi;
  • B. SELECT bt.idBanthuam, bn.tenBannhac, cs.tenCasi FROM banthuam AS bt, bannhac AS bn, casi AS cs WHERE bt.idBannhac = bn.idBannhac AND bt.idCasi = cs.idCasi;
  • C. SELECT * FROM banthuam LEFT JOIN bannhac ON banthuam.idBannhac = bannhac.idBannhac LEFT JOIN casi ON banthuam.idCasi = casi.idCasi;
  • D. SELECT idBanthuam, tenBannhac, tenCasi FROM banthuam JOIN bannhac JOIN casi;

Câu 4: Bạn muốn xem danh sách tất cả các nhạc sĩ, và nếu họ có bản nhạc nào trong bảng `bannhac`, hãy hiển thị tên bản nhạc đó. Nếu một nhạc sĩ chưa có bản nhạc nào được ghi nhận trong bảng `bannhac`, tên nhạc sĩ đó vẫn phải xuất hiện trong kết quả. Loại JOIN nào bạn nên sử dụng giữa bảng `nhacsi` và `bannhac`?

  • A. INNER JOIN
  • B. LEFT JOIN
  • C. RIGHT JOIN
  • D. FULL OUTER JOIN

Câu 5: Sử dụng các bảng `nhacsi` và `bannhac` như câu 1. Bạn dùng câu lệnh `SELECT n.tenNhacsi, b.tenBannhac FROM nhacsi AS n LEFT JOIN bannhac AS b ON n.idNhacsi = b.idNhacsi;`. Trong kết quả, nếu một nhạc sĩ chưa có bản nhạc nào, cột `tenBannhac` sẽ hiển thị giá trị gì?

  • A. NULL
  • B. Một chuỗi rỗng ("")
  • C. Tên nhạc sĩ lặp lại
  • D. Thông báo lỗi

Câu 6: Bạn muốn tìm các bản nhạc trong bảng `bannhac` mà chưa được gán cho bất kỳ nhạc sĩ nào (tức là `idNhacsi` trong bảng `bannhac` bị thiếu hoặc chưa được liên kết). Câu lệnh SQL nào sau đây giúp bạn làm điều đó?

  • A. SELECT tenBannhac FROM bannhac WHERE idNhacsi IS NULL;
  • B. SELECT b.tenBannhac FROM bannhac AS b INNER JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi WHERE n.idNhacsi IS NULL;
  • C. SELECT b.tenBannhac FROM bannhac AS b LEFT JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi WHERE n.idNhacsi IS NULL;
  • D. SELECT tenBannhac FROM bannhac WHERE idNhacsi = "";

Câu 7: Khi thực hiện truy vấn kết nối nhiều bảng, việc sử dụng bí danh (alias) cho tên bảng (ví dụ: `bannhac AS b`) mang lại lợi ích gì?

  • A. Giảm số lượng bản ghi trả về.
  • B. Tăng tốc độ thực thi truy vấn.
  • C. Bắt buộc phải sử dụng khi kết nối nhiều hơn hai bảng.
  • D. Giúp câu lệnh ngắn gọn, dễ đọc và tránh nhầm lẫn tên cột khi các bảng có cột trùng tên.

Câu 8: Bạn có bảng `bannhac` (idBannhac PK, tenBannhac, idTheloai FK) và bảng `theloai` (idTheloai PK, tenTheloai). Bạn muốn lấy danh sách tên bản nhạc và tên thể loại của chúng, chỉ những bản nhạc đã được gán thể loại hợp lệ. Câu lệnh nào sau đây là đúng?

  • A. SELECT b.tenBannhac, t.tenTheloai FROM bannhac AS b INNER JOIN theloai AS t ON b.idTheloai = t.idTheloai;
  • B. SELECT b.tenBannhac, t.tenTheloai FROM bannhac AS b LEFT JOIN theloai AS t ON b.idTheloai = t.idTheloai;
  • C. SELECT tenBannhac, tenTheloai FROM bannhac, theloai WHERE bannhac.idTheloai = theloai.idTheloai;
  • D. SELECT tenBannhac, tenTheloai FROM bannhac WHERE idTheloai IS NOT NULL;

Câu 9: Vẫn với các bảng `bannhac`, `theloai`, `nhacsi` như mô tả ở các câu trước. Bạn muốn liệt kê tên các bản nhạc thuộc thể loại "Nhạc đỏ" và tên nhạc sĩ sáng tác chúng. Câu lệnh SQL nào sau đây là chính xác?

  • A. SELECT b.tenBannhac, n.tenNhacsi FROM bannhac AS b JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi WHERE b.idTheloai = (SELECT idTheloai FROM theloai WHERE tenTheloai = "Nhạc đỏ");
  • B. SELECT b.tenBannhac, n.tenNhacsi FROM bannhac AS b JOIN nhacsi AS n ON b.idNhacsi = n.idNhacsi JOIN theloai AS t ON b.idTheloai = t.idTheloai WHERE t.tenTheloai = "Nhạc đỏ";
  • C. SELECT b.tenBannhac, n.tenNhacsi FROM bannhac AS b, nhacsi AS n, theloai AS t WHERE b.idNhacsi = n.idNhacsi AND b.idTheloai = t.idTheloai AND t.tenTheloai = "Nhạc đỏ";
  • D. SELECT tenBannhac, tenNhacsi FROM bannhac WHERE tenTheloai = "Nhạc đỏ";

Câu 10: Bạn có các bảng `bannhac` (idBannhac PK, tenBannhac), `banthuam` (idBanthuam PK, idBannhac FK, idCasi FK), `casi` (idCasi PK, tenCasi). Bạn muốn lấy danh sách các bản thu âm cùng với tên bản nhạc và tên ca sĩ. Tuy nhiên, bạn muốn hiển thị tất cả các bản thu âm, ngay cả khi thông tin bản nhạc hoặc ca sĩ của bản thu đó bị thiếu trong các bảng tương ứng. Loại JOIN nào phù hợp cho trường hợp này?

  • A. INNER JOIN giữa cả ba bảng.
  • B. LEFT JOIN từ `banthuam` sang `bannhac` và `casi`.
  • C. RIGHT JOIN từ `bannhac` và `casi` sang `banthuam`.
  • D. Sử dụng kết hợp LEFT JOIN hoặc FULL OUTER JOIN (tùy hệ quản trị CSDL) để đảm bảo tất cả bản thu âm được hiển thị.

Câu 11: Khi kết nối hai bảng A và B bằng `INNER JOIN A ON A.khoa_chung = B.khoa_chung`, kết quả trả về sẽ chứa các bản ghi:

  • A. Tất cả bản ghi từ bảng A.
  • B. Tất cả bản ghi từ bảng B.
  • C. Chỉ các bản ghi có giá trị `khoa_chung` khớp nhau ở cả hai bảng A và B.
  • D. Tất cả bản ghi từ cả hai bảng A và B.

Câu 12: Bạn có bảng `hocsinh` (maHS PK, tenHS, maLop FK) và bảng `lop` (maLop PK, tenLop). Để lấy danh sách tên học sinh cùng với tên lớp của họ, bạn sẽ viết câu lệnh JOIN như thế nào?

  • A. SELECT h.tenHS, l.tenLop FROM hocsinh AS h JOIN lop AS l ON h.maLop = l.maLop;
  • B. SELECT h.tenHS, l.tenLop FROM hocsinh AS h, lop AS l WHERE h.maHS = l.maLop;
  • C. SELECT tenHS, tenLop FROM hocsinh INNER JOIN lop;
  • D. SELECT h.tenHS, l.tenLop FROM hocsinh AS h LEFT JOIN lop AS l ON h.maHS = l.maLop;

Câu 13: Giả sử bạn muốn tìm tất cả các ca sĩ (từ bảng `casi`) mà không có bất kỳ bản thu âm nào được ghi nhận trong bảng `banthuam`. Cấu trúc bảng: `casi` (idCasi PK, tenCasi), `banthuam` (idBanthuam PK, idCasi FK). Câu lệnh SQL nào sau đây sẽ giúp bạn làm điều đó?

  • A. SELECT c.tenCasi FROM casi AS c INNER JOIN banthuam AS bt ON c.idCasi = bt.idCasi WHERE bt.idCasi IS NULL;
  • B. SELECT c.tenCasi FROM casi AS c WHERE idCasi NOT IN (SELECT idCasi FROM banthuam);
  • C. SELECT c.tenCasi FROM casi AS c RIGHT JOIN banthuam AS bt ON c.idCasi = bt.idCasi WHERE c.idCasi IS NULL;
  • D. SELECT c.tenCasi FROM casi AS c LEFT JOIN banthuam AS bt ON c.idCasi = bt.idCasi WHERE bt.idCasi IS NULL;

Câu 14: Trong một truy vấn `LEFT JOIN A ON A.khoa = B.khoa WHERE B.cot_nao_do IS NOT NULL`, mệnh đề `WHERE B.cot_nao_do IS NOT NULL` có tác dụng gì đối với kết quả của LEFT JOIN?

  • A. Nó sẽ loại bỏ các bản ghi từ bảng A mà không có bản ghi khớp trong bảng B, làm cho kết quả tương tự như INNER JOIN.
  • B. Nó chỉ hiển thị các bản ghi từ bảng A mà không có bản ghi khớp trong bảng B.
  • C. Nó không ảnh hưởng đến kết quả của LEFT JOIN.
  • D. Nó chỉ lọc các bản ghi từ bảng B trước khi JOIN.

Câu 15: Mục đích chính của việc liên kết các bảng trong cơ sở dữ liệu quan hệ là gì?

  • A. Để lưu trữ tất cả dữ liệu vào một bảng duy nhất.
  • B. Để làm cho cơ sở dữ liệu phức tạp hơn.
  • C. Để tổ chức dữ liệu một cách hiệu quả, giảm trùng lặp và cho phép truy vấn kết hợp thông tin từ các thực thể liên quan.
  • D. Để bắt buộc người dùng phải sử dụng SQL.

Câu 16: Bạn có các bảng `DonHang` (idDonHang PK, idKhachHang FK, ngayDat), `KhachHang` (idKhachHang PK, tenKhachHang), `ChiTietDonHang` (idChiTiet PK, idDonHang FK, idSanPham FK, soLuong), `SanPham` (idSanPham PK, tenSanPham). Bạn muốn lấy danh sách tên khách hàng và tên sản phẩm mà họ đã đặt trong tất cả các đơn hàng. Bạn cần JOIN những bảng nào?

  • A. DonHang và KhachHang.
  • B. ChiTietDonHang và SanPham.
  • C. KhachHang và SanPham.
  • D. KhachHang, DonHang, ChiTietDonHang, và SanPham.

Câu 17: Giả sử bạn thực hiện truy vấn `SELECT * FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;`. Nếu có một bản nhạc trong bảng `bannhac` mà trường `idNhacsi` của nó không khớp với bất kỳ `idNhacsi` nào trong bảng `nhacsi`, bản nhạc đó sẽ:

  • A. Vẫn xuất hiện trong kết quả, với các cột từ bảng `nhacsi` là NULL.
  • B. Không xuất hiện trong kết quả.
  • C. Gây ra lỗi cú pháp.
  • D. Xuất hiện trong kết quả với thông báo cảnh báo.

Câu 18: Bạn muốn đếm số lượng bản nhạc của mỗi nhạc sĩ. Sau khi JOIN bảng `bannhac` và `nhacsi`, bạn sẽ sử dụng mệnh đề SQL nào để nhóm kết quả theo nhạc sĩ và đếm?

  • A. ORDER BY
  • B. WHERE
  • C. GROUP BY
  • D. HAVING

Câu 19: Để sắp xếp kết quả của một truy vấn JOIN theo thứ tự bảng chữ cái của tên bản nhạc, bạn sẽ thêm mệnh đề nào vào cuối câu lệnh SQL?

  • A. ORDER BY bannhac.tenBannhac ASC;
  • B. SORT BY bannhac.tenBannhac;
  • C. GROUP BY bannhac.tenBannhac;
  • D. FILTER BY bannhac.tenBannhac;

Câu 20: Bạn có bảng `hocsinh` (maHS PK, tenHS, maLop FK) và bảng `lop` (maLop PK, tenLop). Bạn muốn lấy danh sách tất cả các lớp, và nếu có học sinh nào thuộc lớp đó, liệt kê tên học sinh. Các lớp chưa có học sinh vẫn phải hiển thị. Câu lệnh nào sau đây là phù hợp?

  • A. SELECT l.tenLop, h.tenHS FROM lop AS l INNER JOIN hocsinh AS h ON l.maLop = h.maLop;
  • B. SELECT l.tenLop, h.tenHS FROM lop AS l RIGHT JOIN hocsinh AS h ON l.maLop = h.maLop;
  • C. SELECT l.tenLop, h.tenHS FROM lop AS l LEFT JOIN hocsinh AS h ON l.maLop = h.maLop;
  • D. SELECT tenLop, tenHS FROM lop, hocsinh WHERE lop.maLop = hocsinh.maLop;

Câu 21: Trong ngữ cảnh cơ sở dữ liệu quan hệ, khóa ngoại (Foreign Key) có vai trò gì trong việc liên kết các bảng?

  • A. Xác định duy nhất một bản ghi trong bảng.
  • B. Thiết lập mối quan hệ giữa hai bảng bằng cách tham chiếu đến khóa chính của bảng khác.
  • C. Đảm bảo dữ liệu trong cột là duy nhất.
  • D. Tăng tốc độ truy vấn dữ liệu.

Câu 22: Bạn có bảng `sanpham` (idSP PK, tenSP, idLoaiSP FK) và bảng `loaisanpham` (idLoaiSP PK, tenLoai). Bạn muốn lấy danh sách tên sản phẩm và tên loại sản phẩm của chúng. Tuy nhiên, bạn chỉ muốn hiển thị các sản phẩm thuộc loại "Điện tử". Câu lệnh nào sau đây là đúng?

  • A. SELECT s.tenSP, l.tenLoai FROM sanpham AS s JOIN loaisanpham AS l ON s.idLoaiSP = l.idLoaiSP WHERE l.tenLoai = "Điện tử";
  • B. SELECT s.tenSP, l.tenLoai FROM sanpham AS s, loaisanpham AS l WHERE s.idLoaiSP = l.idLoaiSP AND s.tenLoai = "Điện tử";
  • C. SELECT tenSP, tenLoai FROM sanpham WHERE tenLoai = "Điện tử";
  • D. SELECT s.tenSP, l.tenLoai FROM sanpham AS s LEFT JOIN loaisanpham AS l ON s.idLoaiSP = l.idLoaiSP WHERE l.tenLoai = "Điện tử";

Câu 23: Khi sử dụng `INNER JOIN` giữa hai bảng A và B trên một điều kiện khớp, số lượng bản ghi trong kết quả sẽ là:

  • A. Bằng số lượng bản ghi của bảng A.
  • B. Bằng số lượng bản ghi của bảng B.
  • C. Bằng tổng số bản ghi của bảng A và bảng B.
  • D. Bằng số lượng các cặp bản ghi từ A và B thỏa mãn điều kiện khớp.

Câu 24: Bạn có bảng `nhanvien` (idNV PK, tenNV, idPhongBan FK) và bảng `phongban` (idPhongBan PK, tenPhongBan). Bạn muốn lấy danh sách tất cả các phòng ban và số lượng nhân viên làm việc tại mỗi phòng ban. Query của bạn sẽ bao gồm:

  • A. INNER JOIN nhanvien và phongban, sau đó GROUP BY tenNV.
  • B. LEFT JOIN phongban và nhanvien, sau đó GROUP BY tenPhongBan và sử dụng hàm COUNT(idNV) hoặc COUNT(nhanvien.idNV).
  • C. INNER JOIN nhanvien và phongban, sau đó GROUP BY tenPhongBan và sử dụng hàm SUM(idNV).
  • D. LEFT JOIN nhanvien và phongban, sau đó WHERE idNV IS NOT NULL.

Câu 25: Giả sử bạn có bảng `hocsinh` (maHS PK, tenHS) và bảng `diem` (idDiem PK, maHS FK, monHoc, diemSo). Một học sinh có thể có nhiều điểm ở các môn khác nhau hoặc chưa có điểm nào. Bạn muốn lấy danh sách tất cả học sinh và điểm của họ ở môn "Toán". Nếu học sinh chưa có điểm môn Toán, họ vẫn xuất hiện trong danh sách nhưng cột điểm sẽ là NULL. Câu lệnh nào sau đây phù hợp?

  • A. SELECT h.tenHS, d.diemSo FROM hocsinh AS h LEFT JOIN diem AS d ON h.maHS = d.maHS AND d.monHoc = "Toán";
  • B. SELECT h.tenHS, d.diemSo FROM hocsinh AS h INNER JOIN diem AS d ON h.maHS = d.maHS WHERE d.monHoc = "Toán";
  • C. SELECT h.tenHS, d.diemSo FROM hocsinh AS h LEFT JOIN diem AS d ON h.maHS = d.maHS WHERE d.monHoc = "Toán" OR d.monHoc IS NULL;
  • D. SELECT tenHS, diemSo FROM hocsinh, diem WHERE hocsinh.maHS = diem.maHS AND diem.monHoc = "Toán";

Câu 26: Sự khác biệt cơ bản giữa `INNER JOIN` và `LEFT JOIN` là gì?

  • A. INNER JOIN nhanh hơn LEFT JOIN.
  • B. INNER JOIN chỉ trả về các bản ghi có khớp ở cả hai bảng, trong khi LEFT JOIN trả về tất cả bản ghi từ bảng bên trái và các bản ghi khớp từ bảng bên phải (hoặc NULL nếu không có khớp).
  • C. INNER JOIN yêu cầu khóa chính, còn LEFT JOIN yêu cầu khóa ngoại.
  • D. LEFT JOIN cho phép sử dụng bí danh, còn INNER JOIN thì không.

Câu 27: Trong câu lệnh `SELECT A.cot1, B.cot2 FROM BangA AS A JOIN BangB AS B ON A.khoaA = B.khoaB;`, `A.khoaA = B.khoaB` được gọi là gì?

  • A. Điều kiện JOIN (Join Condition)
  • B. Mệnh đề WHERE
  • C. Mệnh đề SELECT
  • D. Bí danh (Alias)

Câu 28: Bạn có bảng `nhanvien` (idNV PK, tenNV) và bảng `duan` (idDA PK, tenDA, idQuanLy FK). `idQuanLy` trong bảng `duan` là khóa ngoại tham chiếu đến `idNV` trong bảng `nhanvien` (người quản lý dự án là một nhân viên). Bạn muốn lấy danh sách tên dự án và tên người quản lý dự án đó. Câu lệnh nào sau đây đúng?

  • A. SELECT d.tenDA, nv.tenNV FROM duan AS d JOIN nhanvien AS nv ON d.idDA = nv.idNV;
  • B. SELECT tenDA, tenNV FROM duan, nhanvien WHERE duan.idDA = nhanvien.idNV;
  • C. SELECT d.tenDA, nv.tenNV FROM duan AS d JOIN nhanvien AS nv ON d.idQuanLy = nv.idNV;
  • D. SELECT d.tenDA, nv.tenNV FROM duan AS d LEFT JOIN nhanvien AS nv ON d.idDA = nv.idQuanLy;

Câu 29: Nếu bạn thực hiện `LEFT JOIN A ON A.khoa = B.khoa` và sau đó thêm `WHERE B.khoa IS NOT NULL`, kết quả sẽ tương đương với loại JOIN nào?

  • A. INNER JOIN
  • B. LEFT JOIN
  • C. RIGHT JOIN
  • D. FULL OUTER JOIN

Câu 30: Việc tổ chức dữ liệu thành nhiều bảng nhỏ liên kết với nhau thông qua khóa ngoại, thay vì một bảng lớn chứa tất cả thông tin, giúp ích gì?

  • A. Giảm tốc độ truy vấn.
  • B. Tăng kích thước cơ sở dữ liệu.
  • C. Làm cho việc nhập dữ liệu phức tạp hơn.
  • D. Giảm sự dư thừa dữ liệu (redundancy) và đảm bảo tính nhất quán của dữ liệu (data integrity).

1 / 30

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

Tags: Bộ đề 08

Câu 1: Giả sử bạn có hai bảng `bannhac` (chứa thông tin bản nhạc, có khóa ngoại `idNhacsi`) và `nhacsi` (chứa thông tin nhạc sĩ, có khóa chính `idNhacsi`). Bạn muốn lấy danh sách tên tất cả bản nhạc cùng với tên nhạc sĩ sáng tác tương ứng. Câu lệnh SQL nào sau đây thực hiện được yêu cầu đó, chỉ hiển thị các bản nhạc có nhạc sĩ đã được ghi nhận?

2 / 30

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

Tags: Bộ đề 08

Câu 2: Vẫn với hai bảng `bannhac` và `nhacsi` như trên. Bạn muốn liệt kê tất cả các bản nhạc của nhạc sĩ có tên 'Trịnh Công Sơn'. Câu lệnh SQL nào là phù hợp nhất?

3 / 30

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

Tags: Bộ đề 08

Câu 3: Bạn cần lấy danh sách các bản thu âm (từ bảng `banthuam` có khóa ngoại `idBannhac`, `idCasi`) bao gồm cả tên bản nhạc (từ bảng `bannhac`) và tên ca sĩ thể hiện (từ bảng `casi`). Cấu trúc bảng: `banthuam` (idBanthuam PK, idBannhac FK, idCasi FK), `bannhac` (idBannhac PK, tenBannhac), `casi` (idCasi PK, tenCasi). Câu lệnh SQL nào sau đây sẽ trả về kết quả mong muốn?

4 / 30

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

Tags: Bộ đề 08

Câu 4: Bạn muốn xem danh sách tất cả các nhạc sĩ, và nếu họ có bản nhạc nào trong bảng `bannhac`, hãy hiển thị tên bản nhạc đó. Nếu một nhạc sĩ chưa có bản nhạc nào được ghi nhận trong bảng `bannhac`, tên nhạc sĩ đó vẫn phải xuất hiện trong kết quả. Loại JOIN nào bạn nên sử dụng giữa bảng `nhacsi` và `bannhac`?

5 / 30

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

Tags: Bộ đề 08

Câu 5: Sử dụng các bảng `nhacsi` và `bannhac` như câu 1. Bạn dùng câu lệnh `SELECT n.tenNhacsi, b.tenBannhac FROM nhacsi AS n LEFT JOIN bannhac AS b ON n.idNhacsi = b.idNhacsi;`. Trong kết quả, nếu một nhạc sĩ chưa có bản nhạc nào, cột `tenBannhac` sẽ hiển thị giá trị gì?

6 / 30

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

Tags: Bộ đề 08

Câu 6: Bạn muốn tìm các bản nhạc trong bảng `bannhac` mà chưa được gán cho bất kỳ nhạc sĩ nào (tức là `idNhacsi` trong bảng `bannhac` bị thiếu hoặc chưa được liên kết). Câu lệnh SQL nào sau đây giúp bạn làm điều đó?

7 / 30

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

Tags: Bộ đề 08

Câu 7: Khi thực hiện truy vấn kết nối nhiều bảng, việc sử dụng bí danh (alias) cho tên bảng (ví dụ: `bannhac AS b`) mang lại lợi ích gì?

8 / 30

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

Tags: Bộ đề 08

Câu 8: Bạn có bảng `bannhac` (idBannhac PK, tenBannhac, idTheloai FK) và bảng `theloai` (idTheloai PK, tenTheloai). Bạn muốn lấy danh sách tên bản nhạc và tên thể loại của chúng, chỉ những bản nhạc đã được gán thể loại hợp lệ. Câu lệnh nào sau đây là đúng?

9 / 30

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

Tags: Bộ đề 08

Câu 9: Vẫn với các bảng `bannhac`, `theloai`, `nhacsi` như mô tả ở các câu trước. Bạn muốn liệt kê tên các bản nhạc thuộc thể loại 'Nhạc đỏ' và tên nhạc sĩ sáng tác chúng. Câu lệnh SQL nào sau đây là chính xác?

10 / 30

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

Tags: Bộ đề 08

Câu 10: Bạn có các bảng `bannhac` (idBannhac PK, tenBannhac), `banthuam` (idBanthuam PK, idBannhac FK, idCasi FK), `casi` (idCasi PK, tenCasi). Bạn muốn lấy danh sách các bản thu âm cùng với tên bản nhạc và tên ca sĩ. Tuy nhiên, bạn muốn hiển thị *tất cả* các bản thu âm, ngay cả khi thông tin bản nhạc hoặc ca sĩ của bản thu đó bị thiếu trong các bảng tương ứng. Loại JOIN nào phù hợp cho trường hợp này?

11 / 30

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

Tags: Bộ đề 08

Câu 11: Khi kết nối hai bảng A và B bằng `INNER JOIN A ON A.khoa_chung = B.khoa_chung`, kết quả trả về sẽ chứa các bản ghi:

12 / 30

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

Tags: Bộ đề 08

Câu 12: Bạn có bảng `hocsinh` (maHS PK, tenHS, maLop FK) và bảng `lop` (maLop PK, tenLop). Để lấy danh sách tên học sinh cùng với tên lớp của họ, bạn sẽ viết câu lệnh JOIN như thế nào?

13 / 30

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

Tags: Bộ đề 08

Câu 13: Giả sử bạn muốn tìm tất cả các ca sĩ (từ bảng `casi`) mà *không* có bất kỳ bản thu âm nào được ghi nhận trong bảng `banthuam`. Cấu trúc bảng: `casi` (idCasi PK, tenCasi), `banthuam` (idBanthuam PK, idCasi FK). Câu lệnh SQL nào sau đây sẽ giúp bạn làm điều đó?

14 / 30

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

Tags: Bộ đề 08

Câu 14: Trong một truy vấn `LEFT JOIN A ON A.khoa = B.khoa WHERE B.cot_nao_do IS NOT NULL`, mệnh đề `WHERE B.cot_nao_do IS NOT NULL` có tác dụng gì đối với kết quả của LEFT JOIN?

15 / 30

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

Tags: Bộ đề 08

Câu 15: Mục đích chính của việc liên kết các bảng trong cơ sở dữ liệu quan hệ là gì?

16 / 30

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

Tags: Bộ đề 08

Câu 16: Bạn có các bảng `DonHang` (idDonHang PK, idKhachHang FK, ngayDat), `KhachHang` (idKhachHang PK, tenKhachHang), `ChiTietDonHang` (idChiTiet PK, idDonHang FK, idSanPham FK, soLuong), `SanPham` (idSanPham PK, tenSanPham). Bạn muốn lấy danh sách tên khách hàng và tên sản phẩm mà họ đã đặt trong tất cả các đơn hàng. Bạn cần JOIN những bảng nào?

17 / 30

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

Tags: Bộ đề 08

Câu 17: Giả sử bạn thực hiện truy vấn `SELECT * FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;`. Nếu có một bản nhạc trong bảng `bannhac` mà trường `idNhacsi` của nó không khớp với bất kỳ `idNhacsi` nào trong bảng `nhacsi`, bản nhạc đó sẽ:

18 / 30

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

Tags: Bộ đề 08

Câu 18: Bạn muốn đếm số lượng bản nhạc của mỗi nhạc sĩ. Sau khi JOIN bảng `bannhac` và `nhacsi`, bạn sẽ sử dụng mệnh đề SQL nào để nhóm kết quả theo nhạc sĩ và đếm?

19 / 30

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

Tags: Bộ đề 08

Câu 19: Để sắp xếp kết quả của một truy vấn JOIN theo thứ tự bảng chữ cái của tên bản nhạc, bạn sẽ thêm mệnh đề nào vào cuối câu lệnh SQL?

20 / 30

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

Tags: Bộ đề 08

Câu 20: Bạn có bảng `hocsinh` (maHS PK, tenHS, maLop FK) và bảng `lop` (maLop PK, tenLop). Bạn muốn lấy danh sách tất cả các lớp, và nếu có học sinh nào thuộc lớp đó, liệt kê tên học sinh. Các lớp chưa có học sinh vẫn phải hiển thị. Câu lệnh nào sau đây là phù hợp?

21 / 30

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

Tags: Bộ đề 08

Câu 21: Trong ngữ cảnh cơ sở dữ liệu quan hệ, khóa ngoại (Foreign Key) có vai trò gì trong việc liên kết các bảng?

22 / 30

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

Tags: Bộ đề 08

Câu 22: Bạn có bảng `sanpham` (idSP PK, tenSP, idLoaiSP FK) và bảng `loaisanpham` (idLoaiSP PK, tenLoai). Bạn muốn lấy danh sách tên sản phẩm và tên loại sản phẩm của chúng. Tuy nhiên, bạn chỉ muốn hiển thị các sản phẩm thuộc loại 'Điện tử'. Câu lệnh nào sau đây là đúng?

23 / 30

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

Tags: Bộ đề 08

Câu 23: Khi sử dụng `INNER JOIN` giữa hai bảng A và B trên một điều kiện khớp, số lượng bản ghi trong kết quả sẽ là:

24 / 30

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

Tags: Bộ đề 08

Câu 24: Bạn có bảng `nhanvien` (idNV PK, tenNV, idPhongBan FK) và bảng `phongban` (idPhongBan PK, tenPhongBan). Bạn muốn lấy danh sách tất cả các phòng ban và số lượng nhân viên làm việc tại mỗi phòng ban. Query của bạn sẽ bao gồm:

25 / 30

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

Tags: Bộ đề 08

Câu 25: Giả sử bạn có bảng `hocsinh` (maHS PK, tenHS) và bảng `diem` (idDiem PK, maHS FK, monHoc, diemSo). Một học sinh có thể có nhiều điểm ở các môn khác nhau hoặc chưa có điểm nào. Bạn muốn lấy danh sách tất cả học sinh và điểm của họ ở môn 'Toán'. Nếu học sinh chưa có điểm môn Toán, họ vẫn xuất hiện trong danh sách nhưng cột điểm sẽ là NULL. Câu lệnh nào sau đây phù hợp?

26 / 30

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

Tags: Bộ đề 08

Câu 26: Sự khác biệt cơ bản giữa `INNER JOIN` và `LEFT JOIN` là gì?

27 / 30

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

Tags: Bộ đề 08

Câu 27: Trong câu lệnh `SELECT A.cot1, B.cot2 FROM BangA AS A JOIN BangB AS B ON A.khoaA = B.khoaB;`, `A.khoaA = B.khoaB` được gọi là gì?

28 / 30

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

Tags: Bộ đề 08

Câu 28: Bạn có bảng `nhanvien` (idNV PK, tenNV) và bảng `duan` (idDA PK, tenDA, idQuanLy FK). `idQuanLy` trong bảng `duan` là khóa ngoại tham chiếu đến `idNV` trong bảng `nhanvien` (người quản lý dự án là một nhân viên). Bạn muốn lấy danh sách tên dự án và tên người quản lý dự án đó. Câu lệnh nào sau đây đúng?

29 / 30

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

Tags: Bộ đề 08

Câu 29: Nếu bạn thực hiện `LEFT JOIN A ON A.khoa = B.khoa` và sau đó thêm `WHERE B.khoa IS NOT NULL`, kết quả sẽ tương đương với loại JOIN nào?

30 / 30

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

Tags: Bộ đề 08

Câu 30: Việc tổ chức dữ liệu thành nhiều bảng nhỏ liên kết với nhau thông qua khóa ngoại, thay vì một bảng lớn chứa tất cả thông tin, giúp ích gì?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 09

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 09 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong cơ sở dữ liệu quan hệ, mục đích chính của việc liên kết các bảng (linking tables) khi truy vấn dữ liệu là gì?

  • A. Để giảm kích thước của cơ sở dữ liệu.
  • B. Để chỉ hiển thị dữ liệu từ bảng chính (primary table).
  • C. Để kết hợp dữ liệu từ nhiều bảng có mối quan hệ với nhau trong một kết quả truy vấn duy nhất.
  • D. Để thay đổi cấu trúc của các bảng gốc.

Câu 2: Giả sử bạn có hai bảng: `KhachHang` (ID_KH, Ten_KH) và `DonHang` (ID_DH, ID_KH, Ngay_DH, TongTien). Cột nào trong bảng `DonHang` thường được sử dụng làm khóa ngoại để liên kết với bảng `KhachHang`?

  • A. ID_DH
  • B. ID_KH
  • C. Ngay_DH
  • D. TongTien

Câu 3: Câu lệnh SQL `SELECT * FROM A INNER JOIN B ON A.ID = B.ID_A;` sẽ trả về những bản ghi nào?

  • A. Chỉ các bản ghi có giá trị tại cột liên kết (A.ID và B.ID_A) trùng khớp ở cả hai bảng A và B.
  • B. Tất cả bản ghi từ bảng A và chỉ các bản ghi từ bảng B có giá trị tại cột liên kết trùng khớp với A.
  • C. Tất cả bản ghi từ bảng B và chỉ các bản ghi từ bảng A có giá trị tại cột liên kết trùng khớp với B.
  • D. Tất cả bản ghi từ cả hai bảng A và B, bao gồm cả những bản ghi không có sự trùng khớp.

Câu 4: Bạn muốn 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. Bạn có hai bảng: `Bannhac` (idBannhac, tenBannhac, idNhacsi) và `Nhacsi` (idNhacsi, tenNhacsi). Câu lệnh SQL nào sau đây thực hiện yêu cầu đó, chỉ hiển thị các bản nhạc có nhạc sĩ tương ứng?

  • A. SELECT tenBannhac, tenNhacsi FROM Bannhac, Nhacsi;
  • B. SELECT Bannhac.tenBannhac, Nhacsi.tenNhacsi FROM Bannhac LEFT JOIN Nhacsi ON Bannhac.idNhacsi = Nhacsi.idNhacsi;
  • C. SELECT Bannhac.tenBannhac, Nhacsi.tenNhacsi FROM Bannhac INNER JOIN Nhacsi ON Bannhac.idNhacsi = Nhacsi.idNhacsi;
  • D. SELECT tenBannhac, tenNhacsi FROM Bannhac WHERE Bannhac.idNhacsi = Nhacsi.idNhacsi;

Câu 5: Cho hai bảng `Sanpham` (ID_SP, Ten_SP, ID_Loai) và `LoaiSP` (ID_Loai, Ten_Loai). Bạn muốn lấy danh sách tất cả sản phẩm kèm theo tên loại sản phẩm của chúng. Nếu có sản phẩm chưa được gán loại (ID_Loai trong `Sanpham` là NULL), bạn vẫn muốn hiển thị sản phẩm đó nhưng tên loại để trống. Loại JOIN nào phù hợp nhất?

  • A. INNER JOIN
  • B. LEFT JOIN (hoặc LEFT OUTER JOIN)
  • C. RIGHT JOIN (hoặc RIGHT OUTER JOIN)
  • D. FULL OUTER JOIN

Câu 6: Xem xét câu lệnh `SELECT T1.CotA, T2.CotB FROM Bang1 AS T1 INNER JOIN Bang2 AS T2 ON T1.ID = T2.ID_T1;`. Việc sử dụng `AS T1` và `AS T2` có tác dụng gì?

  • A. Thay đổi tên thật của bảng trong cơ sở dữ liệu.
  • B. Bắt buộc phải sử dụng khi liên kết các bảng.
  • C. Chỉ định thứ tự ưu tiên khi truy vấn.
  • D. Tạo bí danh (alias) ngắn gọn cho tên bảng, giúp câu lệnh dễ đọc và tránh nhập lại tên bảng dài.

Câu 7: Bạn muốn lấy danh sách các bản thu âm cùng với tên bản nhạc và tên ca sĩ thực hiện. Cần liên kết ba bảng: `Banthuam` (idBanthuam, idBannhac, idCasi), `Bannhac` (idBannhac, tenBannhac), `Casi` (idCasi, tenCasi). Câu lệnh SQL nào dưới đây thực hiện điều này, chỉ lấy các bản thu âm có đủ thông tin liên kết?

  • A. SELECT bth.idBanthuam, bn.tenBannhac, cs.tenCasi FROM Banthuam AS bth INNER JOIN Bannhac AS bn ON bth.idBannhac = bn.idBannhac INNER JOIN Casi AS cs ON bth.idCasi = cs.idCasi;
  • B. SELECT * FROM Banthuam, Bannhac, Casi WHERE Banthuam.idBannhac = Bannhac.idBannhac AND Banthuam.idCasi = Casi.idCasi;
  • C. SELECT bth.idBanthuam, bn.tenBannhac, cs.tenCasi FROM Banthuam AS bth, Bannhac AS bn, Casi AS cs WHERE bth.idBannhac = bn.idBannhac OR bth.idCasi = cs.idCasi;
  • D. SELECT Banthuam.*, Bannhac.tenBannhac, Casi.tenCasi FROM Banthuam LEFT JOIN Bannhac ON Banthuam.idBannhac = Bannhac.idBannhac LEFT JOIN Casi ON Banthuam.idCasi = Casi.idCasi;

Câu 8: Bạn có bảng `SinhVien` (MaSV, TenSV, MaKhoa) và `Khoa` (MaKhoa, TenKhoa). Bạn muốn lấy danh sách tất cả sinh viên, và nếu sinh viên đó thuộc khoa nào thì hiển thị tên khoa, còn nếu không thuộc khoa nào (MaKhoa trong `SinhVien` là NULL) thì vẫn hiển thị tên sinh viên. Loại JOIN nào phù hợp?

  • A. INNER JOIN
  • B. LEFT JOIN
  • C. RIGHT JOIN
  • D. CROSS JOIN

Câu 9: Giả sử bạn có bảng `NhanVien` (ID_NV, Ten_NV, ID_PhongBan) và `PhongBan` (ID_PB, Ten_PB). Bạn muốn liệt kê tên của tất cả nhân viên làm việc ở "Phòng Kỹ thuật". Câu lệnh SQL nào sau đây đúng?

  • A. SELECT Ten_NV FROM NhanVien WHERE ID_PhongBan = (SELECT ID_PB FROM PhongBan WHERE Ten_PB = "Phòng Kỹ thuật");
  • B. SELECT NhanVien.Ten_NV FROM NhanVien INNER JOIN PhongBan ON NhanVien.ID_PhongBan = PhongBan.ID_PB AND PhongBan.Ten_PB = "Phòng Kỹ thuật";
  • C. SELECT NhanVien.Ten_NV FROM NhanVien INNER JOIN PhongBan ON NhanVien.ID_PhongBan = PhongBan.ID_PB WHERE PhongBan.Ten_PB = "Phòng Kỹ thuật";
  • D. Cả A và C đều đúng.

Câu 10: Khi sử dụng `INNER JOIN` giữa hai bảng A và B dựa trên một cột chung, nếu một bản ghi trong bảng A không có bản ghi tương ứng trong bảng B thỏa mãn điều kiện JOIN, thì bản ghi đó sẽ:

  • A. Không xuất hiện trong kết quả truy vấn.
  • B. Xuất hiện trong kết quả truy vấn với các cột từ bảng B có giá trị NULL.
  • C. Gây ra lỗi cú pháp.
  • D. Xuất hiện nhiều lần trong kết quả truy vấn.

Câu 11: Bạn cần tìm tên của tất cả khách hàng đã đặt ít nhất một đơn hàng. Bạn có bảng `KhachHang` (ID_KH, Ten_KH) và `DonHang` (ID_DH, ID_KH). Loại JOIN nào hiệu quả nhất để kết hợp và lọc dữ liệu?

  • A. INNER JOIN
  • B. LEFT JOIN
  • C. RIGHT JOIN
  • D. FULL OUTER JOIN

Câu 12: Câu lệnh SQL nào sau đây dùng để lấy danh sách tất cả các thể loại nhạc, kèm theo tên các bản nhạc thuộc thể loại đó? Nếu có thể loại chưa có bản nhạc nào, vẫn hiển thị tên thể loại đó.

  • A. SELECT tl.Ten_Loai, bn.tenBannhac FROM Theloai AS tl INNER JOIN Bannhac AS bn ON tl.ID_Theloai = bn.idTheloai;
  • B. SELECT tl.Ten_Loai, bn.tenBannhac FROM Theloai AS tl LEFT JOIN Bannhac AS bn ON tl.ID_Theloai = bn.idTheloai;
  • C. SELECT tl.Ten_Loai, bn.tenBannhac FROM Bannhac AS bn RIGHT JOIN Theloai AS tl ON bn.idTheloai = tl.ID_Theloai;
  • D. Cả B và C đều thực hiện được yêu cầu.

Câu 13: Khi truy vấn dữ liệu từ hai bảng `BangA` và `BangB` có cột chung tên là `ID`, và bạn muốn hiển thị cột `ID` từ cả hai bảng, bạn cần sử dụng cú pháp nào để tránh lỗi "ambiguous column name" (tên cột không rõ ràng)?

  • A. SELECT ID, ID FROM BangA JOIN BangB ON ...;
  • B. SELECT * FROM BangA JOIN BangB ON ...;
  • C. SELECT DISTINCT ID FROM BangA JOIN BangB ON ...;
  • D. SELECT BangA.ID, BangB.ID FROM BangA JOIN BangB ON ...;

Câu 14: Bạn muốn lấy danh sách các bản nhạc có tên bắt đầu bằng chữ "A" và được sáng tác bởi nhạc sĩ "Nguyễn Văn A". Bạn có bảng `Bannhac` (idBannhac, tenBannhac, idNhacsi) và `Nhacsi` (idNhacsi, tenNhacsi). Câu lệnh nào đúng?

  • A. SELECT bn.tenBannhac, ns.tenNhacsi FROM Bannhac AS bn JOIN Nhacsi AS ns ON bn.idNhacsi = ns.idNhacsi WHERE bn.tenBannhac LIKE "A%";
  • B. SELECT bn.tenBannhac, ns.tenNhacsi FROM Bannhac AS bn JOIN Nhacsi AS ns ON bn.idNhacsi = ns.idNhacsi WHERE bn.tenBannhac LIKE "A%" AND ns.tenNhacsi = "Nguyễn Văn A";
  • C. SELECT bn.tenBannhac, ns.tenNhacsi FROM Bannhac AS bn, Nhacsi AS ns WHERE bn.idNhacsi = ns.idNhacsi OR (bn.tenBannhac LIKE "A%" AND ns.tenNhacsi = "Nguyễn Văn A");
  • D. SELECT bn.tenBannhac, ns.tenNhacsi FROM Bannhac AS bn INNER JOIN Nhacsi AS ns ON bn.idNhacsi = ns.idNhacsi WHERE ns.tenNhacsi = "Nguyễn Văn A" ORDER BY bn.tenBannhac LIKE "A%";

Câu 15: Kết quả của `LEFT JOIN` giữa bảng A và bảng B (A LEFT JOIN B ON A.ID = B.ID_A) sẽ bao gồm:

  • A. Chỉ các bản ghi có sự trùng khớp ở cả hai bảng.
  • B. Tất cả bản ghi từ bảng B, và các bản ghi trùng khớp từ bảng A.
  • C. Tất cả bản ghi từ cả hai bảng.
  • D. Tất cả bản ghi từ bảng A, và các bản ghi trùng khớp từ bảng B (với giá trị NULL ở cột B nếu không có trùng khớp).

Câu 16: Bạn muốn sắp xếp danh sách bản nhạc theo tên nhạc sĩ (tăng dần) sau khi đã liên kết bảng `Bannhac` và `Nhacsi`. Mệnh đề nào sau đây được sử dụng để sắp xếp?

  • A. ORDER BY
  • B. GROUP BY
  • C. SORT BY
  • D. HAVING

Câu 17: Cho hai bảng `TacGia` (ID_TG, Ten_TG) và `Sach` (ID_Sach, Ten_Sach, ID_TG). Bạn muốn lấy danh sách tất cả tác giả, kể cả những tác giả chưa có cuốn sách nào trong bảng `Sach`. Câu lệnh nào đúng?

  • A. SELECT tg.Ten_TG, s.Ten_Sach FROM TacGia AS tg INNER JOIN Sach AS s ON tg.ID_TG = s.ID_TG;
  • B. SELECT tg.Ten_TG, s.Ten_Sach FROM TacGia AS tg RIGHT JOIN Sach AS s ON tg.ID_TG = s.ID_TG;
  • C. SELECT tg.Ten_TG, s.Ten_Sach FROM TacGia AS tg LEFT JOIN Sach AS s ON tg.ID_TG = s.ID_TG;
  • D. SELECT Ten_TG FROM TacGia WHERE ID_TG NOT IN (SELECT ID_TG FROM Sach);

Câu 18: Bạn thực hiện câu lệnh `SELECT bn.tenBannhac, ns.tenNhacsi FROM Bannhac AS bn INNER JOIN Nhacsi AS ns ON bn.idNhacsi = ns.idNhacsi WHERE ns.tenNhacsi = "Trịnh Công Sơn";`. Kết quả trả về sẽ là gì?

  • A. Tất cả bản nhạc và tên nhạc sĩ, sau đó lọc ra những bản nhạc của Trịnh Công Sơn.
  • B. Chỉ tên của nhạc sĩ Trịnh Công Sơn.
  • C. Tất cả bản nhạc và tên nhạc sĩ Trịnh Công Sơn, bao gồm cả những bản nhạc không có nhạc sĩ.
  • D. Tên các bản nhạc được sáng tác bởi nhạc sĩ "Trịnh Công Sơn".

Câu 19: Bạn có bảng `HocSinh` (MaHS, TenHS, MaLop) và `LopHoc` (MaLop, TenLop). Bạn muốn tìm tên của tất cả học sinh và tên lớp của họ. Nếu có học sinh chưa được gán lớp (MaLop trong `HocSinh` là NULL), bạn vẫn muốn hiển thị học sinh đó. Câu lệnh nào đúng?

  • A. SELECT hs.TenHS, lh.TenLop FROM HocSinh AS hs LEFT JOIN LopHoc AS lh ON hs.MaLop = lh.MaLop;
  • B. SELECT hs.TenHS, lh.TenLop FROM HocSinh AS hs INNER JOIN LopHoc AS lh ON hs.MaLop = lh.MaLop;
  • C. SELECT hs.TenHS, lh.TenLop FROM LopHoc AS lh RIGHT JOIN HocSinh AS hs ON hs.MaLop = lh.MaLop;
  • D. Cả A và C đều đúng.

Câu 20: Trong một câu lệnh `SELECT` có sử dụng JOIN, mệnh đề `WHERE` được dùng để làm gì?

  • A. Chỉ định điều kiện để liên kết các bảng.
  • B. Xác định thứ tự các cột sẽ hiển thị.
  • C. Lọc các bản ghi từ kết quả đã được liên kết.
  • D. Nhóm các bản ghi lại với nhau.

Câu 21: Bạn muốn lấy danh sách tất cả các bản nhạc thuộc thể loại "Nhạc Pop" và được sáng tác bởi nhạc sĩ có tên bắt đầu bằng "L". Bạn cần liên kết `Bannhac` (idBannhac, tenBannhac, idNhacsi, idTheloai), `Nhacsi` (idNhacsi, tenNhacsi), `Theloai` (idTheloai, tenTheloai). Câu lệnh nào đúng?

  • A. SELECT bn.tenBannhac, ns.tenNhacsi, tl.tenTheloai FROM Bannhac AS bn JOIN Nhacsi AS ns ON bn.idNhacsi = ns.idNhacsi JOIN Theloai AS tl ON bn.idTheloai = tl.idTheloai WHERE tl.tenTheloai = "Nhạc Pop" AND ns.tenNhacsi LIKE "L%";
  • B. SELECT bn.tenBannhac, ns.tenNhacsi, tl.tenTheloai FROM Bannhac AS bn, Nhacsi AS ns, Theloai AS tl WHERE tl.tenTheloai = "Nhạc Pop" AND ns.tenNhacsi LIKE "L%";
  • C. SELECT bn.tenBannhac, ns.tenNhacsi, tl.tenTheloai FROM Bannhac AS bn LEFT JOIN Nhacsi AS ns ON bn.idNhacsi = ns.idNhacsi LEFT JOIN Theloai AS tl ON bn.idTheloai = tl.idTheloai WHERE tl.tenTheloai = "Nhạc Pop" AND ns.tenNhacsi LIKE "L%";
  • D. SELECT bn.tenBannhac, ns.tenNhacsi, tl.tenTheloai FROM Bannhac AS bn INNER JOIN Nhacsi AS ns ON bn.idNhacsi = ns.idNhacsi WHERE bn.idTheloai = (SELECT idTheloai FROM Theloai WHERE tenTheloai = "Nhạc Pop") AND ns.tenNhacsi LIKE "L%";

Câu 22: Bạn có bảng `MonHoc` (MaMH, TenMH) và `Diem` (MaHS, MaMH, DiemSo). Bạn muốn tìm tất cả các môn học mà chưa có học sinh nào có điểm (tức là không có bản ghi tương ứng trong bảng `Diem`). Câu lệnh nào đúng?

  • A. SELECT mh.TenMH FROM MonHoc AS mh INNER JOIN Diem AS d ON mh.MaMH = d.MaMH;
  • B. SELECT mh.TenMH FROM MonHoc AS mh LEFT JOIN Diem AS d ON mh.MaMH = d.MaMH WHERE d.MaMH IS NULL;
  • C. SELECT mh.TenMH FROM MonHoc AS mh WHERE MaMH NOT IN (SELECT MaMH FROM Diem);
  • D. Cả B và C đều đúng.

Câu 23: Bạn có bảng `NhaCungCap` (ID_NCC, Ten_NCC) và `SanPham` (ID_SP, Ten_SP, ID_NCC). Bạn muốn liệt kê tất cả các nhà cung cấp và số lượng sản phẩm mà mỗi nhà cung cấp cung cấp. Câu lệnh nào phù hợp nhất (sử dụng GROUP BY và JOIN)?

  • A. SELECT ncc.Ten_NCC, COUNT(sp.ID_SP) FROM NhaCungCap AS ncc LEFT JOIN SanPham AS sp ON ncc.ID_NCC = sp.ID_NCC GROUP BY ncc.Ten_NCC;
  • B. SELECT ncc.Ten_NCC, COUNT(sp.ID_SP) FROM NhaCungCap AS ncc INNER JOIN SanPham AS sp ON ncc.ID_NCC = sp.ID_NCC GROUP BY ncc.Ten_NCC;
  • C. SELECT ncc.Ten_NCC, COUNT(sp.ID_SP) FROM NhaCungCap AS ncc LEFT JOIN SanPham AS sp ON ncc.ID_NCC = sp.ID_NCC GROUP BY ncc.ID_NCC, ncc.Ten_NCC;
  • D. SELECT ncc.Ten_NCC, COUNT(*) FROM NhaCungCap AS ncc, SanPham AS sp WHERE ncc.ID_NCC = sp.ID_NCC GROUP BY ncc.Ten_NCC;

Câu 24: Giả sử bạn thực hiện `RIGHT JOIN` giữa bảng A và bảng B (A RIGHT JOIN B ON A.ID = B.ID_A). Kết quả sẽ bao gồm:

  • A. Tất cả bản ghi từ bảng B, và các bản ghi trùng khớp từ bảng A (với giá trị NULL ở cột A nếu không có trùng khớp).
  • B. Tất cả bản ghi từ bảng A, và các bản ghi trùng khớp từ bảng B.
  • C. Chỉ các bản ghi có sự trùng khớp ở cả hai bảng.
  • D. Tất cả bản ghi từ cả hai bảng.

Câu 25: Bạn muốn tìm tên của những khách hàng chưa từng đặt đơn hàng nào. Bạn có bảng `KhachHang` (ID_KH, Ten_KH) và `DonHang` (ID_DH, ID_KH). Câu lệnh nào đúng?

  • A. SELECT kh.Ten_KH FROM KhachHang AS kh INNER JOIN DonHang AS dh ON kh.ID_KH = dh.ID_KH;
  • B. SELECT kh.Ten_KH FROM KhachHang AS kh RIGHT JOIN DonHang AS dh ON kh.ID_KH = dh.ID_KH WHERE kh.ID_KH IS NULL;
  • C. SELECT kh.Ten_KH FROM KhachHang AS kh WHERE ID_KH IN (SELECT ID_KH FROM DonHang);
  • D. SELECT kh.Ten_KH FROM KhachHang AS kh LEFT JOIN DonHang AS dh ON kh.ID_KH = dh.ID_KH WHERE dh.ID_KH IS NULL;

Câu 26: Khi nào thì việc sử dụng bí danh (alias) cho tên cột trong câu lệnh SELECT (ví dụ: `SELECT Ten_KH AS "Tên Khách Hàng" ...`) là hữu ích?

  • A. Để đặt tên cột hiển thị trong kết quả truy vấn một cách dễ đọc, đặc biệt khi tên cột gốc dài, khó hiểu hoặc trùng lặp từ các bảng khác nhau.
  • B. Để bắt buộc cơ sở dữ liệu sắp xếp kết quả theo cột đó.
  • C. Để lọc các bản ghi dựa trên một điều kiện.
  • D. Để chỉ định mối quan hệ giữa các bảng.

Câu 27: Bạn muốn lấy danh sách tên bản nhạc và tên ca sĩ đã thu âm bản nhạc đó, nhưng chỉ những bản thu âm được thực hiện sau ngày "2022-01-01". Bạn có bảng `Banthuam` (idBanthuam, idBannhac, idCasi, NgayThu), `Bannhac` (idBannhac, tenBannhac), `Casi` (idCasi, tenCasi). Câu lệnh nào đúng?

  • A. SELECT bn.tenBannhac, cs.tenCasi FROM Banthuam AS bth JOIN Bannhac AS bn ON bth.idBannhac = bn.idBannhac JOIN Casi AS cs ON bth.idCasi = cs.idCasi WHERE NgayThu > "2022-01-01";
  • B. SELECT bn.tenBannhac, cs.tenCasi FROM Banthuam AS bth JOIN Bannhac AS bn ON bth.idBannhac = bn.idBannhac JOIN Casi AS cs ON bth.idCasi = cs.idCasi AND bth.NgayThu > "2022-01-01";
  • C. SELECT bn.tenBannhac, cs.tenCasi FROM Banthuam AS bth INNER JOIN Bannhac AS bn ON bth.idBannhac = bn.idBannhac INNER JOIN Casi AS cs ON bth.idCasi = cs.idCasi WHERE bth.NgayThu > "2022-01-01";
  • D. SELECT bn.tenBannhac, cs.tenCasi FROM Banthuam AS bth, Bannhac AS bn, Casi AS cs WHERE bth.idBannhac = bn.idBannhac AND bth.idCasi = cs.idCasi AND NgayThu > "2022-01-01";

Câu 28: Sự khác biệt cơ bản về kết quả trả về giữa `INNER JOIN` và `LEFT JOIN` (khi liên kết bảng A và B, A LEFT JOIN B) là gì?

  • A. `INNER JOIN` trả về tất cả bản ghi từ cả hai bảng, còn `LEFT JOIN` chỉ trả về các bản ghi trùng khớp.
  • B. `INNER JOIN` chỉ trả về các bản ghi có sự trùng khớp ở cả hai bảng, còn `LEFT JOIN` trả về tất cả bản ghi từ bảng bên trái (A) và các bản ghi trùng khớp từ bảng bên phải (B).
  • C. `INNER JOIN` nhanh hơn `LEFT JOIN`.
  • D. `LEFT JOIN` yêu cầu điều kiện `ON`, còn `INNER JOIN` thì không.

Câu 29: Bạn muốn lấy danh sách tất cả các khách hàng và tổng giá trị các đơn hàng mà mỗi khách hàng đã đặt. Bạn có bảng `KhachHang` (ID_KH, Ten_KH) và `DonHang` (ID_DH, ID_KH, TongTien). Nếu khách hàng chưa đặt đơn hàng nào, tổng giá trị sẽ là 0. Câu lệnh nào đúng?

  • A. SELECT kh.Ten_KH, COALESCE(SUM(dh.TongTien), 0) FROM KhachHang AS kh LEFT JOIN DonHang AS dh ON kh.ID_KH = dh.ID_KH GROUP BY kh.ID_KH, kh.Ten_KH;
  • B. SELECT kh.Ten_KH, SUM(dh.TongTien) FROM KhachHang AS kh INNER JOIN DonHang AS dh ON kh.ID_KH = dh.ID_KH GROUP BY kh.Ten_KH;
  • C. SELECT kh.Ten_KH, SUM(dh.TongTien) FROM KhachHang AS kh LEFT JOIN DonHang AS dh ON kh.ID_KH = dh.ID_KH GROUP BY kh.Ten_KH;
  • D. SELECT kh.Ten_KH, IFNULL(SUM(dh.TongTien), 0) FROM KhachHang AS kh INNER JOIN DonHang AS dh ON kh.ID_KH = dh.ID_KH GROUP BY kh.Ten_KH;

Câu 30: Trong câu lệnh `SELECT ... FROM BangA JOIN BangB ON BangA.CotX = BangB.CotY;`, nếu không có bí danh, việc sử dụng `BangA.CotX` và `BangB.CotY` là cần thiết khi:

  • A. Tên cột (`CotX` và `CotY`) giống nhau ở cả hai bảng hoặc bạn muốn chỉ định rõ cột từ bảng nào.
  • B. Tên cột (`CotX` và `CotY`) khác nhau ở cả hai bảng.
  • C. Bạn chỉ muốn hiển thị cột đó từ một trong hai bảng.
  • D. Luôn luôn không cần thiết nếu tên cột khác nhau.

1 / 30

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

Tags: Bộ đề 09

Câu 1: Trong cơ sở dữ liệu quan hệ, mục đích chính của việc liên kết các bảng (linking tables) khi truy vấn dữ liệu là gì?

2 / 30

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

Tags: Bộ đề 09

Câu 2: Giả sử bạn có hai bảng: `KhachHang` (ID_KH, Ten_KH) và `DonHang` (ID_DH, ID_KH, Ngay_DH, TongTien). Cột nào trong bảng `DonHang` thường được sử dụng làm khóa ngoại để liên kết với bảng `KhachHang`?

3 / 30

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

Tags: Bộ đề 09

Câu 3: Câu lệnh SQL `SELECT * FROM A INNER JOIN B ON A.ID = B.ID_A;` sẽ trả về những bản ghi nào?

4 / 30

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

Tags: Bộ đề 09

Câu 4: Bạn muốn 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. Bạn có hai bảng: `Bannhac` (idBannhac, tenBannhac, idNhacsi) và `Nhacsi` (idNhacsi, tenNhacsi). Câu lệnh SQL nào sau đây thực hiện yêu cầu đó, chỉ hiển thị các bản nhạc có nhạc sĩ tương ứng?

5 / 30

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

Tags: Bộ đề 09

Câu 5: Cho hai bảng `Sanpham` (ID_SP, Ten_SP, ID_Loai) và `LoaiSP` (ID_Loai, Ten_Loai). Bạn muốn lấy danh sách tất cả sản phẩm kèm theo tên loại sản phẩm của chúng. Nếu có sản phẩm chưa được gán loại (ID_Loai trong `Sanpham` là NULL), bạn vẫn muốn hiển thị sản phẩm đó nhưng tên loại để trống. Loại JOIN nào phù hợp nhất?

6 / 30

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

Tags: Bộ đề 09

Câu 6: Xem xét câu lệnh `SELECT T1.CotA, T2.CotB FROM Bang1 AS T1 INNER JOIN Bang2 AS T2 ON T1.ID = T2.ID_T1;`. Việc sử dụng `AS T1` và `AS T2` có tác dụng gì?

7 / 30

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

Tags: Bộ đề 09

Câu 7: Bạn muốn lấy danh sách các bản thu âm cùng với tên bản nhạc và tên ca sĩ thực hiện. Cần liên kết ba bảng: `Banthuam` (idBanthuam, idBannhac, idCasi), `Bannhac` (idBannhac, tenBannhac), `Casi` (idCasi, tenCasi). Câu lệnh SQL nào dưới đây thực hiện điều này, chỉ lấy các bản thu âm có đủ thông tin liên kết?

8 / 30

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

Tags: Bộ đề 09

Câu 8: Bạn có bảng `SinhVien` (MaSV, TenSV, MaKhoa) và `Khoa` (MaKhoa, TenKhoa). Bạn muốn lấy danh sách tất cả sinh viên, và nếu sinh viên đó thuộc khoa nào thì hiển thị tên khoa, còn nếu không thuộc khoa nào (MaKhoa trong `SinhVien` là NULL) thì vẫn hiển thị tên sinh viên. Loại JOIN nào phù hợp?

9 / 30

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

Tags: Bộ đề 09

Câu 9: Giả sử bạn có bảng `NhanVien` (ID_NV, Ten_NV, ID_PhongBan) và `PhongBan` (ID_PB, Ten_PB). Bạn muốn liệt kê tên của tất cả nhân viên làm việc ở 'Phòng Kỹ thuật'. Câu lệnh SQL nào sau đây đúng?

10 / 30

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

Tags: Bộ đề 09

Câu 10: Khi sử dụng `INNER JOIN` giữa hai bảng A và B dựa trên một cột chung, nếu một bản ghi trong bảng A không có bản ghi tương ứng trong bảng B thỏa mãn điều kiện JOIN, thì bản ghi đó sẽ:

11 / 30

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

Tags: Bộ đề 09

Câu 11: Bạn cần tìm tên của tất cả khách hàng đã đặt ít nhất một đơn hàng. Bạn có bảng `KhachHang` (ID_KH, Ten_KH) và `DonHang` (ID_DH, ID_KH). Loại JOIN nào hiệu quả nhất để kết hợp và lọc dữ liệu?

12 / 30

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

Tags: Bộ đề 09

Câu 12: Câu lệnh SQL nào sau đây dùng để lấy danh sách tất cả các thể loại nhạc, kèm theo tên các bản nhạc thuộc thể loại đó? Nếu có thể loại chưa có bản nhạc nào, vẫn hiển thị tên thể loại đó.

13 / 30

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

Tags: Bộ đề 09

Câu 13: Khi truy vấn dữ liệu từ hai bảng `BangA` và `BangB` có cột chung tên là `ID`, và bạn muốn hiển thị cột `ID` từ cả hai bảng, bạn cần sử dụng cú pháp nào để tránh lỗi 'ambiguous column name' (tên cột không rõ ràng)?

14 / 30

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

Tags: Bộ đề 09

Câu 14: Bạn muốn lấy danh sách các bản nhạc có tên bắt đầu bằng chữ 'A' và được sáng tác bởi nhạc sĩ 'Nguyễn Văn A'. Bạn có bảng `Bannhac` (idBannhac, tenBannhac, idNhacsi) và `Nhacsi` (idNhacsi, tenNhacsi). Câu lệnh nào đúng?

15 / 30

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

Tags: Bộ đề 09

Câu 15: Kết quả của `LEFT JOIN` giữa bảng A và bảng B (A LEFT JOIN B ON A.ID = B.ID_A) sẽ bao gồm:

16 / 30

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

Tags: Bộ đề 09

Câu 16: Bạn muốn sắp xếp danh sách bản nhạc theo tên nhạc sĩ (tăng dần) sau khi đã liên kết bảng `Bannhac` và `Nhacsi`. Mệnh đề nào sau đây được sử dụng để sắp xếp?

17 / 30

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

Tags: Bộ đề 09

Câu 17: Cho hai bảng `TacGia` (ID_TG, Ten_TG) và `Sach` (ID_Sach, Ten_Sach, ID_TG). Bạn muốn lấy danh sách tất cả tác giả, kể cả những tác giả chưa có cuốn sách nào trong bảng `Sach`. Câu lệnh nào đúng?

18 / 30

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

Tags: Bộ đề 09

Câu 18: Bạn thực hiện câu lệnh `SELECT bn.tenBannhac, ns.tenNhacsi FROM Bannhac AS bn INNER JOIN Nhacsi AS ns ON bn.idNhacsi = ns.idNhacsi WHERE ns.tenNhacsi = 'Trịnh Công Sơn';`. Kết quả trả về sẽ là gì?

19 / 30

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

Tags: Bộ đề 09

Câu 19: Bạn có bảng `HocSinh` (MaHS, TenHS, MaLop) và `LopHoc` (MaLop, TenLop). Bạn muốn tìm tên của tất cả học sinh và tên lớp của họ. Nếu có học sinh chưa được gán lớp (MaLop trong `HocSinh` là NULL), bạn vẫn muốn hiển thị học sinh đó. Câu lệnh nào đúng?

20 / 30

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

Tags: Bộ đề 09

Câu 20: Trong một câu lệnh `SELECT` có sử dụng JOIN, mệnh đề `WHERE` được dùng để làm gì?

21 / 30

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

Tags: Bộ đề 09

Câu 21: Bạn muốn lấy danh sách tất cả các bản nhạc thuộc thể loại 'Nhạc Pop' và được sáng tác bởi nhạc sĩ có tên bắt đầu bằng 'L'. Bạn cần liên kết `Bannhac` (idBannhac, tenBannhac, idNhacsi, idTheloai), `Nhacsi` (idNhacsi, tenNhacsi), `Theloai` (idTheloai, tenTheloai). Câu lệnh nào đúng?

22 / 30

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

Tags: Bộ đề 09

Câu 22: Bạn có bảng `MonHoc` (MaMH, TenMH) và `Diem` (MaHS, MaMH, DiemSo). Bạn muốn tìm tất cả các môn học mà chưa có học sinh nào có điểm (tức là không có bản ghi tương ứng trong bảng `Diem`). Câu lệnh nào đúng?

23 / 30

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

Tags: Bộ đề 09

Câu 23: Bạn có bảng `NhaCungCap` (ID_NCC, Ten_NCC) và `SanPham` (ID_SP, Ten_SP, ID_NCC). Bạn muốn liệt kê tất cả các nhà cung cấp và số lượng sản phẩm mà mỗi nhà cung cấp cung cấp. Câu lệnh nào phù hợp nhất (sử dụng GROUP BY và JOIN)?

24 / 30

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

Tags: Bộ đề 09

Câu 24: Giả sử bạn thực hiện `RIGHT JOIN` giữa bảng A và bảng B (A RIGHT JOIN B ON A.ID = B.ID_A). Kết quả sẽ bao gồm:

25 / 30

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

Tags: Bộ đề 09

Câu 25: Bạn muốn tìm tên của những khách hàng chưa từng đặt đơn hàng nào. Bạn có bảng `KhachHang` (ID_KH, Ten_KH) và `DonHang` (ID_DH, ID_KH). Câu lệnh nào đúng?

26 / 30

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

Tags: Bộ đề 09

Câu 26: Khi nào thì việc sử dụng bí danh (alias) cho tên cột trong câu lệnh SELECT (ví dụ: `SELECT Ten_KH AS 'Tên Khách Hàng' ...`) là hữu ích?

27 / 30

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

Tags: Bộ đề 09

Câu 27: Bạn muốn lấy danh sách tên bản nhạc và tên ca sĩ đã thu âm bản nhạc đó, nhưng chỉ những bản thu âm được thực hiện sau ngày '2022-01-01'. Bạn có bảng `Banthuam` (idBanthuam, idBannhac, idCasi, NgayThu), `Bannhac` (idBannhac, tenBannhac), `Casi` (idCasi, tenCasi). Câu lệnh nào đúng?

28 / 30

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

Tags: Bộ đề 09

Câu 28: Sự khác biệt cơ bản về kết quả trả về giữa `INNER JOIN` và `LEFT JOIN` (khi liên kết bảng A và B, A LEFT JOIN B) là gì?

29 / 30

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

Tags: Bộ đề 09

Câu 29: Bạn muốn lấy danh sách tất cả các khách hàng và tổng giá trị các đơn hàng mà mỗi khách hàng đã đặt. Bạn có bảng `KhachHang` (ID_KH, Ten_KH) và `DonHang` (ID_DH, ID_KH, TongTien). Nếu khách hàng chưa đặt đơn hàng nào, tổng giá trị sẽ là 0. Câu lệnh nào đúng?

30 / 30

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

Tags: Bộ đề 09

Câu 30: Trong câu lệnh `SELECT ... FROM BangA JOIN BangB ON BangA.CotX = BangB.CotY;`, nếu không có bí danh, việc sử dụng `BangA.CotX` và `BangB.CotY` là cần thiết khi:

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


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

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 10

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng - Đề 10 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Giả sử bạn có hai bảng trong cơ sở dữ liệu quản lý âm nhạc: `NhacSi` (IDNhacSi, TenNhacSi) và `BanNhac` (IDBanNhac, TenBanNhac, IDNhacSi, IDTheLoai). Cột `IDNhacSi` trong bảng `BanNhac` là khóa ngoại liên kết đến `IDNhacSi` trong bảng `NhacSi`. Câu lệnh SQL nào sau đây sẽ lấy danh sách tên bản nhạc và tên nhạc sĩ tương ứng cho tất cả các bản nhạc đã được gán nhạc sĩ?

  • A. SELECT TenBanNhac, TenNhacSi FROM BanNhac, NhacSi WHERE BanNhac.IDNhacSi = NhacSi.IDNhacSi;
  • B. SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B INNER JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi;
  • C. SELECT BanNhac.TenBanNhac, NhacSi.TenNhacSi FROM BanNhac LEFT JOIN NhacSi ON BanNhac.IDNhacSi = NhacSi.IDNhacSi;
  • D. SELECT BanNhac.TenBanNhac, NhacSi.TenNhacSi FROM BanNhac WHERE NhacSi.IDNhacSi = BanNhac.IDNhacSi;

Câu 2: Vẫn sử dụng hai bảng `NhacSi` và `BanNhac` như ở Câu 1. Bạn muốn tìm tên các bản nhạc được sáng tác bởi nhạc sĩ có `IDNhacSi` là 5. Câu lệnh SQL nào thực hiện được yêu cầu này?

  • A. SELECT TenBanNhac FROM BanNhac WHERE IDNhacSi = 5;
  • B. SELECT B.TenBanNhac FROM BanNhac AS B JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi WHERE N.IDNhacSi = 5;
  • C. SELECT TenBanNhac FROM BanNhac WHERE IDNhacSi IN (SELECT IDNhacSi FROM NhacSi WHERE IDNhacSi = 5);
  • D. Tất cả các câu lệnh trên đều đúng.

Câu 3: Bạn muốn lấy danh sách tất cả nhạc sĩ cùng với tên bản nhạc mà họ sáng tác. Tuy nhiên, bạn cũng muốn hiển thị cả những nhạc sĩ chưa sáng tác bản nhạc nào. Loại JOIN nào là phù hợp nhất trong trường hợp này?

  • A. INNER JOIN
  • B. RIGHT JOIN
  • C. LEFT JOIN
  • D. FULL OUTER JOIN

Câu 4: Viết câu lệnh SQL để thực hiện yêu cầu ở Câu 3 (lấy danh sách tất cả nhạc sĩ và tên bản nhạc của họ, kể cả nhạc sĩ chưa có bản nhạc). Sử dụng bảng `NhacSi` và `BanNhac` như mô tả.

  • A. SELECT N.TenNhacSi, B.TenBanNhac FROM NhacSi AS N LEFT JOIN BanNhac AS B ON N.IDNhacSi = B.IDNhacSi;
  • B. SELECT N.TenNhacSi, B.TenBanNhac FROM NhacSi AS N INNER JOIN BanNhac AS B ON N.IDNhacSi = B.IDNhacSi;
  • C. SELECT N.TenNhacSi, B.TenBanNhac FROM BanNhac AS B LEFT JOIN NhacSi AS N ON N.IDNhacSi = B.IDNhacSi;
  • D. SELECT N.TenNhacSi, B.TenBanNhac FROM NhacSi AS N RIGHT JOIN BanNhac AS B ON N.IDNhacSi = B.IDNhacSi;

Câu 5: Giả sử có thêm bảng `TheLoai` (IDTheLoai, TenTheLoai) và bảng `BanNhac` có khóa ngoại `IDTheLoai` liên kết đến `TheLoai`. Câu lệnh SQL nào sau đây sẽ liệt kê tên bản nhạc và tên thể loại của chúng, chỉ bao gồm các bản nhạc đã được gán thể loại?

  • A. SELECT B.TenBanNhac, T.TenTheLoai FROM BanNhac AS B, TheLoai AS T WHERE B.IDTheLoai = T.IDTheLoai;
  • B. SELECT B.TenBanNhac, T.TenTheLoai FROM BanNhac AS B RIGHT JOIN TheLoai AS T ON B.IDTheLoai = T.IDTheLoai;
  • C. SELECT B.TenBanNhac, T.TenTheLoai FROM BanNhac AS B INNER JOIN TheLoai AS T ON B.IDTheLoai = T.IDTheLoai;
  • D. SELECT B.TenBanNhac, T.TenTheLoai FROM BanNhac AS B WHERE B.IDTheLoai IS NOT NULL;

Câu 6: Bạn muốn tìm tất cả các bản nhạc thuộc thể loại "Nhạc Trữ Tình" và tên nhạc sĩ sáng tác chúng. Sử dụng các bảng `BanNhac`, `NhacSi`, `TheLoai` và các mối quan hệ khóa ngoại tương ứng. Câu lệnh nào sau đây là đúng?

  • A. SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi JOIN TheLoai AS T ON B.IDTheLoai = T.IDTheLoai WHERE T.TenTheLoai = "Nhạc Trữ Tình";
  • B. SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B, NhacSi AS N, TheLoai AS T WHERE B.IDNhacSi = N.IDNhacSi AND B.IDTheLoai = T.IDTheLoai AND B.TenTheLoai = "Nhạc Trữ Tình";
  • C. SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B INNER JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi WHERE B.IDTheLoai = (SELECT IDTheLoai FROM TheLoai WHERE TenTheLoai = "Nhạc Trữ Tình");
  • D. SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B WHERE B.IDTheLoai = (SELECT IDTheLoai FROM TheLoai WHERE TenTheLoai = "Nhạc Trữ Tình") AND B.IDNhacSi IS NOT NULL;

Câu 7: Bạn có bảng `Casi` (IDCasi, TenCasi) và bảng `Banthuam` (IDBanthuam, IDBanNhac, IDCasi). `IDBanNhac` và `IDCasi` là khóa ngoại. Bạn muốn lấy danh sách các bản thu âm (thông tin từ bảng `Banthuam`) mà chưa được gán ca sĩ nào. Câu lệnh nào sau đây là đúng?

  • A. SELECT * FROM Banthuam WHERE IDCasi = NULL;
  • B. SELECT * FROM Banthuam WHERE IDCasi IS NULL;
  • C. SELECT B.* FROM Banthuam AS B LEFT JOIN Casi AS C ON B.IDCasi = C.IDCasi WHERE C.IDCasi IS NULL;
  • D. Cả B và C đều đúng.

Câu 8: Giả sử bạn cần một danh sách đầy đủ thông tin về các bản thu âm, bao gồm tên bản nhạc, tên nhạc sĩ, và tên ca sĩ đã thể hiện bản thu âm đó. Bạn cần liên kết 4 bảng: `Banthuam`, `BanNhac`, `NhacSi`, `Casi`. Thứ tự và loại JOIN nào là hợp lý để đảm bảo chỉ lấy các bản thu âm có đủ thông tin liên kết?

  • A. Banthuam INNER JOIN BanNhac, sau đó kết quả INNER JOIN NhacSi, và cuối cùng INNER JOIN Casi.
  • B. Banthuam LEFT JOIN BanNhac, sau đó kết quả LEFT JOIN NhacSi, và cuối cùng LEFT JOIN Casi.
  • C. Banthuam INNER JOIN BanNhac, sau đó kết quả LEFT JOIN NhacSi, và cuối cùng LEFT JOIN Casi.
  • D. Bạn không thể liên kết 4 bảng cùng lúc.

Câu 9: Viết câu lệnh SQL để thực hiện yêu cầu ở Câu 8 (liệt kê bản thu âm với tên bản nhạc, nhạc sĩ, ca sĩ), chỉ lấy các bản thu âm có đầy đủ thông tin liên kết. Sử dụng bí danh (alias) cho các bảng.

  • A. SELECT BT.*, BN.TenBanNhac, NS.TenNhacSi, CS.TenCasi FROM Banthuam AS BT, BanNhac AS BN, NhacSi AS NS, Casi AS CS WHERE BT.IDBanNhac = BN.IDBanNhac AND BN.IDNhacSi = NS.IDNhacSi AND BT.IDCasi = CS.IDCasi;
  • B. SELECT BT.IDBanthuam, BN.TenBanNhac, NS.TenNhacSi, CS.TenCasi FROM Banthuam AS BT LEFT JOIN BanNhac AS BN ON BT.IDBanNhac = BN.IDBanNhac LEFT JOIN NhacSi AS NS ON BN.IDNhacSi = NS.IDNhacSi LEFT JOIN Casi AS CS ON BT.IDCasi = CS.IDCasi;
  • C. SELECT BT.IDBanthuam, BN.TenBanNhac, NS.TenNhacSi, CS.TenCasi FROM Banthuam AS BT INNER JOIN BanNhac AS BN ON BT.IDBanNhac = BN.IDBanNhac INNER JOIN NhacSi AS NS ON BN.IDNhacSi = NS.IDNhacSi INNER JOIN Casi AS CS ON BT.IDCasi = CS.IDCasi;
  • D. SELECT BT.IDBanthuam, BN.TenBanNhac, NS.TenNhacSi, CS.TenCasi FROM Banthuam AS BT JOIN BanNhac AS BN ON BT.IDBanNhac = BN.IDBanNhac JOIN NhacSi AS NS ON BN.IDNhacSi = NS.IDNhacSi JOIN Casi AS CS ON BT.IDCasi = CS.IDCasi WHERE BT.IDBanNhac IS NOT NULL AND BN.IDNhacSi IS NOT NULL AND BT.IDCasi IS NOT NULL;

Câu 10: Bạn muốn liệt kê tên tất cả các thể loại nhạc và số lượng bản nhạc thuộc mỗi thể loại đó. Bạn cần liên kết bảng `TheLoai` và `BanNhac`. Câu lệnh nào sau đây là đúng? (Gợi ý: Sử dụng hàm COUNT và GROUP BY)

  • A. SELECT T.TenTheLoai, COUNT(B.IDBanNhac) FROM TheLoai AS T INNER JOIN BanNhac AS B ON T.IDTheLoai = B.IDTheLoai;
  • B. SELECT T.TenTheLoai, COUNT(B.IDBanNhac) FROM TheLoai AS T LEFT JOIN BanNhac AS B ON T.IDTheLoai = B.IDTheLoai GROUP BY T.TenTheLoai;
  • C. SELECT T.TenTheLoai, COUNT(*) FROM TheLoai AS T, BanNhac AS B WHERE T.IDTheLoai = B.IDTheLoai GROUP BY T.TenTheLoai;
  • D. SELECT T.TenTheLoai, COUNT(B.IDBanNhac) FROM TheLoai AS T GROUP BY T.TenTheLoai;

Câu 11: Khi sử dụng INNER JOIN để kết nối hai bảng A và B dựa trên một điều kiện, tập kết quả sẽ chứa:

  • A. Chỉ các hàng từ A và B mà giá trị cột được chỉ định trong điều kiện JOIN khớp nhau.
  • B. Tất cả các hàng từ A và các hàng từ B có giá trị cột được chỉ định khớp với A.
  • C. Tất cả các hàng từ B và các hàng từ A có giá trị cột được chỉ định khớp với B.
  • D. Tất cả các hàng từ cả hai bảng A và B.

Câu 12: Bạn muốn tìm tên các nhạc sĩ chưa sáng tác bất kỳ bản nhạc nào. Sử dụng bảng `NhacSi` và `BanNhac`. Câu lệnh nào sau đây là đúng?

  • A. SELECT TenNhacSi FROM NhacSi WHERE IDNhacSi NOT IN (SELECT IDNhacSi FROM BanNhac);
  • B. SELECT N.TenNhacSi FROM NhacSi AS N INNER JOIN BanNhac AS B ON N.IDNhacSi = B.IDNhacSi WHERE B.IDBanNhac IS NULL;
  • C. SELECT N.TenNhacSi FROM NhacSi AS N LEFT JOIN BanNhac AS B ON N.IDNhacSi = B.IDNhacSi WHERE B.IDBanNhac IS NULL;
  • D. SELECT TenNhacSi FROM NhacSi WHERE IDNhacSi IS NULL;

Câu 13: Cho câu lệnh SQL: `SELECT T1.ColA, T2.ColB FROM Table1 AS T1 LEFT JOIN Table2 AS T2 ON T1.ID = T2.ID;`. Nếu có một hàng trong `Table1` mà không có hàng nào tương ứng trong `Table2` theo điều kiện `ON`, thì kết quả trả về sẽ như thế nào đối với hàng đó?

  • A. Hàng đó từ `Table1` sẽ được hiển thị, và các cột từ `Table2` (ví dụ: `T2.ColB`) sẽ có giá trị NULL.
  • B. Hàng đó từ `Table1` sẽ không được hiển thị trong kết quả.
  • C. Sẽ xảy ra lỗi vì không tìm thấy dữ liệu khớp.
  • D. Hàng đó từ `Table1` sẽ được hiển thị, và các cột từ `Table2` sẽ hiển thị giá trị mặc định của kiểu dữ liệu.

Câu 14: Bạn muốn lấy danh sách tên bản nhạc và tên nhạc sĩ, sắp xếp theo tên nhạc sĩ từ A-Z. Sử dụng `BanNhac` và `NhacSi`. Câu lệnh nào sau đây là đúng?

  • A. SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi ORDER BY TenNhacSi DESC;
  • B. SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi ORDER BY N.TenNhacSi ASC;
  • C. SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B, NhacSi AS N WHERE B.IDNhacSi = N.IDNhacSi SORT BY N.TenNhacSi;
  • D. SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi GROUP BY N.TenNhacSi;

Câu 15: Bạn muốn tìm tên những bản nhạc có độ dài (DoDai) lớn hơn 300 giây và tên nhạc sĩ sáng tác chúng. Sử dụng `BanNhac` và `NhacSi`. Câu lệnh nào sau đây là đúng?

  • A. SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi WHERE B.DoDai > 300;
  • B. SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B WHERE B.DoDai > 300 JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi;
  • C. SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B, NhacSi AS N WHERE B.IDNhacSi = N.IDNhacSi AND DoDai > 300;
  • D. SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi AND B.DoDai > 300;

Câu 16: Giả sử bạn có bảng `KhachHang` (IDKhachHang, TenKhachHang) và bảng `DonHang` (IDDonHang, IDKhachHang, NgayDat). `IDKhachHang` trong `DonHang` là khóa ngoại. Bạn muốn liệt kê tên tất cả khách hàng và ID đơn hàng của họ. Kể cả những khách hàng chưa đặt đơn hàng nào. Câu lệnh nào là đúng?

  • A. SELECT KH.TenKhachHang, DH.IDDonHang FROM KhachHang AS KH INNER JOIN DonHang AS DH ON KH.IDKhachHang = DH.IDKhachHang;
  • B. SELECT KH.TenKhachHang, DH.IDDonHang FROM DonHang AS DH LEFT JOIN KhachHang AS KH ON KH.IDKhachHang = DH.IDKhachHang;
  • C. SELECT KH.TenKhachHang, DH.IDDonHang FROM KhachHang AS KH LEFT JOIN DonHang AS DH ON KH.IDKhachHang = DH.IDKhachHang;
  • D. SELECT KH.TenKhachHang, DH.IDDonHang FROM KhachHang AS KH, DonHang AS DH WHERE KH.IDKhachHang = DH.IDKhachHang;

Câu 17: Trong câu lệnh `SELECT ... FROM TableA JOIN TableB ON TableA.Key = TableB.ForeignKey;`, mệnh đề `ON` dùng để làm gì?

  • A. Chỉ định các cột sẽ được hiển thị trong kết quả.
  • B. Xác định điều kiện để kết hợp các hàng từ hai bảng.
  • C. Lọc các hàng từ kết quả JOIN dựa trên tiêu chí nào đó.
  • D. Sắp xếp các hàng trong kết quả JOIN.

Câu 18: Bạn có các bảng: `SinhVien` (IDSV, TenSV), `KhoaHoc` (IDKhoaHoc, TenKhoaHoc), `DangKy` (IDDangKy, IDSV, IDKhoaHoc, Diem). `IDSV` và `IDKhoaHoc` trong `DangKy` là khóa ngoại. Bạn muốn liệt kê tên sinh viên và tên các khóa học mà họ đã đăng ký và có điểm trên 8.0. Bạn cần liên kết những bảng nào?

  • A. Chỉ bảng `DangKy`.
  • B. Bảng `SinhVien` và `DangKy`.
  • C. Bảng `KhoaHoc` và `DangKy`.
  • D. Cả ba bảng `SinhVien`, `KhoaHoc`, và `DangKy`.

Câu 19: Tiếp theo Câu 18, viết câu lệnh SQL để liệt kê tên sinh viên và tên các khóa học mà họ đã đăng ký và có điểm trên 8.0.

  • A. SELECT SV.TenSV, KH.TenKhoaHoc FROM SinhVien AS SV JOIN DangKy AS DK ON SV.IDSV = DK.IDSV JOIN KhoaHoc AS KH ON DK.IDKhoaHoc = KH.IDKhoaHoc WHERE DK.Diem > 8.0;
  • B. SELECT SV.TenSV, KH.TenKhoaHoc FROM SinhVien AS SV, DangKy AS DK, KhoaHoc AS KH WHERE SV.IDSV = DK.IDSV AND DK.IDKhoaHoc = KH.IDKhoaHoc AND Diem > 8.0;
  • C. SELECT SV.TenSV, KH.TenKhoaHoc FROM SinhVien AS SV LEFT JOIN DangKy AS DK ON SV.IDSV = DK.IDSV LEFT JOIN KhoaHoc AS KH ON DK.IDKhoaHoc = KH.IDKhoaHoc WHERE DK.Diem > 8.0;
  • D. SELECT SV.TenSV, KH.TenKhoaHoc FROM SinhVien AS SV, KhoaHoc AS KH WHERE (SELECT Diem FROM DangKy WHERE IDSV = SV.IDSV AND IDKhoaHoc = KH.IDKhoaHoc) > 8.0;

Câu 20: Bạn muốn lấy danh sách tên các bản nhạc và tên ca sĩ đã thu âm chúng, chỉ bao gồm các bản thu âm của ca sĩ "Mỹ Linh". Sử dụng các bảng `Banthuam`, `BanNhac`, `Casi`. Câu lệnh nào sau đây là đúng?

  • A. SELECT BN.TenBanNhac, CS.TenCasi FROM BanNhac AS BN JOIN Casi AS CS ON BN.IDBanNhac = CS.IDBanNhac WHERE CS.TenCasi = "Mỹ Linh";
  • B. SELECT BN.TenBanNhac, CS.TenCasi FROM Banthuam AS BT JOIN BanNhac AS BN ON BT.IDBanNhac = BN.IDBanNhac JOIN Casi AS CS ON BT.IDCasi = CS.IDCasi WHERE CS.TenCasi = "Mỹ Linh";
  • C. SELECT BN.TenBanNhac, CS.TenCasi FROM Banthuam AS BT, BanNhac AS BN, Casi AS CS WHERE BT.IDBanNhac = BN.IDBanNhac AND BT.IDCasi = CS.IDCasi AND TenCasi = "Mỹ Linh";
  • D. SELECT BN.TenBanNhac, CS.TenCasi FROM Banthuam AS BT INNER JOIN BanNhac AS BN ON BT.IDBanNhac = BN.IDBanNhac INNER JOIN Casi AS CS ON BT.IDCasi = CS.IDCasi AND CS.TenCasi = "Mỹ Linh";

Câu 21: Khi sử dụng bí danh (alias) cho bảng trong câu lệnh JOIN, ví dụ `BanNhac AS B`, bạn phải sử dụng bí danh đó (ví dụ: `B.TenBanNhac`) để tham chiếu đến các cột của bảng `BanNhac` trong các mệnh đề `SELECT`, `ON`, `WHERE`, `ORDER BY`,... trong cùng câu lệnh đó.

  • A. Đúng
  • B. Sai

Câu 22: Bạn muốn tìm tên các bản nhạc và tên thể loại của chúng, bao gồm cả những bản nhạc chưa được gán thể loại nào. Sử dụng `BanNhac` và `TheLoai`. Câu lệnh nào sau đây là đúng?

  • A. SELECT B.TenBanNhac, T.TenTheLoai FROM BanNhac AS B INNER JOIN TheLoai AS T ON B.IDTheLoai = T.IDTheLoai;
  • B. SELECT B.TenBanNhac, T.TenTheLoai FROM BanNhac AS B RIGHT JOIN TheLoai AS T ON B.IDTheLoai = T.IDTheLoai;
  • C. SELECT B.TenBanNhac, T.TenTheLoai FROM BanNhac AS B LEFT JOIN TheLoai AS T ON B.IDTheLoai = T.IDTheLoai;
  • D. SELECT B.TenBanNhac, T.TenTheLoai FROM BanNhac AS B WHERE B.IDTheLoai IS NOT NULL OR T.IDTheLoai IS NULL;

Câu 23: Mục đích chính của việc sử dụng JOIN trong truy vấn SQL là gì?

  • A. Để tạo bảng mới từ dữ liệu hiện có.
  • B. Để xóa dữ liệu khỏi nhiều bảng cùng lúc.
  • C. Để cập nhật dữ liệu trên nhiều bảng đồng thời.
  • D. Để kết hợp các hàng từ hai hoặc nhiều bảng dựa trên một cột liên quan giữa chúng.

Câu 24: Giả sử bạn có bảng `Sanpham` (IDSP, TenSP, IDDanhMuc) và `DanhMuc` (IDDanhMuc, TenDanhMuc). `IDDanhMuc` trong `Sanpham` là khóa ngoại. Bạn muốn liệt kê tên danh mục và số lượng sản phẩm trong mỗi danh mục, bao gồm cả những danh mục chưa có sản phẩm nào. Câu lệnh nào là đúng?

  • A. SELECT DM.TenDanhMuc, COUNT(SP.IDSP) FROM DanhMuc AS DM INNER JOIN Sanpham AS SP ON DM.IDDanhMuc = SP.IDDanhMuc GROUP BY DM.TenDanhMuc;
  • B. SELECT DM.TenDanhMuc, COUNT(SP.IDSP) FROM DanhMuc AS DM LEFT JOIN Sanpham AS SP ON DM.IDDanhMuc = SP.IDDanhMuc GROUP BY DM.TenDanhMuc;
  • C. SELECT DM.TenDanhMuc, COUNT(*) FROM DanhMuc AS DM, Sanpham AS SP WHERE DM.IDDanhMuc = SP.IDDanhMuc GROUP BY DM.TenDanhMuc;
  • D. SELECT DM.TenDanhMuc, COUNT(SP.IDSP) FROM DanhMuc AS DM GROUP BY DM.TenDanhMuc;

Câu 25: Cho câu lệnh SQL: `SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi;`. Nếu có một bản nhạc trong bảng `BanNhac` mà cột `IDNhacSi` của nó là NULL, bản nhạc đó có xuất hiện trong kết quả truy vấn này không?

  • A. Có, nó sẽ xuất hiện với tên nhạc sĩ là NULL.
  • B. Không, INNER JOIN chỉ trả về các hàng có giá trị khớp ở cả hai bảng.
  • C. Có, nó sẽ xuất hiện với tên nhạc sĩ là trống.
  • D. Chỉ khi bảng `NhacSi` cũng có một hàng với `IDNhacSi` là NULL.

Câu 26: Bạn muốn lấy danh sách các bản nhạc và tên thể loại của chúng, nhưng chỉ những bản nhạc thuộc thể loại có tên bắt đầu bằng chữ "N". Sử dụng `BanNhac` và `TheLoai`. Câu lệnh nào là đúng?

  • A. SELECT B.TenBanNhac, T.TenTheLoai FROM BanNhac AS B JOIN TheLoai AS T ON B.IDTheLoai = T.IDTheLoai WHERE B.TenBanNhac LIKE "N%";
  • B. SELECT B.TenBanNhac, T.TenTheLoai FROM BanNhac AS B, TheLoai AS T WHERE B.IDTheLoai = T.IDTheLoai AND T.TenTheLoai LIKE "N%";
  • C. SELECT B.TenBanNhac, T.TenTheLoai FROM BanNhac AS B JOIN TheLoai AS T ON B.IDTheLoai = T.IDTheLoai WHERE T.TenTheLoai LIKE "N%";
  • D. SELECT B.TenBanNhac, T.TenTheLoai FROM BanNhac AS B JOIN TheLoai AS T ON B.IDTheLoai = T.IDTheLoai AND B.TenTheLoai LIKE "N%"; (Giả sử TenTheLoai có trong BanNhac)

Câu 27: Bạn có bảng `NhanVien` (IDNV, TenNV, IDPhongBan) và `PhongBan` (IDPhongBan, TenPhongBan). `IDPhongBan` trong `NhanVien` là khóa ngoại. Bạn muốn liệt kê tên phòng ban và tên các nhân viên làm việc trong phòng đó. Kể cả những phòng ban chưa có nhân viên nào. Câu lệnh nào là đúng?

  • A. SELECT PB.TenPhongBan, NV.TenNV FROM PhongBan AS PB LEFT JOIN NhanVien AS NV ON PB.IDPhongBan = NV.IDPhongBan;
  • B. SELECT PB.TenPhongBan, NV.TenNV FROM PhongBan AS PB INNER JOIN NhanVien AS NV ON PB.IDPhongBan = NV.IDPhongBan;
  • C. SELECT PB.TenPhongBan, NV.TenNV FROM NhanVien AS NV LEFT JOIN PhongBan AS PB ON PB.IDPhongBan = NV.IDPhongBan;
  • D. SELECT PB.TenPhongBan, NV.TenNV FROM PhongBan AS PB, NhanVien AS NV WHERE PB.IDPhongBan = NV.IDPhongBan;

Câu 28: Khi liên kết nhiều hơn hai bảng (ví dụ: A JOIN B JOIN C), thứ tự các JOIN có thể ảnh hưởng đến kết quả cuối cùng, đặc biệt khi sử dụng các loại JOIN khác INNER JOIN.

  • A. Đúng
  • B. Sai

Câu 29: Bạn có bảng `BaiViet` (IDBaiViet, TieuDe, IDTacGia) và `TacGia` (IDTacGia, TenTacGia). Bạn muốn tìm tên các tác giả chưa viết bất kỳ bài viết nào. Câu lệnh nào sau đây là đúng?

  • A. SELECT TenTacGia FROM TacGia WHERE IDTacGia NOT IN (SELECT IDTacGia FROM BaiViet);
  • B. SELECT TG.TenTacGia FROM TacGia AS TG LEFT JOIN BaiViet AS BV ON TG.IDTacGia = BV.IDTacGia WHERE BV.IDBaiViet IS NULL;
  • C. SELECT TenTacGia FROM TacGia WHERE NOT EXISTS (SELECT 1 FROM BaiViet WHERE BaiViet.IDTacGia = TacGia.IDTacGia);
  • D. Tất cả các câu lệnh trên đều đúng.

Câu 30: Bạn muốn lấy danh sách tên bản nhạc, tên nhạc sĩ và tên thể loại, nhưng chỉ cho những bản nhạc có độ dài lớn hơn 240 giây. Sử dụng `BanNhac`, `NhacSi`, `TheLoai`. Câu lệnh nào sau đây là đúng?

  • A. SELECT B.TenBanNhac, N.TenNhacSi, T.TenTheLoai FROM BanNhac AS B JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi JOIN TheLoai AS T ON B.IDTheLoai = T.IDTheLoai WHERE B.DoDai > 240;
  • B. SELECT B.TenBanNhac, N.TenNhacSi, T.TenTheLoai FROM BanNhac AS B, NhacSi AS N, TheLoai AS T WHERE B.IDNhacSi = N.IDNhacSi AND B.IDTheLoai = T.IDTheLoai AND DoDai > 240;
  • C. SELECT B.TenBanNhac, N.TenNhacSi, T.TenTheLoai FROM BanNhac AS B INNER JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi WHERE B.DoDai > 240 INNER JOIN TheLoai AS T ON B.IDTheLoai = T.IDTheLoai;
  • D. SELECT B.TenBanNhac, N.TenNhacSi, T.TenTheLoai FROM BanNhac AS B JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi AND B.DoDai > 240 JOIN TheLoai AS T ON B.IDTheLoai = T.IDTheLoai;

1 / 30

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

Tags: Bộ đề 10

Câu 1: Giả sử bạn có hai bảng trong cơ sở dữ liệu quản lý âm nhạc: `NhacSi` (IDNhacSi, TenNhacSi) và `BanNhac` (IDBanNhac, TenBanNhac, IDNhacSi, IDTheLoai). Cột `IDNhacSi` trong bảng `BanNhac` là khóa ngoại liên kết đến `IDNhacSi` trong bảng `NhacSi`. Câu lệnh SQL nào sau đây sẽ lấy danh sách tên bản nhạc và tên nhạc sĩ tương ứng cho *tất cả* các bản nhạc đã được gán nhạc sĩ?

2 / 30

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

Tags: Bộ đề 10

Câu 2: Vẫn sử dụng hai bảng `NhacSi` và `BanNhac` như ở Câu 1. Bạn muốn tìm tên các bản nhạc được sáng tác bởi nhạc sĩ có `IDNhacSi` là 5. Câu lệnh SQL nào thực hiện được yêu cầu này?

3 / 30

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

Tags: Bộ đề 10

Câu 3: Bạn muốn lấy danh sách tất cả nhạc sĩ cùng với tên bản nhạc mà họ sáng tác. Tuy nhiên, bạn cũng muốn hiển thị cả những nhạc sĩ chưa sáng tác bản nhạc nào. Loại JOIN nào là phù hợp nhất trong trường hợp này?

4 / 30

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

Tags: Bộ đề 10

Câu 4: Viết câu lệnh SQL để thực hiện yêu cầu ở Câu 3 (lấy danh sách tất cả nhạc sĩ và tên bản nhạc của họ, kể cả nhạc sĩ chưa có bản nhạc). Sử dụng bảng `NhacSi` và `BanNhac` như mô tả.

5 / 30

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

Tags: Bộ đề 10

Câu 5: Giả sử có thêm bảng `TheLoai` (IDTheLoai, TenTheLoai) và bảng `BanNhac` có khóa ngoại `IDTheLoai` liên kết đến `TheLoai`. Câu lệnh SQL nào sau đây sẽ liệt kê tên bản nhạc và tên thể loại của chúng, *chỉ* bao gồm các bản nhạc đã được gán thể loại?

6 / 30

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

Tags: Bộ đề 10

Câu 6: Bạn muốn tìm tất cả các bản nhạc thuộc thể loại 'Nhạc Trữ Tình' và tên nhạc sĩ sáng tác chúng. Sử dụng các bảng `BanNhac`, `NhacSi`, `TheLoai` và các mối quan hệ khóa ngoại tương ứng. Câu lệnh nào sau đây là đúng?

7 / 30

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

Tags: Bộ đề 10

Câu 7: Bạn có bảng `Casi` (IDCasi, TenCasi) và bảng `Banthuam` (IDBanthuam, IDBanNhac, IDCasi). `IDBanNhac` và `IDCasi` là khóa ngoại. Bạn muốn lấy danh sách các bản thu âm (thông tin từ bảng `Banthuam`) mà chưa được gán ca sĩ nào. Câu lệnh nào sau đây là đúng?

8 / 30

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

Tags: Bộ đề 10

Câu 8: Giả sử bạn cần một danh sách đầy đủ thông tin về các bản thu âm, bao gồm tên bản nhạc, tên nhạc sĩ, và tên ca sĩ đã thể hiện bản thu âm đó. Bạn cần liên kết 4 bảng: `Banthuam`, `BanNhac`, `NhacSi`, `Casi`. Thứ tự và loại JOIN nào là hợp lý để đảm bảo chỉ lấy các bản thu âm có đủ thông tin liên kết?

9 / 30

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

Tags: Bộ đề 10

Câu 9: Viết câu lệnh SQL để thực hiện yêu cầu ở Câu 8 (liệt kê bản thu âm với tên bản nhạc, nhạc sĩ, ca sĩ), chỉ lấy các bản thu âm có đầy đủ thông tin liên kết. Sử dụng bí danh (alias) cho các bảng.

10 / 30

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

Tags: Bộ đề 10

Câu 10: Bạn muốn liệt kê tên tất cả các thể loại nhạc và số lượng bản nhạc thuộc mỗi thể loại đó. Bạn cần liên kết bảng `TheLoai` và `BanNhac`. Câu lệnh nào sau đây là đúng? (Gợi ý: Sử dụng hàm COUNT và GROUP BY)

11 / 30

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

Tags: Bộ đề 10

Câu 11: Khi sử dụng INNER JOIN để kết nối hai bảng A và B dựa trên một điều kiện, tập kết quả sẽ chứa:

12 / 30

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

Tags: Bộ đề 10

Câu 12: Bạn muốn tìm tên các nhạc sĩ chưa sáng tác bất kỳ bản nhạc nào. Sử dụng bảng `NhacSi` và `BanNhac`. Câu lệnh nào sau đây là đúng?

13 / 30

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

Tags: Bộ đề 10

Câu 13: Cho câu lệnh SQL: `SELECT T1.ColA, T2.ColB FROM Table1 AS T1 LEFT JOIN Table2 AS T2 ON T1.ID = T2.ID;`. Nếu có một hàng trong `Table1` mà không có hàng nào tương ứng trong `Table2` theo điều kiện `ON`, thì kết quả trả về sẽ như thế nào đối với hàng đó?

14 / 30

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

Tags: Bộ đề 10

Câu 14: Bạn muốn lấy danh sách tên bản nhạc và tên nhạc sĩ, sắp xếp theo tên nhạc sĩ từ A-Z. Sử dụng `BanNhac` và `NhacSi`. Câu lệnh nào sau đây là đúng?

15 / 30

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

Tags: Bộ đề 10

Câu 15: Bạn muốn tìm tên những bản nhạc có độ dài (DoDai) lớn hơn 300 giây và tên nhạc sĩ sáng tác chúng. Sử dụng `BanNhac` và `NhacSi`. Câu lệnh nào sau đây là đúng?

16 / 30

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

Tags: Bộ đề 10

Câu 16: Giả sử bạn có bảng `KhachHang` (IDKhachHang, TenKhachHang) và bảng `DonHang` (IDDonHang, IDKhachHang, NgayDat). `IDKhachHang` trong `DonHang` là khóa ngoại. Bạn muốn liệt kê tên tất cả khách hàng và ID đơn hàng của họ. Kể cả những khách hàng chưa đặt đơn hàng nào. Câu lệnh nào là đúng?

17 / 30

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

Tags: Bộ đề 10

Câu 17: Trong câu lệnh `SELECT ... FROM TableA JOIN TableB ON TableA.Key = TableB.ForeignKey;`, mệnh đề `ON` dùng để làm gì?

18 / 30

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

Tags: Bộ đề 10

Câu 18: Bạn có các bảng: `SinhVien` (IDSV, TenSV), `KhoaHoc` (IDKhoaHoc, TenKhoaHoc), `DangKy` (IDDangKy, IDSV, IDKhoaHoc, Diem). `IDSV` và `IDKhoaHoc` trong `DangKy` là khóa ngoại. Bạn muốn liệt kê tên sinh viên và tên các khóa học mà họ đã đăng ký và có điểm trên 8.0. Bạn cần liên kết những bảng nào?

19 / 30

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

Tags: Bộ đề 10

Câu 19: Tiếp theo Câu 18, viết câu lệnh SQL để liệt kê tên sinh viên và tên các khóa học mà họ đã đăng ký và có điểm trên 8.0.

20 / 30

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

Tags: Bộ đề 10

Câu 20: Bạn muốn lấy danh sách tên các bản nhạc và tên ca sĩ đã thu âm chúng, *chỉ* bao gồm các bản thu âm của ca sĩ 'Mỹ Linh'. Sử dụng các bảng `Banthuam`, `BanNhac`, `Casi`. Câu lệnh nào sau đây là đúng?

21 / 30

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

Tags: Bộ đề 10

Câu 21: Khi sử dụng bí danh (alias) cho bảng trong câu lệnh JOIN, ví dụ `BanNhac AS B`, bạn *phải* sử dụng bí danh đó (ví dụ: `B.TenBanNhac`) để tham chiếu đến các cột của bảng `BanNhac` trong các mệnh đề `SELECT`, `ON`, `WHERE`, `ORDER BY`,... trong cùng câu lệnh đó.

22 / 30

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

Tags: Bộ đề 10

Câu 22: Bạn muốn tìm tên các bản nhạc và tên thể loại của chúng, bao gồm cả những bản nhạc chưa được gán thể loại nào. Sử dụng `BanNhac` và `TheLoai`. Câu lệnh nào sau đây là đúng?

23 / 30

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

Tags: Bộ đề 10

Câu 23: Mục đích chính của việc sử dụng JOIN trong truy vấn SQL là gì?

24 / 30

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

Tags: Bộ đề 10

Câu 24: Giả sử bạn có bảng `Sanpham` (IDSP, TenSP, IDDanhMuc) và `DanhMuc` (IDDanhMuc, TenDanhMuc). `IDDanhMuc` trong `Sanpham` là khóa ngoại. Bạn muốn liệt kê tên danh mục và số lượng sản phẩm trong mỗi danh mục, bao gồm cả những danh mục chưa có sản phẩm nào. Câu lệnh nào là đúng?

25 / 30

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

Tags: Bộ đề 10

Câu 25: Cho câu lệnh SQL: `SELECT B.TenBanNhac, N.TenNhacSi FROM BanNhac AS B JOIN NhacSi AS N ON B.IDNhacSi = N.IDNhacSi;`. Nếu có một bản nhạc trong bảng `BanNhac` mà cột `IDNhacSi` của nó là NULL, bản nhạc đó có xuất hiện trong kết quả truy vấn này không?

26 / 30

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

Tags: Bộ đề 10

Câu 26: Bạn muốn lấy danh sách các bản nhạc và tên thể loại của chúng, nhưng chỉ những bản nhạc thuộc thể loại có tên bắt đầu bằng chữ 'N'. Sử dụng `BanNhac` và `TheLoai`. Câu lệnh nào là đúng?

27 / 30

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

Tags: Bộ đề 10

Câu 27: Bạn có bảng `NhanVien` (IDNV, TenNV, IDPhongBan) và `PhongBan` (IDPhongBan, TenPhongBan). `IDPhongBan` trong `NhanVien` là khóa ngoại. Bạn muốn liệt kê tên phòng ban và tên các nhân viên làm việc trong phòng đó. Kể cả những phòng ban chưa có nhân viên nào. Câu lệnh nào là đúng?

28 / 30

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

Tags: Bộ đề 10

Câu 28: Khi liên kết nhiều hơn hai bảng (ví dụ: A JOIN B JOIN C), thứ tự các JOIN có thể ảnh hưởng đến kết quả cuối cùng, đặc biệt khi sử dụng các loại JOIN khác INNER JOIN.

29 / 30

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

Tags: Bộ đề 10

Câu 29: Bạn có bảng `BaiViet` (IDBaiViet, TieuDe, IDTacGia) và `TacGia` (IDTacGia, TenTacGia). Bạn muốn tìm tên các tác giả chưa viết bất kỳ bài viết nào. Câu lệnh nào sau đây là đúng?

30 / 30

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

Tags: Bộ đề 10

Câu 30: Bạn muốn lấy danh sách tên bản nhạc, tên nhạc sĩ và tên thể loại, nhưng chỉ cho những bản nhạc có độ dài lớn hơn 240 giây. Sử dụng `BanNhac`, `NhacSi`, `TheLoai`. Câu lệnh nào sau đây là đúng?

Viết một bình luận