1. Trong SQL, mệnh đề nào được dùng để gộp các hàng có cùng giá trị trong một hoặc nhiều cột thành một hàng tóm tắt, thường kết hợp với các hàm tổng hợp?
A. ORDER BY
B. WHERE
C. GROUP BY
D. HAVING
2. Để sắp xếp kết quả truy vấn theo thứ tự tăng dần của cột TenHocSinh, chúng ta sử dụng mệnh đề nào trong SQL?
A. SORT BY TenHocSinh ASC
B. ORDER BY TenHocSinh ASC
C. GROUP BY TenHocSinh ASC
D. FILTER BY TenHocSinh ASC
3. Khi sử dụng mệnh đề DISTINCT, nó áp dụng cho cột nào trong câu lệnh SELECT?
A. Tất cả các cột được chọn.
B. Chỉ cột đứng ngay sau nó.
C. Cột được chỉ định rõ ràng sau DISTINCT.
D. Các cột được nhóm bởi GROUP BY.
4. Để chọn tất cả các học sinh có tên bắt đầu bằng chữ A, ta sử dụng toán tử nào trong mệnh đề WHERE của SQL?
A. LIKE
B. =
C. IN
D. BETWEEN
5. Câu lệnh SQL nào sau đây sẽ đếm tổng số học sinh trong bảng HocSinh?
A. SELECT SUM(MaHocSinh) FROM HocSinh;
B. SELECT AVG(MaHocSinh) FROM HocSinh;
C. SELECT COUNT(*) FROM HocSinh;
D. SELECT MAX(MaHocSinh) FROM HocSinh;
6. Phát biểu nào sau đây mô tả đúng về khóa ngoại (Foreign Key) trong SQL?
A. Là cột duy nhất trong bảng.
B. Là cột dùng để liên kết hai bảng, tham chiếu đến khóa chính của bảng khác.
C. Là cột chỉ chứa giá trị NULL.
D. Là cột dùng để sắp xếp dữ liệu.
7. Khi sử dụng hàm tổng hợp AVG() trong SQL, mục đích chính là gì?
A. Đếm số lượng bản ghi.
B. Tìm giá trị lớn nhất.
C. Tính giá trị trung bình của một cột số.
D. Tính tổng giá trị của một cột số.
8. Để lấy ra tên của tất cả các môn học, ta thực hiện câu truy vấn SQL nào sau đây, giả sử bảng là MonHoc và có cột TenMonHoc?
A. SELECT MonHoc FROM MonHoc;
B. SELECT TenMonHoc FROM MonHoc;
C. SELECT * FROM MonHoc;
D. GET TenMonHoc FROM MonHoc;
9. Câu lệnh SQL nào sau đây sẽ trả về số lượng học sinh cho mỗi MaLop trong bảng HocSinh, nếu bảng này có cột MaLop?
A. SELECT MaLop, COUNT(*) FROM HocSinh;
B. SELECT MaLop, COUNT(*) FROM HocSinh GROUP BY MaLop;
C. SELECT MaLop, COUNT(MaLop) FROM HocSinh HAVING COUNT(MaLop) > 0;
D. SELECT DISTINCT MaLop, COUNT(*) FROM HocSinh ORDER BY MaLop;
10. Phát biểu nào sau đây mô tả đúng chức năng của mệnh đề JOIN trong SQL?
A. Lọc các bản ghi trùng lặp.
B. 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.
C. Nhóm các hàng có cùng giá trị trong một cột.
D. Sắp xếp kết quả theo một thứ tự cụ thể.
11. Trong một câu truy vấn SQL sử dụng INNER JOIN, những hàng nào sẽ được trả về?
A. Tất cả các hàng từ bảng bên trái, ngay cả khi không có khớp trong bảng bên phải.
B. Tất cả các hàng từ bảng bên phải, ngay cả khi không có khớp trong bảng bên trái.
C. Chỉ những hàng có giá trị khớp nhau ở cả hai bảng theo điều kiện JOIN.
D. Tất cả các hàng từ cả hai bảng.
12. Câu lệnh SQL nào sau đây sẽ cập nhật tên lớp thành Công nghệ thông tin cho lớp có mã là CNTT101 trong bảng LopHoc?
A. INSERT INTO LopHoc SET TenLop = Công nghệ thông tin WHERE MaLop = CNTT101;
B. UPDATE LopHoc SET TenLop = Công nghệ thông tin WHERE MaLop = CNTT101;
C. MODIFY LopHoc SET TenLop = Công nghệ thông tin WHERE MaLop = CNTT101;
D. CHANGE LopHoc SET TenLop = Công nghệ thông tin WHERE MaLop = CNTT101;
13. Mệnh đề HAVING trong SQL được sử dụng với mục đích gì?
A. Lọc các hàng riêng lẻ trước khi nhóm.
B. Lọc các nhóm đã được tạo bởi GROUP BY dựa trên điều kiện.
C. Sắp xếp các nhóm theo thứ tự nhất định.
D. Chọn các cột cụ thể từ kết quả nhóm.
14. Phát biểu nào sau đây đúng về sự khác biệt giữa WHERE và HAVING?
A. WHERE lọc các hàng, HAVING lọc các nhóm.
B. WHERE lọc các nhóm, HAVING lọc các hàng.
C. WHERE chỉ dùng với các hàm tổng hợp, HAVING dùng với các cột thông thường.
D. WHERE và HAVING có chức năng giống hệt nhau.
15. Khi sử dụng toán tử OR trong mệnh đề WHERE, kết quả sẽ trả về các hàng thỏa mãn điều kiện nào?
A. Chỉ khi tất cả các điều kiện đều đúng.
B. Khi ít nhất một trong các điều kiện là đúng.
C. Khi điều kiện đầu tiên đúng và các điều kiện sau sai.
D. Khi không có điều kiện nào đúng.
16. Câu lệnh SQL nào sau đây sẽ chọn tất cả các cột từ bảng HocSinh mà có điểm DiemToan lớn hơn 8?
A. SELECT * FROM HocSinh WHERE DiemToan > 8;
B. SELECT DiemToan > 8 FROM HocSinh;
C. SELECT * FROM HocSinh GROUP BY DiemToan HAVING DiemToan > 8;
D. SELECT * FROM HocSinh ORDER BY DiemToan DESC;
17. Trong cơ sở dữ liệu quan hệ, một khóa chính (Primary Key) có vai trò gì?
A. Chỉ định mối quan hệ với bảng khác.
B. Đảm bảo tính duy nhất và không được NULL cho các bản ghi.
C. Cho phép lưu trữ nhiều giá trị trong một cột.
D. Xác định thứ tự hiển thị của các cột.
18. Phát biểu nào sau đây mô tả đúng về một lượt xem (VIEW) trong cơ sở dữ liệu quan hệ?
A. Là một bảng vật lý lưu trữ dữ liệu.
B. Là một bảng ảo dựa trên kết quả của một câu truy vấn SQL đã được lưu trữ.
C. Là một chỉ mục để tăng tốc độ truy vấn.
D. Là một ràng buộc để đảm bảo tính toàn vẹn dữ liệu.
19. Trong SQL, để xóa một bảng khỏi cơ sở dữ liệu, chúng ta sử dụng lệnh nào?
A. REMOVE TABLE
B. DROP TABLE
C. DELETE TABLE
D. CLEAR TABLE
20. Nếu một bảng có hai cột là MaLop và TenLop, và chúng ta muốn truy vấn tất cả các lớp duy nhất, chúng ta sử dụng từ khóa nào trong mệnh đề SELECT?
A. ALL
B. DISTINCT
C. UNIQUE
D. SINGLE
21. Hàm SUM() trong SQL được sử dụng để làm gì?
A. Tìm giá trị nhỏ nhất trong một tập hợp.
B. Đếm số lượng bản ghi.
C. Tính tổng giá trị của một cột số.
D. Tính giá trị trung bình của một tập hợp.
22. Trong một câu truy vấn SQL, nếu có nhiều điều kiện kết hợp với toán tử AND, thì điều kiện nào sẽ được ưu tiên thực hiện trước?
A. Không có ưu tiên, tất cả được đánh giá cùng lúc.
B. Điều kiện có giá trị nhỏ nhất.
C. Điều kiện có giá trị lớn nhất.
D. Thứ tự xuất hiện trong mệnh đề WHERE.
23. Trong ngôn ngữ truy vấn cơ sở dữ liệu quan hệ SQL, mệnh đề nào được sử dụng để lọc các hàng dựa trên một điều kiện xác định?
A. SELECT
B. GROUP BY
C. WHERE
D. ORDER BY
24. Trong SQL, để chỉ định rằng một cột không được chứa giá trị NULL, chúng ta sử dụng ràng buộc nào?
A. UNIQUE
B. PRIMARY KEY
C. NOT NULL
D. FOREIGN KEY
25. Trong SQL, để tạo một bảng mới tên là KhoaHoc với hai cột MaKhoa (kiểu số nguyên) và TenKhoa (kiểu chuỗi 50 ký tự), câu lệnh nào là đúng?
A. CREATE TABLE KhoaHoc (MaKhoa INT, TenKhoa VARCHAR(50));
B. ADD TABLE KhoaHoc (MaKhoa INT, TenKhoa VARCHAR(50));
C. NEW TABLE KhoaHoc (MaKhoa INT, TenKhoa VARCHAR(50));
D. INSERT TABLE KhoaHoc (MaKhoa INT, TenKhoa VARCHAR(50));