1. Truy vấn con (subquery) trong SQL là gì?
A. Một truy vấn được chạy sau khi truy vấn chính hoàn thành.
B. Một truy vấn lồng bên trong một truy vấn khác, thường trong mệnh đề WHERE, SELECT hoặc FROM.
C. Một truy vấn chỉ sử dụng để tạo bảng mới.
D. Một truy vấn được sử dụng để xóa dữ liệu.
2. Khi thiết kế truy vấn, việc sử dụng các hàm tổng hợp (Aggregate Functions) như `SUM`, `AVG`, `COUNT` giúp ta thực hiện loại phân tích nào?
A. Lọc dữ liệu dựa trên một điều kiện cụ thể.
B. Sắp xếp dữ liệu theo thứ tự tăng/giảm.
C. Tổng hợp và tóm tắt dữ liệu từ nhiều bản ghi.
D. Kết hợp dữ liệu từ nhiều bảng khác nhau.
3. Để tính tổng giá trị đơn hàng của tất cả các đơn hàng trong bảng "DonHang", ta sử dụng hàm nào?
A. COUNT()
B. AVG()
C. SUM()
D. MAX()
4. Khi sử dụng toán tử `LIKE` trong SQL, ký tự đại diện nào được dùng để thay thế cho một chuỗi ký tự bất kỳ?
5. Để chỉ định bảng nguồn dữ liệu trong một truy vấn SQL, ta sử dụng mệnh đề nào?
A. FROM
B. JOIN
C. GROUP BY
D. ORDER BY
6. Giả sử có bảng "ChiTietDH" với cột "SoLuong" và "DonGia". Truy vấn SQL nào sau đây sẽ tính tổng số lượng của tất cả các mặt hàng trong các đơn hàng?
A. SELECT SUM(DonGia) FROM ChiTietDH;
B. SELECT SUM(SoLuong * DonGia) FROM ChiTietDH;
C. SELECT SUM(SoLuong) FROM ChiTietDH;
D. SELECT COUNT(SoLuong) FROM ChiTietDH;
7. Khi sử dụng `GROUP BY` kết hợp với các hàm tổng hợp (như COUNT, SUM, AVG), mệnh đề nào được dùng để lọc các nhóm dựa trên một điều kiện?
A. WHERE
B. ORDER BY
C. HAVING
D. FROM
8. Trong SQL, để kết hợp dữ liệu từ hai hoặc nhiều bảng dựa trên một cột liên quan, ta sử dụng toán tử nào?
A. UNION
B. INTERSECT
C. JOIN
D. EXCEPT
9. Để sắp xếp kết quả theo cột "NgaySinh" từ cũ nhất đến mới nhất (tăng dần), ta dùng mệnh đề nào?
A. ORDER BY NgaySinh DESC
B. ORDER BY NgaySinh ASC
C. ORDER BY NgaySinh
D. SORT BY NgaySinh ASC
10. Giả sử có bảng "SanPham" với các cột "MaSP", "TenSP", "Gia". Truy vấn SQL nào sau đây sẽ trả về tên các sản phẩm có giá lớn hơn 100.000?
A. SELECT TenSP FROM SanPham WHERE Gia > 100000;
B. SELECT TenSP FROM SanPham WHERE Gia < 100000;
C. SELECT TenSP FROM SanPham WHERE Gia = 100000;
D. SELECT TenSP FROM SanPham WHERE Gia LIKE "%100000%";
11. Giả sử có bảng "DonHang" với các cột "MaDH", "NgayDatHang", "TongTien". Truy vấn SQL nào sau đây sẽ đếm số lượng đơn hàng?
A. SELECT SUM(TongTien) FROM DonHang;
B. SELECT AVG(TongTien) FROM DonHang;
C. SELECT COUNT(*) FROM DonHang;
D. SELECT MAX(TongTien) FROM DonHang;
12. Trong SQL, mệnh đề nào được sử dụng để lọc các bản ghi dựa trên một điều kiện nhất định?
A. ORDER BY
B. GROUP BY
C. WHERE
D. HAVING
13. Trong hệ quản trị cơ sở dữ liệu, mục đích chính của việc thiết kế truy vấn là gì?
A. Để tạo giao diện người dùng đẹp mắt cho cơ sở dữ liệu.
B. Để tổ chức lại cấu trúc bảng theo một tiêu chuẩn mới.
C. Để trích xuất, lọc và hiển thị dữ liệu theo yêu cầu cụ thể.
D. Để bảo mật toàn bộ thông tin trong cơ sở dữ liệu.
14. Mệnh đề nào trong SQL được sử dụng để gộp các hàng có cùng giá trị trong một hoặc nhiều cột thành các hàng tóm tắt?
A. WHERE
B. ORDER BY
C. GROUP BY
D. HAVING
15. Loại JOIN nào 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, với NULL cho những hàng không khớp ở bên phải?
A. INNER JOIN
B. LEFT JOIN (hoặc LEFT OUTER JOIN)
C. RIGHT JOIN (hoặc RIGHT OUTER JOIN)
D. FULL JOIN (hoặc FULL OUTER JOIN)
16. Trong thiết kế truy vấn, khi nào ta cần xem xét sử dụng các phép toán tập hợp như UNION?
A. Khi muốn lọc dữ liệu dựa trên điều kiện phức tạp.
B. Khi muốn kết hợp kết quả từ hai hoặc nhiều truy vấn có cấu trúc cột tương tự nhau.
C. Khi muốn sắp xếp kết quả theo nhiều tiêu chí.
D. Khi muốn tính toán giá trị trung bình của một cột.
17. Giả sử có bảng "NhanVien" với cột "PhongBan". Truy vấn nào sau đây sẽ trả về danh sách các phòng ban duy nhất?
A. SELECT PhongBan FROM NhanVien;
B. SELECT DISTINCT PhongBan FROM NhanVien;
C. SELECT UNIQUE PhongBan FROM NhanVien;
D. SELECT COUNT(DISTINCT PhongBan) FROM NhanVien;
18. Truy vấn SQL nào sau đây sẽ trả về tên các sản phẩm bắt đầu bằng chữ "S" từ bảng "SanPham"?
A. SELECT TenSP FROM SanPham WHERE TenSP LIKE "%S";
B. SELECT TenSP FROM SanPham WHERE TenSP LIKE "S%";
C. SELECT TenSP FROM SanPham WHERE TenSP LIKE "%S%";
D. SELECT TenSP FROM SanPham WHERE TenSP LIKE "S";
19. Mục đích của việc sử dụng `DISTINCT` trong câu lệnh `SELECT` là gì?
A. Để hiển thị tất cả các bản ghi, bao gồm cả bản ghi trùng lặp.
B. Để loại bỏ các bản ghi trùng lặp trong tập kết quả.
C. Để sắp xếp kết quả theo thứ tự bảng chữ cái.
D. Để đếm số lượng bản ghi trong bảng.
20. Phát biểu nào sau đây mô tả đúng nhất về ngôn ngữ truy vấn có cấu trúc (SQL)?
A. SQL là ngôn ngữ lập trình bậc cao dùng để phát triển ứng dụng web.
B. SQL là ngôn ngữ để định nghĩa, thao tác và truy vấn dữ liệu trong cơ sở dữ liệu quan hệ.
C. SQL chỉ được sử dụng để tạo giao diện đồ họa cho cơ sở dữ liệu.
D. SQL là một định dạng file để lưu trữ dữ liệu.
21. Trong SQL, mệnh đề nào được sử dụng để chỉ định các trường (cột) cần lấy từ bảng?
A. WHERE
B. INSERT
C. SELECT
D. UPDATE
22. Mệnh đề nào trong SQL được sử dụng để sắp xếp kết quả truy vấn theo thứ tự tăng dần hoặc giảm dần?
A. GROUP BY
B. ORDER BY
C. WHERE
D. HAVING
23. Truy vấn nào sau đây sử dụng truy vấn con để tìm các học sinh có điểm trung bình cao hơn điểm trung bình chung của tất cả học sinh?
A. SELECT TenHS FROM HocSinh WHERE DiemTB > (SELECT AVG(DiemTB) FROM HocSinh);
B. SELECT TenHS FROM HocSinh WHERE DiemTB < (SELECT AVG(DiemTB) FROM HocSinh);
C. SELECT TenHS FROM HocSinh WHERE DiemTB = (SELECT AVG(DiemTB) FROM HocSinh);
D. SELECT TenHS FROM HocSinh WHERE DiemTB IN (SELECT AVG(DiemTB) FROM HocSinh);
24. Giả sử có bảng "HocSinh" với các cột "MaHS", "TenHS", "DiemTB". Truy vấn SQL nào sau đây sẽ trả về tên và điểm trung bình của tất cả học sinh?
A. SELECT * FROM HocSinh;
B. SELECT TenHS, DiemTB FROM HocSinh;
C. SELECT MaHS, TenHS, DiemTB FROM HocSinh;
D. SELECT TenHS FROM HocSinh;
25. Nếu muốn lấy tất cả các đơn hàng và thông tin khách hàng tương ứng, ngay cả khi một số đơn hàng không có thông tin khách hàng (giả sử bảng "DonHang" và "KhachHang" liên kết qua "MaKH"), ta nên dùng loại JOIN nào?
A. INNER JOIN giữa DonHang và KhachHang
B. LEFT JOIN giữa DonHang và KhachHang
C. RIGHT JOIN giữa DonHang và KhachHang
D. FULL JOIN giữa DonHang và KhachHang