[Cánh diều] Trắc nghiệm Tin học 11 KHMT bài 6 Truy vấn trong cơ sở dữ liệu quan hệ (tt)
1. Trong SQL, mệnh đề nào được sử dụng để lọc các nhóm bản ghi dựa trên một điều kiện cụ thể sau khi thực hiện phép nhóm?
A. WHERE
B. GROUP BY
C. HAVING
D. ORDER BY
2. Phát biểu nào sau đây mô tả đúng chức năng của mệnh đề `ORDER BY` trong SQL?
A. Lọc các bản ghi thỏa mãn điều kiện.
B. Gom nhóm các bản ghi.
C. Sắp xếp kết quả truy vấn theo một hoặc nhiều cột.
D. Lọc các nhóm bản ghi.
3. Giả sử có bảng Sach với các cột TenSach, TacGia, NamXuatBan. Câu truy vấn nào sau đây sẽ trả về số lượng sách được xuất bản mỗi năm?
A. SELECT NamXuatBan, COUNT(TenSach) FROM Sach GROUP BY NamXuatBan;
B. SELECT NamXuatBan, SUM(TenSach) FROM Sach GROUP BY NamXuatBan;
C. SELECT NamXuatBan FROM Sach HAVING COUNT(TenSach) > 1;
D. SELECT COUNT(NamXuatBan) FROM Sach GROUP BY TenSach;
4. Câu lệnh SQL nào sau đây kết hợp dữ liệu từ bảng NhanVien và PhongBan dựa trên cột MaPB chung, và chỉ hiển thị các bản ghi có sự khớp nhau ở cả hai bảng?
A. SELECT * FROM NhanVien LEFT JOIN PhongBan ON NhanVien.MaPB = PhongBan.MaPB;
B. SELECT * FROM NhanVien INNER JOIN PhongBan ON NhanVien.MaPB = PhongBan.MaPB;
C. SELECT * FROM NhanVien RIGHT JOIN PhongBan ON NhanVien.MaPB = PhongBan.MaPB;
D. SELECT * FROM NhanVien FULL OUTER JOIN PhongBan ON NhanVien.MaPB = PhongBan.MaPB;
5. Khi cần hiển thị tên phòng ban và số lượng nhân viên trong mỗi phòng ban, chỉ những phòng ban có hơn 5 nhân viên, ta sẽ sử dụng kết hợp các mệnh đề nào?
A. SELECT, FROM, WHERE
B. SELECT, FROM, GROUP BY, HAVING
C. SELECT, FROM, ORDER BY
D. SELECT, FROM, GROUP BY
6. Phát biểu nào sau đây là đúng về `UNION` và `UNION ALL` trong SQL?
A. `UNION` loại bỏ các bản ghi trùng lặp, `UNION ALL` giữ lại tất cả.
B. `UNION ALL` loại bỏ các bản ghi trùng lặp, `UNION` giữ lại tất cả.
C. Cả hai đều loại bỏ các bản ghi trùng lặp.
D. Cả hai đều giữ lại tất cả các bản ghi, bao gồm cả trùng lặp.
7. Phát biểu nào sau đây là đúng về các toán tử so sánh trong SQL như `=`, `>`, `<`, `>=`, `<=`, `<>`?
A. Chúng chỉ được sử dụng trong mệnh đề SELECT.
B. Chúng được sử dụng chủ yếu trong mệnh đề WHERE hoặc HAVING để xác định điều kiện.
C. Chúng dùng để gom nhóm các bản ghi.
D. Chúng dùng để sắp xếp kết quả.
8. Cho bảng KhoHang với các cột TenSP, SoLuongTon. Câu truy vấn nào sau đây sẽ trả về tên các sản phẩm có số lượng tồn kho ít hơn 10 đơn vị?
A. SELECT TenSP FROM KhoHang WHERE SoLuongTon < 10;
B. SELECT TenSP FROM KhoHang HAVING SoLuongTon < 10;
C. SELECT TenSP FROM KhoHang GROUP BY SoLuongTon HAVING SoLuongTon < 10;
D. SELECT TenSP FROM KhoHang ORDER BY SoLuongTon ASC WHERE SoLuongTon < 10;
9. Toán tử `INTERSECT` trong SQL được sử dụng để làm gì?
A. Trả về tất cả các bản ghi từ cả hai truy vấn.
B. Trả về các bản ghi chỉ có trong truy vấn thứ nhất.
C. Trả về các bản ghi có trong cả hai truy vấn.
D. Trả về các bản ghi không có trong cả hai truy vấn.
10. Khi sử dụng câu lệnh `SELECT DISTINCT`, mục đích chính là gì?
A. Lấy tất cả các bản ghi, kể cả bản ghi trùng lặp.
B. Lấy ra các giá trị duy nhất, loại bỏ các bản ghi trùng lặp.
C. Sắp xếp kết quả theo thứ tự tăng dần.
D. Gom nhóm các bản ghi dựa trên một cột.
11. Khi truy vấn dữ liệu từ nhiều bảng có liên quan, chúng ta thường sử dụng loại kết nối (JOIN) nào để lấy tất cả cá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?
A. INNER JOIN
B. LEFT JOIN
C. RIGHT JOIN
D. FULL OUTER JOIN
12. Cho bảng NhanVien với các cột MaNV, TenNV, Luong. Câu truy vấn nào sau đây sẽ trả về tên của những nhân viên có lương cao hơn mức lương trung bình của tất cả nhân viên?
A. SELECT TenNV FROM NhanVien WHERE Luong > (SELECT AVG(Luong) FROM NhanVien);
B. SELECT TenNV FROM NhanVien HAVING Luong > (SELECT AVG(Luong) FROM NhanVien);
C. SELECT TenNV FROM NhanVien WHERE Luong = (SELECT AVG(Luong) FROM NhanVien);
D. SELECT TenNV, AVG(Luong) FROM NhanVien GROUP BY TenNV HAVING Luong > AVG(Luong);
13. Phát biểu nào sau đây là đúng về cách hoạt động của `SUBQUERY` (truy vấn con) trong SQL?
A. Truy vấn con luôn được thực thi sau truy vấn chính.
B. Truy vấn con luôn được thực thi trước truy vấn chính.
C. Truy vấn con có thể thực thi độc lập hoặc phụ thuộc vào truy vấn chính.
D. Truy vấn con và truy vấn chính thực thi đồng thời.
14. Cho bảng SanPhan với các cột MaSP, TenSP, GiaBan. Câu truy vấn nào sau đây sẽ trả về tên và giá bán của tất cả các sản phẩm có giá bán lớn hơn 100.000 VNĐ?
A. SELECT TenSP, GiaBan FROM SanPhan WHERE GiaBan > 100000;
B. SELECT TenSP, GiaBan FROM SanPhan HAVING GiaBan > 100000;
C. SELECT TenSP FROM SanPhan WHERE GiaBan > 100000 ORDER BY GiaBan DESC;
D. SELECT TenSP, GiaBan FROM SanPhan GROUP BY GiaBan WHERE GiaBan > 100000;
15. Giả sử có bảng HocSinh với các cột MaHS, TenHS, DiemTB. Câu truy vấn nào sau đây sẽ trả về tên của tất cả học sinh có điểm trung bình từ 8.0 trở lên?
A. SELECT TenHS FROM HocSinh WHERE DiemTB >= 8.0;
B. SELECT TenHS FROM HocSinh HAVING DiemTB >= 8.0;
C. SELECT TenHS FROM HocSinh GROUP BY DiemTB HAVING DiemTB >= 8.0;
D. SELECT TenHS FROM HocSinh ORDER BY DiemTB DESC WHERE DiemTB >= 8.0;
16. Trong SQL, để sắp xếp kết quả theo thứ tự giảm dần của cột Luong, ta sử dụng cú pháp nào?
A. ORDER BY Luong ASC;
B. ORDER BY Luong DESC;
C. SORT BY Luong DESC;
D. GROUP BY Luong DESC;
17. Nếu muốn hiển thị tên sản phẩm và số lượng bán ra của mỗi sản phẩm, đồng thời chỉ hiển thị những sản phẩm có số lượng bán ra lớn hơn 50, ta cần kết hợp những mệnh đề nào?
A. SELECT, FROM, WHERE
B. SELECT, FROM, GROUP BY, HAVING
C. SELECT, FROM, WHERE, ORDER BY
D. SELECT, FROM, GROUP BY
18. Phát biểu nào sau đây là đúng về mối quan hệ giữa mệnh đề WHERE và HAVING trong SQL?
A. WHERE lọc dữ liệu trước khi nhóm, HAVING lọc sau khi nhóm.
B. WHERE lọc dữ liệu sau khi nhóm, HAVING lọc trước khi nhóm.
C. Cả hai mệnh đề đều lọc dữ liệu trước khi nhóm.
D. Cả hai mệnh đề đều lọc dữ liệu sau khi nhóm.
19. Khi sử dụng hàm tổng hợp như COUNT(), SUM(), AVG() cùng với mệnh đề GROUP BY, điều kiện lọc cho kết quả của các hàm này được áp dụng bởi mệnh đề nào?
A. WHERE
B. HAVING
C. GROUP BY
D. ORDER BY
20. Cho bảng DonHang với các cột MaDH, NgayDat, TongTien. Câu truy vấn nào sau đây sẽ trả về tổng số tiền của tất cả các đơn hàng được đặt trong năm 2023?
A. SELECT SUM(TongTien) FROM DonHang WHERE YEAR(NgayDat) = 2023;
B. SELECT SUM(TongTien) FROM DonHang HAVING YEAR(NgayDat) = 2023;
C. SELECT YEAR(NgayDat), SUM(TongTien) FROM DonHang GROUP BY YEAR(NgayDat) HAVING YEAR(NgayDat) = 2023;
D. SELECT SUM(TongTien) FROM DonHang WHERE NgayDat BETWEEN 2023-01-01 AND 2023-12-31;
21. Trong SQL, hàm `COUNT(*)` được sử dụng để làm gì?
A. Tính tổng giá trị của một cột số.
B. Đếm số lượng các hàng trong một bảng hoặc kết quả truy vấn.
C. Tìm giá trị trung bình của một cột.
D. Tìm giá trị lớn nhất trong một cột.
22. Giả sử có hai bảng SinhVien_A và SinhVien_B, cả hai đều có cột MaSV. Câu truy vấn nào sau đây sẽ trả về danh sách tất cả mã sinh viên từ cả hai bảng, loại bỏ các mã trùng lặp?
A. SELECT MaSV FROM SinhVien_A UNION SELECT MaSV FROM SinhVien_B;
B. SELECT MaSV FROM SinhVien_A UNION ALL SELECT MaSV FROM SinhVien_B;
C. SELECT MaSV FROM SinhVien_A INTERSECT SELECT MaSV FROM SinhVien_B;
D. SELECT MaSV FROM SinhVien_A JOIN SinhVien_B ON SinhVien_A.MaSV = SinhVien_B.MaSV;
23. Cho bảng GiaoDich với các cột MaGD, NgayGD, SoTien. Câu truy vấn nào sau đây sẽ trả về danh sách các ngày giao dịch duy nhất?
A. SELECT NgayGD FROM GiaoDich;
B. SELECT DISTINCT NgayGD FROM GiaoDich;
C. SELECT GROUP BY NgayGD FROM GiaoDich;
D. SELECT NgayGD FROM GiaoDich WHERE COUNT(NgayGD) > 1;
24. Cho bảng KhachHang với cột TenKH. Câu truy vấn nào sau đây sẽ trả về tên của tất cả khách hàng có tên bắt đầu bằng chữ A?
A. SELECT TenKH FROM KhachHang WHERE TenKH = A%;
B. SELECT TenKH FROM KhachHang WHERE TenKH LIKE A%;
C. SELECT TenKH FROM KhachHang WHERE TenKH LIKE %A;
D. SELECT TenKH FROM KhachHang WHERE TenKH LIKE A;
25. Phát biểu nào sau đây mô tả đúng chức năng của toán tử `LIKE` trong SQL?
A. So sánh hai chuỗi ký tự có giống hệt nhau không.
B. Tìm kiếm các mẫu ký tự trong một chuỗi.
C. Nối hai chuỗi ký tự.
D. Chuyển đổi một chuỗi sang kiểu dữ liệu số.