Trắc nghiệm Tin học 11 Kết nối tri thức Bài 14: SQL - Ngôn ngữ truy vấn có cấu trúc - Đề 07
Trắc nghiệm Tin học 11 Kết nối tri thức Bài 14: SQL - Ngôn ngữ truy vấn có cấu trúc - Đề 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: Một người quản trị cơ sở dữ liệu cần tạo một cấu trúc bảng mới để lưu trữ thông tin về các sản phẩm. Cần sử dụng thành phần nào của ngôn ngữ SQL để thực hiện thao tác này?
- A. DML (Data Manipulation Language)
- B. DDL (Data Definition Language)
- C. DCL (Data Control Language)
- D. TCL (Transaction Control Language)
Câu 2: Để thêm một cột mới có tên "Email" (kiểu dữ liệu VARCHAR(100)) vào bảng "NhanVien" đã tồn tại trong cơ sở dữ liệu, câu lệnh SQL nào sau đây là đúng?
- A. ADD COLUMN Email VARCHAR(100) TO TABLE NhanVien;
- B. MODIFY TABLE NhanVien ADD Email VARCHAR(100);
- C. ALTER TABLE NhanVien ADD COLUMN Email VARCHAR(100);
- D. UPDATE TABLE NhanVien ADD Email VARCHAR(100);
Câu 3: Giả sử bạn có bảng "SinhVien" với các cột "MaSV", "TenSV", "NgaySinh", "DiemTrungBinh". Để lấy ra tất cả các sinh viên có điểm trung bình lớn hơn hoặc bằng 8.0, câu lệnh SQL nào sau đây là đúng?
- A. SELECT * FROM SinhVien WITH DiemTrungBinh >= 8.0;
- B. SELECT * FROM SinhVien FILTER DiemTrungBinh >= 8.0;
- C. GET * FROM SinhVien WHERE DiemTrungBinh >= 8.0;
- D. SELECT * FROM SinhVien WHERE DiemTrungBinh >= 8.0;
Câu 4: Để thêm một dòng dữ liệu mới vào bảng "MonHoc" (có các cột "MaMH", "TenMH", "SoTinChi") với Mã môn học là "CS101", Tên môn học là "Co So Du Lieu" và Số tín chỉ là 3, câu lệnh SQL nào sau đây là đúng?
- A. ADD INTO MonHoc VALUES ("CS101", "Co So Du Lieu", 3);
- B. INSERT INTO MonHoc (MaMH, TenMH, SoTinChi) VALUES ("CS101", "Co So Du Lieu", 3);
- C. CREATE RECORD MonHoc ("CS101", "Co So Du Lieu", 3);
- D. PUT INTO MonHoc VALUES ("CS101", "Co So Du Lieu", 3);
Câu 5: Giả sử bạn có bảng "SanPham" với các cột "MaSP", "TenSP", "GiaBan", "SoLuongTon". Bạn muốn cập nhật giá bán của sản phẩm có Mã sản phẩm là "SP005" lên 250000. Câu lệnh SQL nào sau đây thực hiện đúng yêu cầu này?
- A. UPDATE SanPham SET GiaBan = 250000 WHERE MaSP = "SP005";
- B. MODIFY SanPham SET GiaBan = 250000 FOR MaSP = "SP005";
- C. ALTER TABLE SanPham UPDATE GiaBan = 250000 WHERE MaSP = "SP005";
- D. SET GiaBan = 250000 IN SanPham WHERE MaSP = "SP005";
Câu 6: Để xóa tất cả các dòng dữ liệu trong bảng "DonHang" mà không xóa cấu trúc của bảng, câu lệnh SQL nào sau đây là hiệu quả nhất (trong hầu hết các hệ quản trị CSDL)?
- A. DELETE FROM DonHang;
- B. DROP TABLE DonHang;
- C. TRUNCATE TABLE DonHang;
- D. REMOVE ALL FROM DonHang;
Câu 7: Bạn muốn lấy danh sách tên các sinh viên từ bảng "SinhVien" và sắp xếp theo thứ tự tên từ A đến Z. Câu lệnh SQL nào sau đây là đúng?
- A. SELECT TenSV FROM SinhVien ORDER BY TenSV ASC;
- B. SELECT TenSV FROM SinhVien SORT BY TenSV;
- C. ORDER TenSV FROM SinhVien ASC;
- D. SELECT TenSV FROM SinhVien GROUP BY TenSV;
Câu 8: Hàm tổng hợp (Aggregate Function) nào trong SQL được sử dụng để đếm số lượng dòng dữ liệu trong một bảng hoặc một nhóm?
- A. SUM()
- B. AVG()
- C. COUNT()
- D. TOTAL()
Câu 9: Cho hai bảng "DonHang" (MaDH, MaKH, NgayDH, TongTien) và "KhachHang" (MaKH, TenKH, DiaChi). Để lấy danh sách Mã đơn hàng, Ngày đặt hàng và Tên khách hàng cho tất cả các đơn hàng, cần sử dụng loại kết nối (JOIN) nào?
- A. INNER JOIN
- B. LEFT JOIN
- C. RIGHT JOIN
- D. FULL OUTER JOIN
Câu 10: Giả sử bạn có bảng "DiemThi" (MaSV, MaMH, Diem). Để tính điểm trung bình của tất cả các môn học cho mỗi sinh viên, bạn cần sử dụng mệnh đề nào sau đây trong câu lệnh SELECT?
- A. ORDER BY MaSV
- B. GROUP BY MaSV
- C. WHERE MaSV IS NOT NULL
- D. HAVING AVG(Diem)
Câu 11: Câu lệnh SQL nào sau đây được sử dụng để cấp quyền "SELECT" trên bảng "SanPham" cho người dùng có tên "hocsinh"?
- A. GIVE SELECT ON SanPham TO hocsinh;
- B. ALLOW SELECT SanPham FOR hocsinh;
- C. SET PERMISSION SELECT ON SanPham TO hocsinh;
- D. GRANT SELECT ON SanPham TO hocsinh;
Câu 12: Trong SQL, mệnh đề `WHERE` được sử dụng để làm gì?
- A. Lọc các dòng dữ liệu dựa trên một điều kiện.
- B. Nhóm các dòng dữ liệu có cùng giá trị.
- C. Sắp xếp kết quả truy vấn.
- D. Giới hạn số lượng dòng trả về.
Câu 13: Bạn muốn tìm giá trị lớn nhất trong cột "Luong" của bảng "NhanVien". Hàm tổng hợp nào trong SQL sẽ giúp bạn làm điều này?
- A. SUM()
- B. MAX()
- C. AVG()
- D. COUNT()
Câu 14: Khi sử dụng mệnh đề `GROUP BY` trong câu lệnh `SELECT`, bạn có thể sử dụng hàm tổng hợp (như COUNT, SUM, AVG) trên các cột không nằm trong danh sách `GROUP BY`. Phát biểu này là Đúng hay Sai?
- A. Đúng
- B. Sai
- C. Chỉ đúng với hàm COUNT()
- D. Chỉ đúng với hàm SUM() và AVG()
Câu 15: Lệnh SQL nào sau đây được sử dụng để loại bỏ hoàn toàn một bảng (bao gồm cả cấu trúc và dữ liệu) khỏi cơ sở dữ liệu?
- A. DROP TABLE
- B. DELETE TABLE
- C. REMOVE TABLE
- D. ERASE TABLE
Câu 16: Bạn muốn lấy ra tên của tất cả các khách hàng từ bảng "KhachHang" và chỉ hiển thị 10 khách hàng đầu tiên. Câu lệnh SQL nào sau đây (giả sử hệ quản trị hỗ trợ LIMIT) thực hiện được điều này?
- A. SELECT TOP 10 TenKH FROM KhachHang;
- B. SELECT TenKH FROM KhachHang FIRST 10;
- C. SELECT TenKH FROM KhachHang LIMIT 10;
- D. LIMIT 10 SELECT TenKH FROM KhachHang;
Câu 17: Cho bảng "SanPham" (MaSP, TenSP, GiaBan, MaLoai). Bạn muốn tìm tổng số lượng sản phẩm cho mỗi loại sản phẩm. Câu lệnh SQL nào sau đây là đúng?
- A. SELECT MaLoai, COUNT(*) FROM SanPham WHERE MaLoai IS NOT NULL;
- B. SELECT MaLoai, COUNT(*) FROM SanPham GROUP BY MaLoai;
- C. SELECT MaLoai, COUNT(MaSP) FROM SanPham ORDER BY MaLoai;
- D. GROUP BY MaLoai SELECT MaLoai, COUNT(*) FROM SanPham;
Câu 18: Để lọc các nhóm kết quả sau khi đã sử dụng mệnh đề `GROUP BY`, người ta sử dụng mệnh đề nào trong SQL?
- A. WHERE
- B. FILTER
- C. SELECT
- D. HAVING
Câu 19: Giả sử bạn có bảng "DonHang" (MaDH, MaKH, TongTien). Bạn muốn tìm các khách hàng (dựa trên MaKH) có tổng giá trị đơn hàng lớn hơn 1.000.000. Câu lệnh SQL nào sau đây là đúng?
- A. SELECT MaKH, SUM(TongTien) FROM DonHang GROUP BY MaKH HAVING SUM(TongTien) > 1000000;
- B. SELECT MaKH, SUM(TongTien) FROM DonHang WHERE SUM(TongTien) > 1000000 GROUP BY MaKH;
- C. SELECT MaKH, SUM(TongTien) FROM DonHang HAVING SUM(TongTien) > 1000000;
- D. SELECT MaKH, SUM(TongTien) FROM DonHang GROUP BY MaKH WHERE TongTien > 1000000;
Câu 20: Lệnh `REVOKE` trong SQL được sử dụng để làm gì?
- A. Tạo mới người dùng.
- B. Xóa người dùng.
- C. Thu hồi quyền truy cập của người dùng.
- D. Thay đổi mật khẩu người dùng.
Câu 21: Khi thiết kế cơ sở dữ liệu, ràng buộc (constraint) nào đảm bảo rằng mỗi giá trị trong một cột là duy nhất và không được để trống (NULL)?
- A. UNIQUE
- B. NOT NULL
- C. FOREIGN KEY
- D. PRIMARY KEY
Câu 22: Cho bảng "NhanVien" (MaNV, TenNV, MaPhong). Bảng "PhongBan" (MaPhong, TenPhong). Để lấy ra tên của tất cả nhân viên cùng với tên phòng ban mà họ thuộc về, câu lệnh JOIN nào sau đây là phù hợp nhất khi chỉ muốn lấy những nhân viên đã được gán vào một phòng ban cụ thể?
- A. SELECT N.TenNV, P.TenPhong FROM NhanVien N INNER JOIN PhongBan P ON N.MaPhong = P.MaPhong;
- B. SELECT N.TenNV, P.TenPhong FROM NhanVien N LEFT JOIN PhongBan P ON N.MaPhong = P.MaPhong;
- C. SELECT N.TenNV, P.TenPhong FROM NhanVien N RIGHT JOIN PhongBan P ON N.MaPhong = P.MaPhong;
- D. SELECT N.TenNV, P.TenPhong FROM NhanVien N FULL OUTER JOIN PhongBan P ON N.MaPhong = P.MaPhong;
Câu 23: Câu lệnh SQL `SELECT DISTINCT TenSP FROM SanPham;` có chức năng gì?
- A. Trả về tất cả tên sản phẩm, bao gồm cả các tên trùng lặp.
- B. Trả về danh sách các tên sản phẩm duy nhất (loại bỏ các tên trùng lặp).
- C. Đếm số lượng tên sản phẩm khác nhau.
- D. Sắp xếp tên sản phẩm theo thứ tự bảng chữ cái.
Câu 24: Trong mệnh đề `WHERE`, để kiểm tra xem một giá trị có nằm trong một danh sách các giá trị cụ thể hay không, ta sử dụng toán tử nào?
- A. BETWEEN
- B. LIKE
- C. IN
- D. EXIST
Câu 25: Giả sử bạn có bảng "SanPham" với cột "TenSP". Bạn muốn tìm tất cả sản phẩm có tên bắt đầu bằng chữ "A". Câu lệnh SQL nào sau đây là đúng?
- A. SELECT * FROM SanPham WHERE TenSP LIKE "A%";
- B. SELECT * FROM SanPham WHERE TenSP = "A*";
- C. SELECT * FROM SanPham WHERE TenSP STARTING WITH "A";
- D. SELECT * FROM SanPham WHERE TenSP MATCHES "A%";
Câu 26: Ràng buộc `FOREIGN KEY` trong SQL được sử dụng để làm gì?
- A. Đảm bảo giá trị trong cột là duy nhất.
- B. Thiết lập mối quan hệ giữa hai bảng và đảm bảo dữ liệu tham chiếu tồn tại.
- C. Ngăn không cho giá trị trong cột bị NULL.
- D. Đặt một giá trị mặc định cho cột.
Câu 27: Bạn cần lấy ra tên của tất cả các nhân viên từ bảng "NhanVien" và sắp xếp theo tên giảm dần. Câu lệnh SQL nào sau đây là đúng?
- A. SELECT TenNV FROM NhanVien ORDER BY TenNV ASC;
- B. SELECT TenNV FROM NhanVien SORT BY TenNV DESC;
- C. SELECT TenNV FROM NhanVien ORDER BY TenNV DESC;
- D. SELECT TenNV FROM NhanVien GROUP BY TenNV DESC;
Câu 28: Giả sử bạn có bảng "DiemThi" (MaSV, MaMH, Diem). Để tìm điểm thấp nhất trong cột "Diem", bạn sẽ sử dụng hàm tổng hợp nào?
- A. SUM()
- B. AVG()
- C. MAX()
- D. MIN()
Câu 29: Khi sử dụng `INNER JOIN` giữa hai bảng A và B dựa trên một điều kiện khớp, kết quả trả về sẽ bao gồm các dòng như thế nào?
- A. Chỉ các dòng có giá trị khớp ở cả hai bảng A và B.
- B. Tất cả các dòng từ bảng A và các dòng khớp từ bảng B.
- C. Tất cả các dòng từ bảng B và các dòng khớp từ bảng A.
- D. Tất cả các dòng từ cả hai bảng A và B, kết hợp khi có khớp.
Câu 30: Bạn muốn tạo một bảng mới tên là "LopHoc" với hai cột: "MaLop" (kiểu INT, là khóa chính) và "TenLop" (kiểu VARCHAR(50), không được rỗng). Câu lệnh SQL nào sau đây là đúng?
- A. CREATE TABLE LopHoc (MaLop INT PRIMARY KEY, TenLop VARCHAR(50) NULL);
- B. CREATE TABLE LopHoc (MaLop INT PRIMARY KEY, TenLop VARCHAR(50) NOT NULL);
- C. CREATE LopHoc (MaLop INT PRIMARY KEY, TenLop VARCHAR(50) NOT NULL);
- D. ADD TABLE LopHoc (MaLop INT PRIMARY KEY, TenLop VARCHAR(50) NOT NULL);