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 - Đề 08
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 - Đề 08 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.
Câu 1: Thành phần nào của ngôn ngữ SQL chịu trách nhiệm định nghĩa cấu trúc của cơ sở dữ liệu, bao gồm việc tạo, sửa đổi và xóa các đối tượng như bảng, view, và index?
- A. DDL (Data Definition Language)
- B. DML (Data Manipulation Language)
- C. DCL (Data Control Language)
- D. TCL (Transaction Control Language)
Câu 2: Để truy xuất dữ liệu từ bảng "SinhVien" gồm các cột "MaSV", "TenSV", "NamSinh", và "DiaChi", và chỉ lấy thông tin của những sinh viên sinh sau năm 2003, câu lệnh SQL nào sau đây là phù hợp nhất?
- A. SELECT MaSV, TenSV, NamSinh, DiaChi FROM SinhVien ORDER BY NamSinh > "2003";
- B. SELECT MaSV, TenSV, NamSinh, DiaChi FROM SinhVien WHERE NamSinh > "2003";
- C. GET MaSV, TenSV, NamSinh, DiaChi FROM SinhVien CONDITION NamSinh AFTER "2003";
- D. RETRIEVE * FROM SinhVien FILTER NamSinh GREATER THAN "2003";
Câu 3: Trong một cơ sở dữ liệu quản lý bán hàng, bảng "DonHang" chứa thông tin về các đơn hàng. Để tính tổng số tiền của tất cả các đơn hàng trong tháng 12 năm 2023, với cột "NgayDatHang" lưu ngày đặt hàng và cột "TongTien" lưu tổng tiền đơn hàng, câu lệnh SQL nào sau đây là chính xác?
- A. SELECT TOTAL(TongTien) FROM DonHang WHERE MONTH(NgayDatHang) = 12 AND YEAR(NgayDatHang) = 2023;
- B. CALCULATE SUM(TongTien) FROM DonHang FOR MONTH "12" AND YEAR "2023";
- C. SELECT SUM(TongTien) FROM DonHang WHERE strftime("%m", NgayDatHang) = "12" AND strftime("%Y", NgayDatHang) = "2023";
- D. AGGREGATE TongTien BY DonHang FILTER MONTH = "12" AND YEAR = "2023";
Câu 4: Giả sử bạn có hai bảng "KhachHang" và "DonHang". Bảng "KhachHang" chứa thông tin khách hàng và bảng "DonHang" chứa thông tin đơn hàng, có liên kết với "KhachHang" qua khóa ngoại "MaKH". Để 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, bạn sẽ sử dụng loại phép JOIN nào?
- A. RIGHT JOIN
- B. LEFT JOIN hoặc INNER JOIN
- C. FULL OUTER JOIN
- D. CROSS JOIN
Câu 5: Câu lệnh SQL nào sau đây được sử dụng để thay đổi kiểu dữ liệu của cột "DiemSo" trong bảng "KetQua" từ INTEGER thành FLOAT?
- A. ALTER TABLE KetQua MODIFY COLUMN DiemSo FLOAT;
- B. UPDATE TABLE KetQua CHANGE COLUMN DiemSo TO FLOAT;
- C. REDEFINE TABLE KetQua ALTER DiemSo TYPE FLOAT;
- D. CHANGE TABLE KetQua.DiemSo TYPE FLOAT;
Câu 6: Để đảm bảo rằng cột "Email" trong bảng "NguoiDung" không được phép chứa giá trị NULL và phải là duy nhất, bạn sẽ sử dụng ràng buộc nào?
- A. PRIMARY KEY
- B. FOREIGN KEY
- C. CHECK
- D. NOT NULL và UNIQUE
Câu 7: Trong SQL, mệnh đề "GROUP BY" thường được sử dụng kết hợp với các hàm nào sau đây để thực hiện các phép tính thống kê trên các nhóm dữ liệu?
- A. WHERE, ORDER BY
- B. JOIN, UNION
- C. COUNT, SUM, AVG, MAX, MIN
- D. CREATE, INSERT, UPDATE, DELETE
Câu 8: Câu lệnh SQL nào được sử dụng để xóa hoàn toàn bảng "SanPham" khỏi cơ sở dữ liệu, bao gồm cả cấu trúc và dữ liệu?
- A. DELETE TABLE SanPham;
- B. DROP TABLE SanPham;
- C. TRUNCATE TABLE SanPham;
- D. REMOVE TABLE SanPham;
Câu 9: Khi nào bạn nên sử dụng mệnh đề "HAVING" thay vì "WHERE" trong câu lệnh SELECT?
- A. Khi lọc dữ liệu trước khi nhóm bằng GROUP BY.
- B. Khi sắp xếp dữ liệu bằng ORDER BY.
- C. Khi lọc các nhóm dữ liệu đã được tạo bởi GROUP BY dựa trên kết quả của hàm tổng hợp.
- D. Khi muốn liên kết dữ liệu từ nhiều bảng bằng JOIN.
Câu 10: Trong SQL, để cấp quyền "SELECT" trên bảng "NhanVien" cho người dùng "user1", bạn sẽ sử dụng câu lệnh nào thuộc nhóm DCL?
- A. GRANT SELECT ON NhanVien TO user1;
- B. ALLOW SELECT FOR user1 ON NhanVien;
- C. PERMIT user1 TO SELECT FROM NhanVien;
- D. AUTHORIZE user1 ACCESS SELECT ON NhanVien;
Câu 11: Xét bảng "Sach" với cột "TheLoai". Câu lệnh `SELECT TheLoai FROM Sach GROUP BY TheLoai` sẽ trả về kết quả gì?
- A. Số lượng sách trong mỗi thể loại.
- B. Danh sách các thể loại sách khác nhau có trong bảng.
- C. Thể loại sách xuất hiện nhiều nhất.
- D. Tổng số sách của tất cả các thể loại.
Câu 12: Cho bảng "HangHoa" có cột "GiaBan". Để tìm giá bán cao nhất của các mặt hàng có giá bán trên 100.000 VNĐ, câu lệnh SQL nào sau đây là hợp lý?
- A. SELECT MAX(GiaBan) FROM HangHoa;
- B. SELECT GiaBan FROM HangHoa WHERE GiaBan > 100000 ORDER BY GiaBan DESC LIMIT 1;
- C. SELECT TOP 1 GiaBan FROM HangHoa WHERE GiaBan > 100000 ORDER BY GiaBan DESC;
- D. SELECT MAX(GiaBan) FROM HangHoa WHERE GiaBan > 100000;
Câu 13: Trong SQL, để sắp xếp kết quả truy vấn theo thứ tự giảm dần của cột "NgayNhap" và nếu trùng "NgayNhap" thì sắp xếp tăng dần theo cột "MaHang", bạn sử dụng mệnh đề "ORDER BY" như thế nào?
- A. ORDER BY NgayNhap ASC, MaHang DESC
- B. ORDER BY NgayNhap, MaHang
- C. ORDER BY NgayNhap DESC, MaHang ASC
- D. ORDER BY NgayNhap DESC THEN BY MaHang ASC
Câu 14: Giả sử bạn muốn thêm một cột mới tên là "GhiChu" kiểu TEXT vào bảng "KhachHang". Câu lệnh SQL nào sau đây sẽ thực hiện điều này?
- A. ADD COLUMN GhiChu TEXT TO KhachHang;
- B. ALTER TABLE KhachHang ADD GhiChu TEXT;
- C. INSERT COLUMN GhiChu TEXT INTO KhachHang;
- D. CREATE COLUMN GhiChu TEXT IN KhachHang;
Câu 15: Để cập nhật địa chỉ của khách hàng có "MaKH" là "KH001" trong bảng "KhachHang" thành "123 Đường Mới, Quận XYZ", câu lệnh SQL nào sau đây là chính xác?
- A. UPDATE KhachHang SET DiaChi = "123 Đường Mới, Quận XYZ" WHERE MaKH = "KH001";
- B. MODIFY KhachHang SET DiaChi = "123 Đường Mới, Quận XYZ" FOR MaKH = "KH001";
- C. CHANGE KhachHang SET DiaChi TO "123 Đường Mới, Quận XYZ" IF MaKH = "KH001";
- D. REPLACE KhachHang DiaChi WITH "123 Đường Mới, Quận XYZ" WHEN MaKH IS "KH001";
Câu 16: Chức năng chính của mệnh đề "DISTINCT" trong câu lệnh SELECT là gì?
- A. Sắp xếp kết quả truy vấn.
- B. Lọc kết quả truy vấn theo điều kiện.
- C. Loại bỏ các dòng trùng lặp trong kết quả truy vấn.
- D. Nhóm các dòng có giá trị giống nhau.
Câu 17: Để tạo một VIEW tên "DS_KhachHang_HN" chứa thông tin "TenKH", "DiaChi", "DienThoai" của các khách hàng có địa chỉ ở "Hà Nội" từ bảng "KhachHang", câu lệnh SQL nào sau đây là phù hợp?
- A. SELECT VIEW DS_KhachHang_HN AS TenKH, DiaChi, DienThoai FROM KhachHang WHERE DiaChi = "Hà Nội";
- B. CREATE VIEW DS_KhachHang_HN AS SELECT TenKH, DiaChi, DienThoai FROM KhachHang WHERE DiaChi = "Hà Nội";
- C. MAKE VIEW DS_KhachHang_HN WITH SELECT TenKH, DiaChi, DienThoai FROM KhachHang WHERE DiaChi = "Hà Nội";
- D. FORM VIEW DS_KhachHang_HN USING SELECT TenKH, DiaChi, DienThoai FROM KhachHang WHERE DiaChi = "Hà Nội";
Câu 18: Giả sử bạn có bảng "SinhVien" với cột "NgaySinh" kiểu DATE. Để trích xuất năm sinh từ cột "NgaySinh", bạn có thể sử dụng hàm nào trong SQL (ví dụ: SQLite)?
- A. DAY()
- B. MONTH()
- C. strftime("%Y", NgaySinh)
- D. DATE_PART("year", NgaySinh)
Câu 19: Trong SQL, để kết hợp kết quả của hai câu lệnh SELECT và loại bỏ các dòng trùng lặp, bạn sử dụng phép toán tập hợp nào?
- A. UNION
- B. UNION ALL
- C. INTERSECT
- D. EXCEPT
Câu 20: Câu lệnh SQL nào sau đây được sử dụng để đếm số lượng bản ghi trong bảng "SanPham"?
- A. SELECT SIZE(*) FROM SanPham;
- B. SELECT LENGTH(*) FROM SanPham;
- C. SELECT TOTAL(*) FROM SanPham;
- D. SELECT COUNT(*) FROM SanPham;
Câu 21: Để thu hồi quyền "SELECT" trên bảng "SanPham" đã cấp cho người dùng "user1", bạn sử dụng câu lệnh DCL nào?
- A. DENY SELECT ON SanPham FROM user1;
- B. REVOKE SELECT ON SanPham FROM user1;
- C. REMOVE SELECT ON SanPham FROM user1;
- D. RESTRICT SELECT ON SanPham FROM user1;
Câu 22: Trong SQL, để tìm tất cả các đơn hàng có tổng tiền nằm trong khoảng từ 500.000 VNĐ đến 1.000.000 VNĐ, bạn sử dụng mệnh đề "WHERE" với toán tử nào?
- A. IN
- B. LIKE
- C. BETWEEN
- D. IS NULL
Câu 23: Giả sử bảng "NhanVien" có cột "TenNV". Để tìm tất cả nhân viên có tên bắt đầu bằng chữ "N", bạn sử dụng mệnh đề "WHERE" kết hợp với toán tử nào?
- A. =
- B. LIKE
- C. CONTAIN
- D. START_WITH
Câu 24: Để tạo một chỉ mục (INDEX) trên cột "MaSP" của bảng "SanPham" nhằm tăng tốc độ truy vấn, câu lệnh SQL nào sau đây là đúng?
- A. CREATE TABLE INDEX idx_MaSP ON SanPham(MaSP);
- B. INDEX CREATE idx_MaSP FOR SanPham(MaSP);
- C. ADD INDEX idx_MaSP TO SanPham(MaSP);
- D. CREATE INDEX idx_MaSP ON SanPham(MaSP);
Câu 25: Trong SQL, để kiểm tra xem một cột có giá trị NULL hay không trong mệnh đề "WHERE", bạn sử dụng toán tử nào?
- A. IS NULL
- B. = NULL
- C. EQUALS NULL
- D. NULL_CHECK
Câu 26: Giả sử bạn có hai bảng "Khoa" và "SinhVien", mỗi khoa có nhiều sinh viên. Để lấy danh sách các khoa và số lượng sinh viên thuộc mỗi khoa, bạn cần sử dụng kết hợp của "GROUP BY" và hàm nào?
- A. SUM()
- B. COUNT()
- C. AVG()
- D. MAX()
Câu 27: Để giới hạn số lượng bản ghi trả về từ một truy vấn SQL chỉ lấy 5 bản ghi đầu tiên, bạn sử dụng mệnh đề nào (ví dụ: trong MySQL hoặc SQLite)?
- A. TOP 5
- B. FIRST 5
- C. LIMIT 5
- D. FETCH FIRST 5 ROWS ONLY
Câu 28: Trong SQL, để tạo một bản sao của bảng "SanPham" có tên là "SanPham_Backup" bao gồm cả cấu trúc và dữ liệu, bạn có thể sử dụng câu lệnh nào?
- A. CREATE TABLE SanPham_Backup AS SELECT * FROM SanPham;
- B. COPY TABLE SanPham TO SanPham_Backup;
- C. DUPLICATE TABLE SanPham AS SanPham_Backup;
- D. BACKUP TABLE SanPham TO SanPham_Backup;
Câu 29: Khi thiết kế cơ sở dữ liệu quan hệ, khóa chính (Primary Key) có vai trò quan trọng nhất là gì?
- A. Liên kết bảng này với bảng khác.
- B. Tăng tốc độ truy vấn dữ liệu.
- C. Đảm bảo toàn vẹn dữ liệu tham chiếu.
- D. Định danh duy nhất mỗi bản ghi trong bảng.
Câu 30: Trong SQL, giao dịch (Transaction) được sử dụng để làm gì?
- A. Định nghĩa cấu trúc dữ liệu.
- B. Kiểm soát quyền truy cập dữ liệu.
- C. Đảm bảo tính toàn vẹn của dữ liệu khi thực hiện một chuỗi các thao tác.
- D. Tối ưu hóa hiệu suất truy vấn.