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ễ

UNION làm gì với kết quả của hai truy vấn SELECT?

  1. ANối chúng cạnh nhau theo một khóa
  2. 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
  3. CChỉ giữ các hàng có ở truy vấn thứ nhất mà không có ở truy vấn thứ hai
  4. 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?

  1. AORDER BY
  2. BGROUP BY
  3. CHAVING
  4. DWHERE
3.Dễ

Ràng buộc CHECK làm gì?

  1. AĐếm số hàng trong một bảng
  2. 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ó
  3. CXác minh mật khẩu của người dùng
  4. 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?

  1. AMột lỗi ở mọi cơ sở dữ liệu
  2. BChỉ những hàng mà col là NULL, giống như với IS NULL
  3. CTất cả các hàng của bảng
  4. 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?

  1. ASELECT SUM(DISTINCT city) FROM customers
  2. BSELECT COUNT(city) FROM customers GROUP BY city
  3. CSELECT COUNT(DISTINCT city) FROM customers
  4. 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ọ?

  1. ATạo một bản sao thứ hai của bảng trên đĩa
  2. BChỉ dùng GROUP BY manager_id
  3. CKết hợp bảng với chính nó bằng UNION ALL và một bộ lọc WHERE
  4. 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?

  1. AKhông vi phạm, nó đạt BCNF
  2. BChỉ dạng chuẩn thứ ba, vì grade phụ thuộc vào student_name
  3. CDạng chuẩn thứ nhất, vì cột grade không chứa giá trị nguyên tử
  4. 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?

  1. ACOUNT(*) không được phép sau một phép nối
  2. BCOUNT(o.id) chỉ đếm các khách hàng khác nhau
  3. CCOUNT(*) tính hàng điền NULL là 1 đối với khách hàng không có đơn hàng
  4. DCOUNT(*) bỏ qua các hàng có giá trị NULL

Đáp án

  1. 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. 2. D · WHERE
  3. 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. 4. D · Không có hàng nào, vì phép so sánh cho kết quả unknown
  5. 5. C · SELECT COUNT(DISTINCT city) FROM customers
  6. 6. D · Nối bảng employees với chính nó bằng hai bí danh
  7. 7. D · Dạng chuẩn thứ hai, vì student_name chỉ phụ thuộc vào student_id
  8. 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.