Worksheetstin học
Total questions: 54
Worksheet time: 29mins
Trong cơ sở dữ liệu, bảng là gì?
Một hàng trong cơ sở dữ liệu
Một cột trong cơ sở dữ liệu
Một tập hợp các bản ghi cùng cấu trúc
Một tập hợp các khóa chín
Trường khóa trong một bảng dùng để làm
Xác định duy nhất mỗi bản ghi
Lưu trữ dữ liệu tạm thời
Liên kết dữ liệu giữa các bản
Lưu trữ dữ liệu dạng số
Khóa chính của một bảng có đặc điểm nào sau đây
Giá trị của nó không được phép trùng nhau
Không nhất thiết phải có trong bảng
Có thể có nhiều hơn một khóa chính trong một bảng
Không thể sử dụng làm khóa ngoại
Khóa ngoại được sử dụng để làm gì?
Xác định duy nhất một bản ghi trong bảng
Tăng tốc độ truy vấn dữ liệu
Liên kết dữ liệu giữa hai bảng khác nhau
Không có vai trò quan trọng trong cơ sở dữ liệu
Một bảng có thể có bao nhiêu khóa chính?
Một
hai
không giới hạn
Không có quy tắc cố định
Một bảng có thể có bao nhiêu khóa?
một
hai
không giới hạn
Không có quy tắc cố định
Một bảng có hai cột: Mã_sinh_viên (kiểu số) và Tên_sinh_viên (kiểu văn bản). Để làm khóa chính, bạn nên chọn cột nào?
Mã_sinh_viên vì mỗi sinh viên có một mã duy nhất
Tên_sinh_viên vì tên giúp nhận diện sinh viên
không cần chọn khoá chính
Cả hai vì đều là thông tin quan trọng
Khi thiết lập khóa ngoại, bảng chứa khóa ngoại sẽ:
Không cần có khóa chính
Dữ liệu bị xóa khi bảng chứa khóa chính bị xóa
Có thể chứa giá trị không trùng với bảng khóa chính
Tạo quan hệ giữa hai bảng nhưng không ràng buộc dữ liệu
Trong bảng DonHang(MaDH, MaKH, NgayDat), trường MaKH liên kết với bảng KhachHang. MaKH là:
khoá chính
khoá ngoài
chỉ mục
không có vai trò đặc biệt
Trong bảng Sinh viên(MãSV, HọTên, NgàySinh, Lớp), trường nào thích hợp làm khóa chính?
MãSV
họtên
ngàysinh
lớp
Một trường hợp nào sau đây cần sử dụng khóa ngoài?
Liên kết bảng Nhân viên và bảng Phòng ban
Lưu danh sách sản phẩm vào bảng Sản phẩm
Lưu email của khách hàng vào bảng Khách hàng
Tạo một bảng chứa danh sách sách trong thư viện
Nếu bảng Đơn hàng có khóa chính là Mã_đơn_hàng và bạn muốn liênkết với bảng Khách hàng, bạn cần:
Thêm Mã_khách_hàng vào bảng Đơn hàng làm khóa ngoài
Thêm Mã_đơn_hàng vào bảng Khách hàng làm khóa ngoài
không cần liên kết bảng
Sử dụng cả hai làm khóa chính của một bảng mới
Trong bảng Sách(MãSách, TênSách, TácGiả, NămXuấtBản), bạn cần khóa ngoài để liên kết với bảng Thể loại. Bạn nên:
Thêm MãThểLoại vào bảng Sách làm khóa ngoại
Thêm MãSách vào bảng Thể loại làm khóa ngoại
Thêm cả hai vào một bảng trung gian
Không thể liên kết hai bảng này
Cho 2 bảng dưới đây, làm thế nào để đảm bảo rằng mỗi đơn hàng phải có một khách hàng hợp lệ? KhachHang(MaKH, HoTen, DiaChi)
DonHang(MaDH, MaKH, NgayDat)
Đặt MaKH làm khóa ngoại trong bảng DonHang
Đặt MaKH làm khóa chính trong bảng KhachHang
Đặt MaKH làm khóa chính trong bảng DonHang
Không cần ràng buộc gì.
Trong bảng DiemThi(MaSV, MaMH, Diem, Loaidiem), trường nào được chọn làm khóa chính?
MaSV
MaMH
MaSV,MaMH
Loaidiem
Một cửa hàng quản lý thông tin sản phẩm bằng cách tạo cơ sở dữ liệu Quan_ly_cua_hang. Trong đó có bảng San_pham(Ma_SP, Ten_SP, Gia, So_luong). Chủ cửa hàng muốn:
• Ma_SP là khóa chính của bảng San_pham.
• Ten_SP không được trùng lặp giữa các sản phẩm.
Một số bạn học sinh có ý kiến cho rằng:
Trường Ma_SP được dùng làm khóa chính nên mỗi giá trị trong cột này phải là duy nhất?
Trường Gia có thể đặt làm khóa chính của bảng San_pham vì giá của mỗi sản phẩm thường khác nhau?
Việc đặt Ten_SP là khóa cấm trùng lặp giúp đảm bảo không có hai sản phẩm nào có cùng tên?
Nếu một sản phẩm hết hàng (So_luong = 0), sản phẩm đó sẽ tự động bị xóa khỏi bảng San_pham?
Một thư viện tạo cơ sở dữ liệu Quan_ly_thu_vien với bảng Sach(Ma_sach, Ten_sach, Tac_gia, Nam_xuat_ban). Quy định:
• Ma_sach là khóa chính của bảng Sach.
• Ten_sach có thể trùng lặp vì nhiều sách có thể có cùng tên.
• Nam_xuat_ban không được đặt làm khóa chính.
Một số bạn học sinh có ý kiến cho rằng
Ma_sach là khóa chính nên mỗi giá trị trong cột này phải là duy nhất?
Ten_sach có thể làm khóa chính vì mỗi quyển sách đều có tên riêng?
Khóa chính giúp phân biệt từng cuốn sách trong bảng Sach?
Nếu hai cuốn sách có cùng năm xuất bản, ta có thể dùng Nam_xuat_ban làm khóa chính?
Một công ty quản lý nhân viên bằng cơ sở dữ liệu Quan_ly_nhan_vien với bảng Nhan_vien(Ma_NV, Ho_ten, Chuc_vu, Luong). Yêu cầu:
• Ma_NV là khóa chính. Ho_ten có thể trùng lặp giữa các nhân viên.
• Không có trường nào trong bảng làm khóa cấm trùng lặp.
Một số bạn học sinh có ý kiến cho rằng:
Ma_NV là khóa chính nên mỗi nhân viên đều có một mã riêng?
Ho_ten có thể dùng làm khóa chính vì mỗi nhân viên có tên riêng?
Không có khóa cấm trùng lặp trong bảng Nhan_vien nên có thể có nhiều nhân viên trùng tên?
Nếu hai nhân viên có cùng chức vụ, ta có thể dùng Chuc_vu làm khóa chính?
Khóa ngoài trong cơ sở dữ liệu là gì?
Trường tham chiếu đến khóa chính của bảng khác.
Một trường chỉ chấp nhận giá trị rỗng (NULL).
Một trường có giá trị duy nhất trong bảng.
Một trường bắt buộc phải có giá trị số.
Khóa ngoài được sử dụng để:
Mỗi hàng trong bảng đều có giá trị duy nhất.
Liên kết dữ liệu giữa các bảng.
Xác định bảng có khóa chính.
Loại bỏ các hàng trùng lặp.
Trong bảng Hóa_đơn(Ma_HD, Ma_KH, Ngay_lap), nếu Ma_KH tham chiếu đến khóa chính của bảng Khach_hang, thì Ma_KH trong bảng Hóa_đơn là:
khoá chính
khoá cấm trùng lặp
khoá ngoài
khoá tổng hợp
Một bảng có thể có bao nhiêu khóa ngoài?
Chỉ một khóa ngoài
Không giới hạn số lượng
Tối đa hai khóa ngoài
Không có khóa ngoài nào
Để khai báo khóa ngoài trong SQL, bạn dùng từ khóa nào?
PRIMARY KEY
FOREIGN KEY
UNIQUE
CHECK
Mục đích của ràng buộc khóa ngoài là gì?
Giúp tự động tăng giá trị của khóa chính
Loại bỏ các hàng có giá trị NULL
Đảm bảo dữ liệu các bảng được liên kết
Tăng hiệu suất truy vấn dữ liệu
Tại sao khóa ngoài lại quan trọng trong việc quản lý cơ sở dữ liệu quan hệ?
Giúp tăng tốc độ truy vấn dữ liệu
Cho phép các hàng trùng lặp giữa các bảng
Đảm bảo tính toàn vẹn giữa các bảng
Giúp xác định khóa chính nhanh hơn
Trường nào trong bảng Bannhac(idBannhac, tenBannhac, idnhacsi) được thiết lập làm khóa ngoài?
idNhacsi
TenBanhac
idbannhac
Casi
CSDL Music, Bannhac(idBannhac, tenBannhac, idNhacsi). Trường idNhacsi sẽ tham chiếu đến bảng nào?
BanNhac
NhacSi
Banthuam
CaSi
Khi thiết kế một CSDL có khóa ngoại, điều quan trọng nhất là gì?
Phải có ít nhất 10 bảng
Phải có ít nhất 2 bảng và có liên kết với nhau
Chỉ cần một bảng là đủ
Phải đặt tất cả các cột là khóa chính
Lệnh nào được sử dụng để thêm dữ liệu mới vào bảng trong SQL?
UPDATE
DELETE
INSERT
SELECT
Lệnh SQL nào dùng để truy xuất tất cả các dữ liệu trong bảng SinhVien?
SELECT * FROM SinhVien;
GET ALL FROM SinhVien;
SHOW ALL SinhVien;
RETRIEVE * FROM SinhVien
Trong SQL, lệnh nào dùng để thay đổi dữ liệu của một hàng trong bảng?
INSERT
UPDATE
DELETE
Từ khóa nào trong SQL giúp sắp xếp kết quả truy vấn theo thứ tự tăng dần hoặc giảm dần?
SORT
ORDER BY
ARRANGE BY
GROUP BY
Lệnh SQL nào được sử dụng để xóa dữ liệu trong bảng SanPham khi mã sản phẩm là 101?
REMOVE FROM SanPham WHERE MaSP = 101;
DELETE FROM SanPham WHERE MaSP = 101;
DROP FROM SanPham WHERE MaSP = 101;
ERASE FROM SanPham WHERE MaSP = 101;
Để truy vấn tất cả các hàng trong bảng NhanVien có chức vụ là "Giám đốc", dùng lệnh nào?
SELECT * FROM NhanVien WHERE ChucVu = 'Giám đốc';
GET * FROM NhanVien WHEN ChucVu = 'Giám đốc';
SELECT ALL FROM NhanVien WHERE ChucVu = 'Giám đốc';
SHOW ALL NhanVien IF ChucVu = 'Giám đốc';
Câu lệnh SQL nào sau đây dùng để sắp xếp dữ liệu theo tên nhạc sĩ theo thứ tự tăng dần?
SELECT * FROM nhacsi ORDER BY tenNhacsi DESC
SELECT * FROM nhacsi ORDER BY tenNhacsi ASC
SELECT * FROM nhacsi ORDER BY idNhacsi
SELECT * FROM nhacsi WHERE ORDER BY tenNhacsi ASC
Để xem toàn bộ dữ liệu trong bảng "nhacsi" trong HeidiSQL, ta thực hiện thao tác nào?
Mở bảng "nhacsi" và chọn thẻ "Dữ liệu"
Chọn thẻ "Thiết kế bảng"
Chọn thẻ "Truy vấn", nhập câu truy vấn SQL
Mở bảng "nhacsi" và nhấn F5
Để tìm kiếm các bản ghi có tên nhạc sĩ bắt đầu bằng chữ "P", câu lệnh SQL nào là đúng?
SELECT * FROM nhacsi WHERE tenNhacsi = 'P%'
SELECT * FROM nhacsi WHERE tenNhacsi LIKE 'P%'x
SELECT * FROM nhacsi WHERE tenNhacsi LIKE '%P%'x
SELECT * FROM nhacsi WHERE tenNhacsi LIKE '%P'
Câu lệnh SQL nào dùng để lấy tất cả các trường trong bảng "nhacsi"?
SELECT * FROM nhacsi
SELECT nhacsi.* FROM nhacsi
SELECT idNhacsi, tenNhacsi FROM nhacsi
SELECT * FROM nhacsi WHERE idNhacsi > 0
Khi nhập dữ liệu vào bảng Bannhac(idbannhac,TenBN, idnhacsy) , tại sao không cần nhập giá trị cho
trường idBannhac ?
Vì trường idBannhac là trường khóa ngoại.
Vì trường idBannhac có kiểu dữ liệu AUTO_INCREMENT .
Vì trường idBannhac là trường không quan trọng.
Vì bảng bannhac không yêu cầu có trường idBannhac .
Trường idNhacsi trong bảng bannhac được gọi là gì?
Trường khóa chính.
Trường khóa ngoại.
Trường bình thường.
Trường không có tính năng gì đặc biệt
Khi nào người dùng không thể xóa dữ liệu trong bảng nhacsi
Khi trường idNhacsi còn được tham chiếu bởi bảng bannhac.
Khi trường idNhacsi chứa giá trị NULL
Khi bảng bannhac không có dữ liệu
Khi bảng nhacsi đã đầy
Để sửa dữ liệu trong bảng bannhac , người dùng cần làm gì?
Nháy đúp chuột vào ô dữ liệu cần sửa và nhập dữ liệu mới.
Xóa dữ liệu cũ và nhập lại dữ liệu mớ
Sử dụng lệnh SQL để cập nhật dữ liệu.
Xoá bảng và tạo lại
Tại sao MySQL ngăn chặn việc xóa dòng dữ liệu của nhạc sĩ Văn Cao trong bảng nhacsi ?
Vì nhạc sĩ Văn Cao có nhiều bản nhạc nổi tiến
Vì idNhacsi của Văn Cao đang được tham chiếu trong bảng bannhac .
Vì bảng nhacsi không cho phép xóa dữ liệu.
Vì không có chức năng xóa trong MySQL
Để thực hiện việc tìm kiếm bản nhạc của nhạc sĩ Văn Cao trong bảng bannhac , cần làm gì?
Lọc theo trường idBannhac .
Truy xuất theo thứ tự giảm dần của tên bản nhạc.
Lọc dữ liệu theo trường idNhacsi tương ứng với nhạc sĩ Văn Cao.
Không thể tìm kím
Khi nào có thể xóa một dòng dữ liệu trong bảng bannhac ?
Khi dòng đó không còn tham chiếu đến bất kỳ bảng nào khác.
Khi trường idBannhac có giá trị NULL.
Khi tất cả các bản nhạc đã được lưu trữ.
Khi người dùng muốn xóa mà không có điều kiện gì đặc biệt
Nếu phát hiện lỗi dữ liệu trong trường idNhacsi của dòng số 2 trong bảng bannhac , cách sửa lỗi là gì?
Xóa dòng số 2 và nhập lại dữ liệu.
Nháy đúp chuột vào ô chứa dữ liệu sai và sửa lại giá trị.
Sử dụng câu lệnh SQL để cập nhật dữ liệu.
Xóa bảng bannhac và nhập lại dữ liệu từ đầu.
Khi thêm dữ liệu mới vào bảng bannhac , việc chọn nhạc sĩ được thực hiện như thế nào?
Nhập trực tiếp tên nhạc sĩ vào trường idNhacsi
Chọn nhạc sĩ từ hộp danh sách liên kết với bảng nhacsi
Tạo mới một nhạc sĩ trước khi nhập dữ liệu.
Không cần chọn nhạc sĩ, chỉ cần nhập tên bản nhạc
Chức năng nào của hệ quản trị CSDL giúp ngăn chặn việc xóa dữ liệu có tham chiếu đến bảng khác?
AUTO_INCREMENT
Khóa chính (Primary Key).
Khóa ngoại (Foreign Key)
Chức năng tìm kiếm.
Trong một cửa hàng kinh doanh tập hoá. Để quản lý buôn bán tại cửa hàng, chủ cửa hàng cần 2 bảng
như sau:
Bảng DonHang (MaDH, NgayLap, MaKH)
Bảng KhachHang (MaKH, TenKH)
MaKH trong bảng DonHang là khóa ngoài tham chiếu đến MaKH trong bảng KhachHang.
Một số học sinh đưa ra ý kiến như sau:
Trường MaKH trong bảng DonHang có thể nhận bất kỳ giá trị nào, kể cả khi giá trị đó không tồn tại trong
bảng KhachHang?
Một đơn hàng chỉ có thể được thêm vào bảng DonHang nếu MaKH đã tồn tại trong bảng KhachHang?
Nếu bạn cố gắng xóa một khách hàng trong bảng KhachHang mà khách hàng này đã có đơn hàng trong bảng
DonHang thì sẽ xảy ra lỗi?
Câu lệnh sau sẽ thêm thành công một đơn hàng mới:
INSERT INTO DonHang (MaDH, NgayLap, MaKH)
VALUES (105, '2025-02-22', 101);
Biết rằng MaKH = 101 không tồn tại trong bảng KhachHang
Một trường học sử dụng hai bảng sau để quản lý học sinh và lớp học:
Bảng HocSinh (MaHS, TenHS, MaLop)
Bảng Lop (MaLop, TenLop)
MaLop trong bảng HocSinh là khóa ngoài tham chiếu đến MaLop trong bảng Lop.
Một số học sinh đưa ra ý kiến sau:
Một học sinh có thể được thêm vào bảng HocSinh với MaLop bất kỳ, kể cả khi MaLop đó không tồn tại trong
bảng Lop?
Một lớp học chỉ được thêm vào bảng Lop khi chưa có học sinh nào được thêm vào bảng HocSinh?
Nếu bạn xóa một lớp học trong bảng Lop mà lớp đó có học sinh, việc này sẽ gây ra lỗi?
Câu lệnh dưới đây sẽ thêm thành công một học sinh mới vào bảng HocSinh:
INSERT INTO HocSinh (MaHS, TenHS, MaLop)
VALUES (201, 'Nguyen Van A', 'L01');
Biết rằng L01 không tồn tại trong BangLop.
Thư viện quản lý thông tin sách và tác giả thông qua hai bảng sau:
Bảng Sach (MaSach, TenSach, MaTG)
Bảng TacGia (MaTG, TenTG)
MaTG trong bảng Sach là khóa ngoài tham chiếu đến MaTG trong bảng TacGia.
Một số học sinh đưa ra ý kiến như sau:
Một cuốn sách có thể có MaTG bất kỳ, không cần phải có trong bảng Tac
Bạn chỉ có thể thêm một cuốn sách vào bảng Sach nếu MaTG đã có trong bảng TacGia?
Nếu bạn cố gắng xóa một tác giả khỏi bảng TacGia mà tác giả này đã có sách trong bảng Sach, sẽ xảy ra lỗi?
Câu lệnh dưới đây sẽ thêm thành công một cuốn sách mới vào bảng Sach:
INSERT INTO Sach (MaSach, TenSach, MaTG)
VALUES (301, 'Lap Trinh Python', 501);
Biết rằng MaTG = 501 không tồn tại trong bảng TacGia
Một trung tâm đào tạo quản lý thông tin khóa học và giảng viên thông qua hai bảng:
Bảng KhoaHoc (MaKH, TenKH, MaGV)
Bảng GiangVien (MaGV, TenGV, Khoa)
MaGV trong bảng KhoaHoc là khóa ngoài tham chiếu đến MaGV trong bảng GiangVien.
Một số học sinh đưa ra ý kiến như sau:
Câu lệnh sau đây sử dụng INNER JOIN để lấy thông tin các khóa học và tên giảng viên:
SELECT KhoaHoc.TenKH, GiangVien.TenGV
FROM KhoaHoc
INNER JOIN GiangVien ON KhoaHoc.MaGV = GiangVien.MaGV;
Câu lệnh này sẽ chỉ trả về các khóa học có giảng viên phù hợp?
Nếu giảng viên không có khóa học nào thì giảng viên đó vẫn xuất hiện trong kết quả của INNER JOIN?
Lợi ích chính của INNER JOIN là giúp truy xuất dữ liệu liên quan giữa các bảng bằng cách kết hợp các hàng
có điều kiện phù hợp?
Xét câu truy vấn sau:
SELECT KhoaHoc.TenKH, GiangVien.TenGV
FROM KhoaHoc
INNER JOIN GiangVien ON KhoaHoc.MaGV = GiangVien.MaGV
WHERE KhoaHoc.TenKH = 'SQL cơ bản';
Câu lệnh này sẽ trả về tất cả giảng viên ngay cả khi họ không dạy khóa học "SQL cơ bản"?
Một trường học quản lý thông tin học sinh và lớp học thông qua hai bảng:
Bảng HocSinh (MaHS, TenHS, MaLop)
Bảng LopHoc (MaLop, TenLop, GVCN)
MaLop trong bảng HocSinh là khóa ngoài tham chiếu đến MaLop trong bảng LopHoc.
Một số học sinh đưa ra ý kiến như sau:
Câu lệnh sau sẽ trả về danh sách học sinh và tên lớp của họ:
SELECT HocSinh.TenHS, LopHoc.TenLop
FROM HocSinh
INNER JOIN LopHoc ON HocSinh.MaLop = LopHoc.MaLop;
Câu lệnh này chỉ trả về những học sinh có lớp hợp lệ?
Nếu một lớp học không có học sinh nào, nó vẫn sẽ xuất hiện trong kết quả của INNER JOIN?
INNER JOIN chỉ kết hợp các hàng từ cả hai bảng khi điều kiện ON đúng?
Xét câu truy vấn:
SELECT HocSinh.TenHS, LopHoc.TenLop
FROM HocSinh
INNER JOIN LopHoc ON HocSinh.MaLop = LopHoc.MaLop
WHERE LopHoc.TenLop = '10A1';
Câu lệnh trên sẽ hiển thị tất cả các học sinh, bất kể họ có thuộc lớp '10A1' hay không?
Một công ty quản lý thông tin nhân viên và phòng ban thông qua hai bảng:
Bảng NhanVien (MaNV, TenNV, MaPB)
Bảng PhongBan (MaPB, TenPB, TruongPhong)
MaPB trong bảng NhanVien là khóa ngoài tham chiếu đến MaPB trong bảng PhongBan.
Một số học sinh đưa ra ý kiến như sau:
Câu lệnh sau sẽ trả về thông tin nhân viên và phòng ban:
SELECT NhanVien.TenNV, PhongBan.TenPB
FROM NhanVien
INNER JOIN PhongBan ON NhanVien.MaPB = PhongBan.MaPB;
Kết quả chỉ bao gồm các nhân viên có phòng ban hợp lệ?
INNER JOIN sẽ trả về tất cả các phòng ban, dù phòng đó có nhân viên hay không?
Nếu muốn lấy thông tin nhân viên kể cả khi họ không thuộc phòng ban nào, ta phải dùng INNER JOIN?
Xét câu truy vấn:
SELECT NhanVien.TenNV, PhongBan.TenPB
FROM NhanVien
INNER JOIN PhongBan ON NhanVien.MaPB = PhongBan.MaPB
WHERE PhongBan.TenPB = 'Phòng Kinh Doanh';
Câu lệnh này sẽ hiển thị tất cả các nhân viên, bất kể họ có thuộc 'Phòng Kinh Doanh' hay không?
