[kiemtraquiz]
Họ và tên: ............................................................................ Lớp: .......
| Photo by luis gomes: Hình minh hoạ |
Phần 1: Câu hỏi trắc nghiệm khách quan:
Câu 1: Trong câu lệnh JOIN, mệnh đề nào được sử dụng để chỉ định điều kiện liên kết giữa hai bảng?
A. ON.
B. GROUP BY.
C. ORDER BY.
D. WHERE.
Câu 2: Câu lệnh SQL nào sau đây được sử dụng để sửa đổi dữ liệu trong một bản ghi đã có?
A. SELECT.
B. UPDATE.
C. INSERT.
D. DELETE.
Câu 3: Trong CSDL quản lý bán hàng, muốn thay đổi thông tin của một khách hàng đã có nhiều đơn hàng, bạn cần cập nhật ở bảng nào trước tiên?
A. Bảng "Đơn hàng".
B. Bảng "Khách hàng".
C. Cả hai bảng.
D. Không cần cập nhật bảng nào.
Câu 4: Để lọc dữ liệu theo một điều kiện cụ thể, ta sử dụng mệnh đề nào trong câu lệnh SELECT?
A. GROUP BY.
B. ORDER BY.
C. WHERE.
D. HAVING.
Câu 5: Loại liên kết nào chỉ trả về các bản ghi có giá trị phù hợp ở cả hai bảng?
A. LEFT JOIN.
B. INNER JOIN.
C. RIGHT JOIN.
D. FULL OUTER JOIN.
Câu 6: Để xem tất cả dữ liệu trong một bảng, ta dùng câu lệnh SQL nào?
A. SELECT * FROM.
B. DELETE FROM.
C. UPDATE.
D. INSERT INTO.
Câu 7: Loại liên kết nào trả về tất cả bản ghi từ bảng bên trái và các bản ghi phù hợp từ bảng bên phải?
A. FULL OUTER JOIN.
B. RIGHT JOIN.
C. INNER JOIN.
D. LEFT JOIN.
Câu 8: Câu lệnh SQL nào sau đây được sử dụng để thêm một bản ghi mới vào bảng?
A. DELETE.
B. UPDATE.
C. INSERT.
D. SELECT.
Câu 9: Câu lệnh SQL nào sau đây được sử dụng để liên kết các bảng?
A. SELECT.
B. JOIN.
C. UPDATE.
D. DELETE.
Câu 10: Khi cập nhật dữ liệu trong bảng có khóa ngoài, điều gì cần được đảm bảo?
A. Dữ liệu nhập vào (cho trường không phải khóa ngoại) phải duy nhất.
B. Tất cả các đáp án trên.
C. Giá trị của khóa ngoài phải tồn tại trong bảng mà nó tham chiếu đến.
D. Dữ liệu nhập vào phải có kiểu dữ liệu phù hợp.
Câu 11: Khi cập nhật dữ liệu trong HeidiSQL, làm thế nào để lưu các thay đổi?
A. Các thay đổi được lưu tự động.
B. Nhấn nút "Lưu" trên thanh công cụ.
C. Nhấn tổ hợp phím Ctrl + S (hoặc Cmd + S trên macOS).
D. Cả B và C
Câu 12: Trong CSDL thư viện, muốn tìm tất cả cuốn sách mà một độc giả cụ thể đã mượn, bảng nào cần liên kết?
A. Bảng "Độc giả".
B. Bảng "Sách".
C. Bảng "Mượn trả".
D. Cả ba bảng trên.
Câu 13: Khi tạo khóa ngoài, bạn cần chỉ định điều gì?
A. Tên của khóa ngoài trong bảng con.
B. Tên của bảng cha.
C. Tất cả các đáp án trên.
D. Tên của khóa chính trong bảng cha.
Câu 14: Trong HeidiSQL, làm thế nào để tạo một truy vấn liên kết các bảng?
A. Chọn menu "Tệp", chọn "Tạo liên kết".
B. Sử dụng trình soạn thảo SQL và viết câu lệnh JOIN.
C. Kéo và thả các bảng vào vùng truy vấn, rồi thiết lập liên kết.
D. Cả B và C
Câu 15: Khi nào cần sử dụng truy vấn con (subquery) thay vì liên kết trực tiếp các bảng?
A. Khi cần lọc dữ liệu dựa trên kết quả từ một truy vấn khác.
B. Khi muốn thực hiện các phép toán phức tạp trên dữ liệu.
C. Khi không thể liên kết trực tiếp các bảng bằng khóa ngoài.
D. Khi muốn tăng tốc độ truy vấn.
Câu 16: Nếu bạn cố gắng nhập một giá trị khóa ngoài không tồn tại trong bảng cha, điều gì sẽ xảy ra?
A. Hệ thống sẽ tạo một bản ghi tạm thời trong bảng cha.
B. Hệ quản trị CSDL sẽ báo lỗi và không cho phép thực hiện.
C. Hệ thống sẽ bỏ qua giá trị khóa ngoài.
D. Hệ thống sẽ tự động thêm bản ghi vào bảng cha.
Câu 17: Điều gì xảy ra nếu bạn cố gắng xóa một bản ghi trong bảng cha mà bản ghi đó đang được tham chiếu bởi một khóa ngoài trong bảng con?
A. Hệ thống sẽ tự động xóa bản ghi trong bảng con.
B. Hệ thống sẽ tự động cập nhật giá trị khóa ngoài trong bảng con.
C. Hệ thống sẽ báo lỗi và ngăn bạn xóa bản ghi trong bảng cha.
D. Hệ thống sẽ xóa bản ghi trong bảng cha và đặt giá trị khóa ngoài trong bảng con thành NULL.
Câu 18: Trong một CSDL quản lý sinh viên, bảng "Lớp học" có khóa chính là "Mã lớp". Bảng "Sinh viên" có trường "Mã lớp" là khóa ngoài. Điều này cho phép:
A. Mỗi lớp học chỉ có một sinh viên.
B. Mỗi sinh viên chỉ có một lớp trưởng.
C. Mỗi lớp học có nhiều sinh viên.
D. Mỗi sinh viên thuộc về nhiều lớp học.
Câu 19: Trong CSDL quản lý thư viện, bảng "Sách" có khóa chính là "Mã sách". Bảng "Mượn trả" có trường "Mã sách". Trường "Mã sách" trong bảng "Mượn trả" là:
A. Trường thông thường.
B. Không phải là trường khóa.
C. Khóa ngoài.
D. Khóa chính.
Câu 20: Vì sao cần tạo khóa ngoài khi thiết kế CSDL?
A. Giúp giảm dung lượng của CSDL.
B. Để ràng buộc dữ liệu giữa các bảng, đảm bảo tính nhất quán.
C. Để dễ dàng tạo các báo cáo thống kê.
D. Giúp tăng tốc độ truy vấn.
Câu 21: Để tạo liên kết giữa hai bảng, điều kiện nào sau đây bắt buộc phải đúng?
A. Hai bảng phải có cùng số lượng trường.
B. Tên của khóa ngoài và khóa chính phải giống nhau.
C. Khóa ngoài và khóa chính phải có cùng kiểu dữ liệu.
D. Hai bảng phải nằm trong cùng một CSDL.
Câu 22: Trong HeidiSQL, thao tác nào sau đây được sử dụng để thêm một bản ghi mới vào bảng?
A. Nháy chuột phải vào bảng, chọn "Xóa bản ghi".
B. Nháy chuột phải vào bảng, chọn "Truy vấn dữ liệu".
C. Nháy chuột phải vào bảng, chọn "Cập nhật bản ghi".
D. Nhấn vào nút "Thêm bản ghi" (Insert Row).
Câu 23: Để cập nhật nhiều bản ghi cùng một lúc dựa trên một điều kiện, bạn sử dụng câu lệnh SQL nào?
A. SELECT ... GROUP BY.
B. DELETE FROM.
C. UPDATE ... WHERE.
D. INSERT INTO.
Câu 24: Sau khi cập nhật dữ liệu tham chiếu (liên quan đến khóa ngoài), bạn nên làm gì?
A. Sao lưu CSDL.
B. Kiểm tra lại dữ liệu để đảm bảo tính chính xác và toàn vẹn.
C. Khởi động lại máy chủ CSDL.
D. Tối ưu hóa CSDL.
Câu 25: Thuộc tính "ON DELETE CASCADE" có ý nghĩa gì khi tạo khóa ngoài?
A. Không có ý nghĩa gì cả.
B. Khi cập nhật một bản ghi trong bảng cha, các bản ghi liên quan trong bảng con cũng sẽ được cập nhật.
C. Khi xóa một bản ghi trong bảng cha, các bản ghi liên quan trong bảng con cũng sẽ bị xóa.
D. Khi xóa một bản ghi trong bảng con, bản ghi liên quan trong bảng cha cũng sẽ bị xóa.
Câu 26: Mục đích chính của việc sử dụng khóa ngoài là gì?
A. Để dễ dàng tạo báo cáo.
B. Để tăng tốc độ truy vấn dữ liệu.
C. Để tiết kiệm không gian lưu trữ.
D. Để đảm bảo tính toàn vẹn dữ liệu giữa các bảng.
Câu 27: Khi cập nhật dữ liệu có tham chiếu, điều gì quan trọng cần kiểm tra sau khi cập nhật?
A. Đảm bảo máy chủ CSDL hoạt động ổn định.
B. Đảm bảo dữ liệu đã được sao lưu.
C. Đảm bảo người dùng có quyền truy cập.
D. Đảm bảo tất cả các liên kết giữa các bảng vẫn còn hợp lệ (ràng buộc toàn vẹn).
Câu 28: Trong một CSDL bán hàng, bảng "Đơn hàng" có khóa ngoài tham chiếu đến bảng "Khách hàng". Nếu một khách hàng không còn mua hàng nữa, bạn nên làm gì?
A. Xóa khách hàng khỏi bảng "Khách hàng".
B. Không làm gì cả.
C. Cập nhật trạng thái/thêm cột 'Còn hoạt động' trong bảng "Khách hàng".
D. Xóa tất cả các đơn hàng của khách hàng đó.
Câu 29: Trong HeidiSQL, thao tác nào sau đây dùng để lọc dữ liệu?
A. Chọn menu "Sửa", chọn "Lọc".
B. Nháy đúp vào một trường dữ liệu.
C. Sử dụng hộp "Bộ lọc".
D. Chọn menu "Tệp", chọn "Lọc".
Câu 30: Khi cập nhật dữ liệu có liên quan tới giá trị của khoá ngoài, cần lưu ý điều gì?
A. Không cần quan tâm đến khóa ngoại khi cập nhật.
B. Giá trị khóa ngoại không cần tồn tại ở bảng tham chiếu.
C. Giá trị khóa ngoại có thể trùng lặp.
D. Giá trị khóa ngoại phải phù hợp với kiểu dữ liệu và tồn tại ở bảng tham chiếu.
Câu 31: Trong câu lệnh UPDATE, mệnh đề nào được sử dụng để xác định bản ghi nào sẽ bị thay đổi?
A. WHERE.
B. ORDER BY.
C. SET.
D. GROUP BY.
Câu 32: Khi truy xuất dữ liệu, làm thế nào để hiển thị danh sách theo thứ tự chữ cái của tên?
A. Sử dụng mệnh đề HAVING.
B. Sử dụng mệnh đề WHERE.
C. Sử dụng mệnh đề GROUP BY.
D. Sử dụng mệnh đề ORDER BY.
Câu 33: Mệnh đề nào sau đây được sử dụng để sắp xếp kết quả truy vấn?
A. WHERE.
B. ORDER BY.
C. HAVING.
D. GROUP BY.
Câu 34: Câu lệnh SQL nào sau đây được sử dụng để xóa một bản ghi khỏi bảng?
A. UPDATE.
B. INSERT.
C. SELECT.
D. DELETE.
Câu 35: Khi liên kết các bảng, điều gì quan trọng cần lưu ý về tên trường?
A. Không cần quan tâm đến tên trường.
B. Tên trường phải khác nhau ở cả hai bảng.
C. Nếu tên trường trùng nhau, cần sử dụng bí danh (alias) để phân biệt.
D. Tên trường phải giống nhau ở cả hai bảng.
Câu 36: Mục đích chính của việc truy xuất dữ liệu qua liên kết các bảng là gì?
A. Để kết hợp dữ liệu từ nhiều bảng khác nhau thành một kết quả duy nhất.
B. Để giảm dung lượng lưu trữ.
C. Để đơn giản hóa cấu trúc CSDL.
D. Để tăng tốc độ truy vấn.
Câu 37: Điều gì có thể xảy ra nếu bạn cập nhật khóa chính bảng cha mà không cập nhật khóa ngoài tương ứng (khi không có ON UPDATE CASCADE)?
A. Dữ liệu sẽ bị mất.
B. Không có vấn đề gì xảy ra.
C. Hệ thống sẽ tự động cập nhật khóa ngoài.
D. Các liên kết giữa các bảng sẽ bị hỏng (mất tính toàn vẹn tham chiếu).
Câu 38: Khái niệm nào sau đây mô tả đúng nhất về "khóa ngoài"?
A. Một trường xác định duy nhất mỗi bản ghi trong bảng.
B. Một trường chứa dữ liệu số.
C. Một trường dùng để liên kết với khóa chính của một bảng khác.
D. Một trường chứa dữ liệu văn bản.
Câu 39: Trong HeidiSQL, thao tác nào sau đây được sử dụng để chỉnh sửa dữ liệu trong một bảng?
A. Nháy đúp vào ô dữ liệu cần sửa.
B. Nháy chuột phải vào bảng, chọn "Truy vấn dữ liệu".
C. Nháy chuột phải vào bảng, chọn "Xóa bản ghi".
D. Nháy chuột phải vào bảng, chọn "Thêm bản ghi".
Câu 40: Để lấy danh sách tất cả các đơn hàng và thông tin khách hàng tương ứng, bạn cần liên kết bảng nào?
A. "Khách hàng" và "Sản phẩm".
B. "Sản phẩm" và "Chi tiết đơn hàng".
C. "Khách hàng" và "Đơn hàng".
D. "Đơn hàng" và "Sản phẩm".
Phần 2: Câu hỏi đúng sai:
Câu 41: Mục đích của việc sử dụng khóa ngoài là:
A. Tạo liên kết giữa các bảng.
B. Giúp tiết kiệm dung lượng lưu trữ.
C. Đảm bảo tính nhất quán của dữ liệu.
D. Tăng tốc độ truy vấn dữ liệu.
Câu 42: Điều gì cần lưu ý khi tạo khóa ngoài?
A. Khóa ngoài phải có cùng kiểu dữ liệu với khóa chính của bảng tham chiếu.
B. Khóa ngoài phải là duy nhất (UNIQUE).
C. Khóa ngoài tham chiếu đến khóa chính của bảng khác.
D. Tên của khóa ngoài phải giống với tên khóa chính của bảng tham chiếu.
Câu 43: Các thao tác cơ bản với dữ liệu trong bảng:
A. Thêm dữ liệu.
B. Sửa đổi dữ liệu.
C. Sao chép CSDL.
D. Thay đổi tên bảng.
Câu 44: Để truy xuất dữ liệu từ bảng, ta có thể:
A. Sử dụng câu lệnh SELECT.
B. Sắp xếp kết quả truy xuất.
C. Sử dụng câu lệnh INSERT.
D. Thay đổi cấu trúc bảng.
Câu 45: Khi cập nhật dữ liệu vào bảng có khóa ngoại, cần đảm bảo:
A. Dữ liệu nhập vào khóa ngoại phải có kiểu dữ liệu giống với khóa chính của bảng tham chiếu.
B. Dữ liệu nhập vào khóa ngoại phải là duy nhất.
C. Dữ liệu nhập vào khóa ngoại phải tồn tại trong bảng tham chiếu.
D. Dữ liệu nhập vào khóa ngoại có thể để trống.
Câu 46: Ứng dụng quản lí dữ liệu âm nhạc:
A. Cho phép sửa bản nhạc.
B. Cho phép xóa bản nhạc.
C. Chỉ cho phép xem danh sách bản nhạc.
D. Chỉ quản lí được tên bản nhạc và tên ca sĩ.
Câu 47: Để liên kết các bảng trong câu truy vấn SQL, sử dụng:
A. Mệnh đề WHERE.
B. Mệnh đề JOIN.
C. Khóa ngoại.
D. Hàm COUNT().
Câu 48: Điều kiện cần thiết để liên kết hai bảng bằng INNER JOIN:
A. Hai bảng phải có cùng số lượng trường.
B. Phải có ít nhất một trường có kiểu dữ liệu giống nhau.
C. Phải có khóa ngoại tham chiếu đến khóa chính của bảng kia.
D. Các bảng phải có dữ liệu.
Phần 3: Tự Luận
Câu hỏi 49: Cho CSDL quản lý thư viện gồm hai bảng:
Sach (MaSach, TenSach, TacGia, NamXB)
MuonTra (MaMT, MaSach, MaThe, NgayMuon, NgayTra)
MaSach là khóa ngoại liên kết với bảng Sach.
Viết câu truy vấn SQL để lấy danh sách tất cả các sách (MaSach, TenSach) được xuất bản sau năm 2010.
Câu hỏi 50: Cho CSDL quản lý nhân viên gồm hai bảng:
NhanVien (MaNV, HoTen, PhongBan)
Luong (MaNV, Thang, SoTien)
MaNV là khóa ngoại liên kết với bảng NhanVien.
Viết câu truy vấn SQL để lấy danh sách tất cả các nhân viên (MaNV, HoTen) thuộc phòng ban "Kế toán".
Câu hỏi 51: Cho CSDL quản lý sinh viên gồm hai bảng:
SinhVien (MaSV, HoTen, Lop)
KetQua (MaSV, MaMH, Diem)
MaSV là khóa ngoại liên kết với bảng SinhVien.
Viết câu truy vấn SQL để lấy danh sách tất cả các sinh viên (MaSV, HoTen) thuộc lớp "11A1".
Câu hỏi 52: Cho CSDL quản lý sản phẩm gồm hai bảng:
SanPham (MaSP, TenSP, Gia)
DonHang (MaDH, MaSP, SoLuong)
MaSP là khóa ngoại liên kết với bảng SanPham.
Viết câu truy vấn SQL để lấy danh sách tất cả các sản phẩm (MaSP, TenSP) có giá lớn hơn 100000.
Câu hỏi 53: Cho CSDL quản lý khách hàng và đơn hàng:
KhachHang (MaKH, TenKH, DiaChi)
DonHang (MaDH, MaKH, NgayDat, TongTien)
MaKH là khóa ngoại liên kết với bảng KhachHang.
Viết câu truy vấn SQL để lấy danh sách tất cả các khách hàng (MaKH, TenKH) ở địa chỉ "Hà Nội".
[dapan=1A,2B,3B,4C,5B,6A,7D,8C,9B,10C,11D,12D,13C,14D,15A,16B,17C,18C,19C,20B,21C,22D,23C,24B,25C,26D,27D,28C,29C,30D,31A,32D,33B,34D,35C,36A,37D,38C,39A,40C,41DSDS,42DSDS,43DDSS,44DDSS,45DSDD,46DDSS,47DDDS,48SDDS]