1.Dễ
Các câu lệnh như CREATE, ALTER và DROP thuộc phần nào của SQL?
- ANgôn ngữ điều khiển giao dịch (TCL)
- BNgôn ngữ định nghĩa dữ liệu (DDL)
- CNgôn ngữ điều khiển dữ liệu (DCL)
- DNgôn ngữ thao tác dữ liệu (DML)
2.Dễ
Câu lệnh SQL nào truy xuất dữ liệu từ một bảng?
- AINSERT
- BUPDATE
- CSELECT
- DCREATE
3.Dễ
COMMIT làm gì trong một giao dịch?
- AHoàn tác mọi thay đổi đã thực hiện kể từ khi giao dịch bắt đầu
- BKhóa toàn bộ cơ sở dữ liệu
- CLàm cho mọi thay đổi của giao dịch trở thành vĩnh viễn
- DBắt đầu một bảng mới
4.Trung bình
Bảng a có 3 hàng và bảng b có 4 hàng. SELECT * FROM a CROSS JOIN b trả về bao nhiêu hàng?
- A7
- B3
- C4
- D12
5.Trung bình
Truy vấn nào trả về mức lương cao nhất trong mỗi phòng ban?
- ASELECT dept, MAX(salary) FROM emp GROUP BY dept
- BSELECT dept, salary FROM emp WHERE salary = MAX(salary)
- CSELECT dept, MAX(salary) FROM emp ORDER BY dept
- DSELECT MAX(dept), salary FROM emp GROUP BY salary
6.Trung bình
Vì sao SELECT price * 2 AS double_price FROM t WHERE double_price > 10 thất bại ở hầu hết các cơ sở dữ liệu?
- ABí danh không được chứa dấu gạch dưới
- BPhép tính số học không được phép trong danh sách SELECT
- CWHERE chỉ có thể so sánh các cột văn bản
- DWHERE được đánh giá trước danh sách SELECT, nên bí danh chưa tồn tại
7.Khó
Có một chỉ mục phức hợp trên (last_name, first_name). Điều kiện nào có thể dùng nó hiệu quả nhất?
- AWHERE first_name = 'Eva'
- BWHERE UPPER(first_name) = 'EVA'
- CWHERE last_name = 'Jansen'
- DWHERE first_name LIKE '%a'
8.Khó
Một bảng có một triệu hàng và một cột Boolean is_active là TRUE với 95% số hàng. Vì sao bộ tối ưu hóa có thể bỏ qua chỉ mục trên is_active cho WHERE is_active = TRUE?
- ABộ tối ưu hóa không bao giờ dùng chỉ mục trong mệnh đề WHERE
- BKhông thể tạo chỉ mục trên cột Boolean
- CHầu hết các hàng đều khớp, nên quét toàn bộ bảng rẻ hơn nhiều lần tra cứu chỉ mục
- DTRUE bị chỉ mục coi là NULL
Đáp án
- 1. B · Ngôn ngữ định nghĩa dữ liệu (DDL)
- 2. C · SELECT
- 3. C · Làm cho mọi thay đổi của giao dịch trở thành vĩnh viễn
- 4. D · 12
- 5. A · SELECT dept, MAX(salary) FROM emp GROUP BY dept
- 6. D · WHERE được đánh giá trước danh sách SELECT, nên bí danh chưa tồn tại
- 7. C · WHERE last_name = 'Jansen'
- 8. C · Hầu hết các hàng đều khớp, nên quét toàn bộ bảng rẻ hơn nhiều lần tra cứu chỉ mục
Lời giải đầy đủ từng bước: hãy luyện chủ đề này trên examproblems.com.