Phiếu bài tập Cơ sở dữ liệu và SQL có đáp án

Phiếu bài tập Cơ sở dữ liệu và SQL miễn phí để in: 8 bài từ cơ bản đến mức đề thi, kèm đáp án. In ra hoặc lưu thành PDF.

Dành cho giảng viên: miễn phí in, sao chép và sử dụng trên lớp. Mỗi phiếu bài tập mới có số liệu mới và đáp án riêng. Chúng tôi rất cảm ơn nếu bạn đặt liên kết đến ExamProblems trên trang môn học.

Tên: ____________________   Ngày: ____________

1.Dễ

GROUP BY làm gì trong một truy vấn?

  1. AĐặt các hàng có cùng giá trị vào các nhóm để các hàm tổng hợp được tính theo từng nhóm
  2. BLoại bỏ các hàng có giá trị NULL
  3. CNối hai bảng trên các cột chung của chúng
  4. DSắp xếp các hàng của kết quả theo thứ tự bảng chữ cái
2.Dễ

Khóa ứng viên (candidate key) là gì?

  1. AMột tập cột tối thiểu xác định duy nhất từng hàng
  2. BMột tập cột được chia sẻ giữa hai bảng để liên kết các hàng của chúng
  3. CBất kỳ cột nào chứa giá trị NULL
  4. DMột cột đang chờ trở thành khóa ngoại
3.Dễ

Ràng buộc UNIQUE trên một cột bảo đảm điều gì?

  1. AKhông có hai hàng nào có cùng một giá trị khác NULL trong cột đó
  2. BCác giá trị của cột được sắp xếp
  3. CCột đó tự động trở thành khóa chính của bảng
  4. DCột không thể thay đổi sau khi chèn
4.Trung bình

Truy vấn nào trả về số thành phố khác nhau trong bảng customers?

  1. ASELECT COUNT(city) FROM customers GROUP BY city
  2. BSELECT SUM(DISTINCT city) FROM customers
  3. CSELECT DISTINCT COUNT(city) FROM customers
  4. DSELECT COUNT(DISTINCT city) FROM customers
5.Trung bình

Vì sao một bảng chỉ có thể có một chỉ mục cụm (clustered index)?

  1. AChuẩn SQL cấm có nhiều hơn một chỉ mục trên một bảng
  2. BCác hàng chỉ có thể được lưu vật lý theo một thứ tự
  3. CChỉ mục cụm chỉ có thể nằm trên khóa chính
  4. DChỉ mục cụm dùng quá nhiều bộ nhớ
6.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?

  1. ATất cả các hàng của bảng
  2. BKhông có hàng nào, vì phép so sánh cho kết quả unknown
  3. CMột lỗi ở mọi cơ sở dữ liệu
  4. DChỉ những hàng mà col là NULL, giống như với IS NULL
7.Khó

Câu lệnh sau trả về gì: SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students)?

  1. AChỉ các sinh viên có điểm cao nhất
  2. BĐiểm trung bình của tất cả sinh viên
  3. CCác sinh viên có điểm cao hơn điểm trung bình
  4. DMột lỗi vì truy vấn con không được phép trong WHERE
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?

  1. AHầ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
  2. BKhông thể tạo chỉ mục trên cột Boolean
  3. CTRUE bị chỉ mục coi là NULL
  4. DBộ tối ưu hóa không bao giờ dùng chỉ mục trong mệnh đề WHERE

Đáp án

  1. 1. A · Đặt các hàng có cùng giá trị vào các nhóm để các hàm tổng hợp được tính theo từng nhóm
  2. 2. A · Một tập cột tối thiểu xác định duy nhất từng hàng
  3. 3. A · Không có hai hàng nào có cùng một giá trị khác NULL trong cột đó
  4. 4. D · SELECT COUNT(DISTINCT city) FROM customers
  5. 5. B · Các hàng chỉ có thể được lưu vật lý theo một thứ tự
  6. 6. B · Không có hàng nào, vì phép so sánh cho kết quả unknown
  7. 7. C · Các sinh viên có điểm cao hơn điểm trung bình
  8. 8. A · 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.