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ễ

Một khách hàng có thể đặt nhiều đơn hàng, nhưng mỗi đơn hàng thuộc về đúng một khách hàng. Đây là loại quan hệ nào?

  1. AKhông-không
  2. BMột-nhiều
  3. CNhiều-nhiều
  4. DMột-một
2.Dễ

INNER JOIN trả về:

  1. ACác hàng không khớp
  2. BTất cả các hàng từ bảng bên trái, với NULL ở nơi không có hàng khớp
  3. CTất cả các hàng từ cả hai bảng
  4. DChỉ các hàng có giá trị khớp trong cả hai bảng
3.Dễ

Khóa thay thế (surrogate key) là gì?

  1. AMột khóa tạo từ dữ liệu thực tế như địa chỉ email
  2. BMột khóa tham chiếu đến bảng khác
  3. CMột khóa chỉ dùng trong view
  4. DMột định danh nhân tạo không có ý nghĩa nghiệp vụ, như id tự tăng
4.Trung bình

Truy vấn nào trả về mức lương cao nhất trong mỗi phòng ban?

  1. ASELECT dept, MAX(salary) FROM emp GROUP BY dept
  2. BSELECT dept, salary FROM emp WHERE salary = MAX(salary)
  3. CSELECT MAX(dept), salary FROM emp GROUP BY salary
  4. DSELECT dept, MAX(salary) FROM emp ORDER BY dept
5.Trung bình

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

  1. ACác hàng chỉ có thể được lưu vật lý theo một thứ tự
  2. BChỉ mục cụm dùng quá nhiều bộ nhớ
  3. CChuẩn SQL cấm có nhiều hơn một chỉ mục trên một bảng
  4. DChỉ mục cụm chỉ có thể nằm trên khóa chính
6.Trung bình

SELECT SUM(amount) FROM orders trả về gì khi mệnh đề WHERE không khớp hàng nào?

  1. AMột lỗi
  2. BMột chuỗi rỗng
  3. CNULL
  4. D0
7.Khó

FULL OUTER JOIN trả về gì?

  1. AChỉ các hàng không khớp
  2. BChỉ các hàng khớp
  3. CTất cả các hàng từ cả hai bảng, ghép khớp khi có thể và điền NULL nếu không
  4. DTích Descartes, ghép mỗi hàng của bảng này với mọi hàng của bảng kia
8.Khó

Vì sao một truy vấn với WHERE YEAR(order_date) = 2025 có thể không dùng chỉ mục trên order_date?

  1. AChỉ mục không bao giờ hoạt động với ngày tháng
  2. BÁp dụng một hàm lên cột ngăn việc tra cứu phạm vi chỉ mục đơn giản
  3. CYEAR không phải là SQL hợp lệ
  4. DChỉ mục trên order_date chỉ được dùng cho mệnh đề ORDER BY, không bao giờ cho WHERE

Đáp án

  1. 1. B · Một-nhiều
  2. 2. D · Chỉ các hàng có giá trị khớp trong cả hai bảng
  3. 3. D · Một định danh nhân tạo không có ý nghĩa nghiệp vụ, như id tự tăng
  4. 4. A · SELECT dept, MAX(salary) FROM emp GROUP BY dept
  5. 5. A · Các hàng chỉ có thể được lưu vật lý theo một thứ tự
  6. 6. C · NULL
  7. 7. C · Tất cả các hàng từ cả hai bảng, ghép khớp khi có thể và điền NULL nếu không
  8. 8. B · Áp dụng một hàm lên cột ngăn việc tra cứu phạm vi chỉ mục đơn giản

Lời giải đầy đủ từng bước: hãy luyện chủ đề này trên examproblems.com.