1.Dễ
UNION làm gì với kết quả của hai truy vấn SELECT?
- ANối chúng cạnh nhau theo một khóa
- BKết hợp chúng thành một kết quả và loại bỏ các hàng trùng lặp
- CChỉ giữ các hàng có ở truy vấn thứ nhất mà không có ở truy vấn thứ hai
- DChỉ giữ các hàng xuất hiện ở cả hai
2.Dễ
Mệnh đề nào lọc các hàng trước khi nhóm?
- AORDER BY
- BGROUP BY
- CHAVING
- DWHERE
3.Dễ
Ràng buộc CHECK làm gì?
- AĐếm số hàng trong một bảng
- BKiểm tra xem một bảng có tồn tại hay không trước khi chạy truy vấn trên nó
- CXác minh mật khẩu của người dùng
- DTừ chối các hàng có giá trị không thỏa mãn một điều kiện
4.Trung bình
Một bảng có các hàng mà col là NULL. WHERE col = NULL trả về những hàng nào?
- AMột lỗi ở mọi cơ sở dữ liệu
- BChỉ những hàng mà col là NULL, giống như với IS NULL
- CTất cả các hàng của bảng
- DKhông có hàng nào, vì phép so sánh cho kết quả unknown
5.Trung bình
Truy vấn nào trả về số thành phố khác nhau trong bảng customers?
- ASELECT SUM(DISTINCT city) FROM customers
- BSELECT COUNT(city) FROM customers GROUP BY city
- CSELECT COUNT(DISTINCT city) FROM customers
- DSELECT DISTINCT COUNT(city) FROM customers
6.Trung bình
Bảng employees có cột manager_id tham chiếu đến một nhân viên khác. Làm thế nào để liệt kê mỗi nhân viên cùng với tên người quản lý của họ?
- ATạo một bản sao thứ hai của bảng trên đĩa
- BChỉ dùng GROUP BY manager_id
- CKết hợp bảng với chính nó bằng UNION ALL và một bộ lọc WHERE
- DNối bảng employees với chính nó bằng hai bí danh
7.Khó
Bảng enrolment(student_id, course_id, student_name, grade) có khóa (student_id, course_id). Nó vi phạm dạng chuẩn nào?
- AKhông vi phạm, nó đạt BCNF
- BChỉ dạng chuẩn thứ ba, vì grade phụ thuộc vào student_name
- CDạng chuẩn thứ nhất, vì cột grade không chứa giá trị nguyên tử
- DDạng chuẩn thứ hai, vì student_name chỉ phụ thuộc vào student_id
8.Khó
Sau customers LEFT JOIN orders, vì sao dùng COUNT(o.id) thay vì COUNT(*) để đếm đơn hàng của mỗi khách hàng?
- ACOUNT(*) không được phép sau một phép nối
- BCOUNT(o.id) chỉ đếm các khách hàng khác nhau
- CCOUNT(*) tính hàng điền NULL là 1 đối với khách hàng không có đơn hàng
- DCOUNT(*) bỏ qua các hàng có giá trị NULL
Đáp án
- 1. B · Kết hợp chúng thành một kết quả và loại bỏ các hàng trùng lặp
- 2. D · WHERE
- 3. D · Từ chối các hàng có giá trị không thỏa mãn một điều kiện
- 4. D · Không có hàng nào, vì phép so sánh cho kết quả unknown
- 5. C · SELECT COUNT(DISTINCT city) FROM customers
- 6. D · Nối bảng employees với chính nó bằng hai bí danh
- 7. D · Dạng chuẩn thứ hai, vì student_name chỉ phụ thuộc vào student_id
- 8. C · COUNT(*) tính hàng điền NULL là 1 đối với khách hàng không có đơn hàng
Lời giải đầy đủ từng bước: hãy luyện chủ đề này trên examproblems.com.