Xem trước: đọc nhanh mọi câu dạng chữ, chưa tính giờ, chưa hiện đáp án. Luyện tập: chọn đáp án là biết đúng sai ngay, kèm lời giải. Thi thử: nộp bài mới chấm điểm và hiện lời giải.
Câu 1
Khi thiết kế bảng NhanVien, một cột SoCMND được khai báo với ràng buộc UNIQUE. Một cột khác, MaNV, được khai báo là PRIMARY KEY. Phát biểu nào sau đây diễn giải đúng nhất hệ quả của các khai báo này?
Đáp án và lời giải
Đáp án: B
Câu 2
Một lập trình viên thực thi câu lệnh SQL sau trên một bảng SanPham có 1.000.000 dòng: UPDATE SanPham SET Gia = Gia * 1.1; Hệ quả trực tiếp và nguy hiểm nhất của việc thiếu mệnh đề WHERE trong câu lệnh này là gì?
Đáp án và lời giải
Đáp án: C
Câu 3
Phân tích sự khác biệt giữa hai câu truy vấn sau: (1) SELECT * FROM SinhVien sv LEFT JOIN Lop l ON sv.MaLop = l.MaLop WHERE l.TenLop = ‘CNTT1’; (2) SELECT * FROM SinhVien sv LEFT JOIN Lop l ON sv.MaLop = l.MaLop AND l.TenLop = ‘CNTT1’;
Đáp án và lời giải
Đáp án: B
Câu 4
Cho bảng DangKy(MaSV, MaMH) với dữ liệu: (SV01, MH01), (SV01, MH02), (SV02, MH01), (SV03, NULL). Kết quả của câu lệnh SELECT COUNT(*), COUNT(MaMH), COUNT(DISTINCT MaSV) FROM DangKy; lần lượt là gì?
Đáp án và lời giải
Đáp án: D
Câu 5
Người quản trị CSDL muốn thay đổi kiểu dữ liệu của cột Diem trong bảng KetQua từ VARCHAR(5) sang DECIMAL(4,2). Tuy nhiên, trong cột Diem đang tồn tại một giá trị là ‘Không thi’. Điều gì sẽ xảy ra khi thực thi lệnh ALTER TABLE KetQua MODIFY Diem DECIMAL(4,2);?
Đáp án và lời giải
Đáp án: B
Câu 6
Để kết hợp kết quả từ hai câu truy vấn có cùng cấu trúc, UNION và UNION ALL đều có thể được sử dụng. Trong trường hợp nào thì việc sử dụng UNION ALL là một lựa chọn tối ưu hơn về mặt hiệu năng?
Đáp án và lời giải
Đáp án: B
Câu 7
Xét hai cách truy vấn để tìm tên các phòng ban có nhân viên tên ‘An’: (1) SELECT TenPB FROM PhongBan WHERE MaPB IN (SELECT MaPB FROM NhanVien WHERE HoTen = ‘An’); (2) SELECT DISTINCT pb.TenPB FROM PhongBan pb JOIN NhanVien nv ON pb.MaPB = nv.MaPB WHERE nv.HoTen = ‘An’; Phát biểu nào sau đây là đúng nhất trong hầu hết các hệ quản trị CSDL hiện đại?
Đáp án và lời giải
Đáp án: C
Câu 8
So sánh DELETE FROM TableA và TRUNCATE TABLE TableA, phát biểu nào sau đây KHÔNG chính xác?
Đáp án và lời giải
Đáp án: D
Câu 9
Thứ tự thực thi logic của các mệnh đề trong một câu lệnh SELECT là gì?
Đáp án và lời giải
Đáp án: C
Câu 10
Một VIEW được tạo ra từ câu lệnh SELECT nối 3 bảng lại với nhau và có sử dụng hàm SUM() trong danh sách cột. Khi người dùng cố gắng thực hiện lệnh INSERT vào VIEW này, điều gì rất có thể sẽ xảy ra?
Đáp án và lời giải
Đáp án: B
Câu 11
Để tìm tất cả sản phẩm có tên bắt đầu bằng ‘Laptop’ và có đúng 4 ký tự theo sau (ví dụ: ‘Laptop Pro’, ‘Laptop Air’), biểu thức LIKE nào là chính xác nhất?
Đáp án và lời giải
Đáp án: B
Câu 12
Câu lệnh SELECT MaNV FROM NhanVien EXCEPT SELECT MaNV FROM PhanCong; sẽ trả về kết quả gì?
Đáp án và lời giải
Đáp án: C
Câu 13
Một ràng buộc khóa ngoại được định nghĩa với tùy chọn ON DELETE CASCADE. Điều này có ý nghĩa gì khi một bản ghi ở bảng được tham chiếu (bảng cha) bị xóa?
Đáp án và lời giải
Đáp án: B
Câu 14
Biểu thức CASE trong SQL được sử dụng để làm gì?
Đáp án và lời giải
Đáp án: B
Câu 15
Trong mệnh đề ORDER BY, từ khóa DESC có ý nghĩa là gì?
Đáp án và lời giải
Đáp án: B
Câu 16
Để tính tổng doanh thu (SoLuong * DonGia) cho mỗi đơn hàng, câu lệnh nào sau đây đúng cú pháp và cho kết quả chính xác?
Đáp án và lời giải
Đáp án: C
Câu 17
Cho bảng SinhVien(MaSV, HoTen, DiemTB). Câu lệnh nào sau đây sẽ trả về 5 sinh viên có điểm trung bình cao nhất?
Đáp án và lời giải
Đáp án: D
Câu 18
Sự khác biệt chính giữa FULL OUTER JOIN và INNER JOIN là gì?
Đáp án và lời giải
Đáp án: B
Câu 19
Mục đích của câu lệnh CREATE INDEX idx_hoten ON NhanVien(HoTen); là gì?
Đáp án và lời giải
Đáp án: B
Câu 20
Câu lệnh SELECT MaGV FROM GiangDay WHERE MaMH = ‘MH01’ INTERSECT SELECT MaGV FROM GiangDay WHERE MaMH = ‘MH02’; dùng để tìm:
Đáp án và lời giải
Đáp án: B
Câu 21
Trong SQL, NULL có nghĩa là gì và kết quả của biểu thức NULL = NULL là gì?
Đáp án và lời giải
Đáp án: C
Câu 22
Khi nào thì nên sử dụng kiểu dữ liệu NVARCHAR thay vì VARCHAR?
Đáp án và lời giải
Đáp án: C
Câu 23
Mệnh đề GROUP BY trong SQL được sử dụng để:
Đáp án và lời giải
Đáp án: C
Câu 24
Câu lệnh GRANT SELECT, INSERT ON KHACHHANG TO NhomKinhDoanh; có tác dụng gì?
Đáp án và lời giải
Đáp án: A
Câu 25
Một “truy vấn con tương quan” (correlated subquery) là một truy vấn con mà:
Đáp án và lời giải
Đáp án: B
Câu 26
DROP TABLE SinhVien; và DROP DATABASE QuanLySV; khác nhau như thế nào?
Đáp án và lời giải
Đáp án: C
Câu 27
Khối lệnh BEGIN TRANSACTION … COMMIT; trong SQL được sử dụng để làm gì?
Đáp án và lời giải
Đáp án: B
Câu 28
Phép toán CROSS JOIN giữa hai bảng A (có 10 hàng) và B (có 20 hàng) sẽ tạo ra một tập kết quả có bao nhiêu hàng?
Đáp án và lời giải
Đáp án: D
Câu 29
Trong mệnh đề WHERE, toán tử BETWEEN được sử dụng như thế nào? Ví dụ: WHERE Gia BETWEEN 100 AND 200.
Đáp án và lời giải
Đáp án: B
Câu 30
Tại sao câu lệnh SELECT MaLop, AVG(DiemTB) FROM SinhVien WHERE AVG(DiemTB) > 5.0 GROUP BY MaLop; lại sai cú pháp?