Font size
Worksheetshk2-tin11-tx1
Total questions: 87
Worksheet time: 44mins
Khóa ngoại (Foreign Key) là gì?
Là một khóa chính nằm ở một máy tính khác.
Là trường của một bảng tham chiếu đến khóa chính của một bảng khác.
Là trường không có giá trị.
Là trường dùng để đăng nhập vào hệ thống.
Mục đích chính của việc thiết lập khóa ngoại là gì?
Để bảng trông đẹp hơn.
Để tăng dung lượng lưu trữ.
Để liên kết dữ liệu giữa các bảng.
Để giảm số lượng bảng.
Để thiết lập mối liên kết giữa các bảng và đảm bảo tính toàn vẹn dữ liệu, cần làm gì?
Để thay thế khóa chính khi khóa chính bị mất.
Để thiết lập mối liên kết giữa các bảng và đảm bảo tính toàn vẹn dữ liệu.
Để thay thế khóa chính khi khóa chính bị mất.
Kiểu dữ liệu nào phù hợp nhất cho trường "Điểm trung bình"?
INTEGER (Số nguyên).
TEXT (Văn bản).
REAL hoặc FLOAT (Số thực).
DATE (Ngày tháng).
Kiểu dữ liệu VARCHAR(50) có ý nghĩa là gì?
Chuỗi ký tự có độ dài cố định là 50.
Chuỗi ký tự có độ dài thay đổi, tối đa 50 ký tự.
Số nguyên có 50 chữ số.
Ngày tháng năm của 50 năm.
Việc phân tích cấu trúc bảng nhằm mục đích gì?
Giảm thiểu dư thừa dữ liệu.
Tránh các lỗi khi cập nhật dữ liệu.
Dễ dàng truy xuất thông tin liên quan giữa các bảng.
Tất cả các phương án trên.
Trong quan hệ 1 - n (Một - Nhiều), khóa ngoại thường được đặt ở đâu?
Ở bảng bên phía "Một".
Ở bảng bên phía "Nhiều".
Ở cả hai bảng.
Không cần đặt khóa ngoại.
Nếu một bảng có khóa chính gồm 2 trường kết hợp lại, ta gọi đó là:
Khóa phụ.
Khóa ngoại.
Khóa phức hợp (khóa hợp thành).
Khóa ảo.
Một bảng có thể có tối đa bao nhiêu khóa chính?
0.
1.
2.
Không giới hạn.
Một bảng có thể có bao nhiêu khóa ngoại?
Chỉ 1.
Không có cái nào.
Có thể có nhiều khóa ngoại tùy vào các mối liên kết.
Phải bằng số lượng khóa chính.
Ràng buộc thực thể (Entity Integrity) yêu cầu:
Mỗi thực thể phải có một khóa chính duy nhất và không được để trống.
Mỗi thuộc tính đều phải là khóa ngoại.
Mỗi bảng chỉ có thể có một thuộc tính.
Mỗi thực thể phải có ít nhất hai khóa chính.
Khóa chính không được mang giá trị nào?
Giá trị Null
Giá trị số
Giá trị văn bản
Giá trị ngày tháng
Ràng buộc tham chiếu (Referential Integrity) liên quan đến yếu tố nào?
Khóa chính
Khóa ngoại
Kiểu dữ liệu số
Tên của cơ sở dữ liệu
Bước "Chọn kiểu dữ liệu" được thực hiện khi nào trong quá trình thiết kế cấu trúc bảng?
Sau khi đã nhập hết dữ liệu
Trong quá trình thiết kế cấu trúc bảng
Khi muốn xóa bảng
Khi kết xuất báo cáo
Để lưu trữ thông tin "Giới tính" (Nam/Nữ), kiểu dữ liệu nào tối ưu nhất?
LONG TEXT
BOOLEAN hoặc BIT (0/1)
DATE
FLOAT
Tại sao không nên chọn "Số điện thoại" làm khóa chính cho bảng Khách hàng?
Vì số điện thoại có thể thay đổi hoặc một số người dùng chung số
Vì số điện thoại quá dài
Vì số điện thoại không phải là dữ liệu số
Vì số điện thoại không thể lưu trữ trong cơ sở dữ liệu
Để tạo một CSDL mới trong HeidiSQL hoặc MySQL, ta dùng lệnh:
SELECT DATABASE.
CREATE DATABASE tên_csdl;
NEW DATABASE.
MAKE DATABASE.
Lệnh SQL nào dùng để tạo bảng mới?
NEW TABLE.
CREATE TABLE.
MAKE TABLE.
ADD TABLE.
Cú pháp đúng để định nghĩa một trường khóa chính khi tạo bảng là:
Primary Key (tên_trường).
tên_trường PRIMARY KEY.
Key_Primary (tên_trường).
Cả A và B đều có thể đúng tùy vào vị trí đặt lệnh.
Để xóa một bảng trong CSDL, ta dùng lệnh:
DELETE TABLE.
REMOVE TABLE.
DROP TABLE.
ERASE TABLE.
Khi thực hành trên HeidiSQL, để kết nối với máy chủ CSDL, thông tin nào thường KHÔNG bắt buộc nếu dùng local?
Địa chỉ IP/Hostname (thường là localhost).
Tên người dùng (User).
Mật khẩu (Password).
Địa chỉ email của người tạo.
Lệnh nào dùng để chọn CSDL làm việc hiện thời?
OPEN tên_csdl.
USE tên_csdl.
SELECT tên_csdl.
CONNECT tên_csdl.
Để xem cấu trúc của một bảng đã tạo, ta dùng lệnh:
SHOW TABLE.
DESCRIBE tên_bảng; (hoặc DESC).
VIEW TABLE.
LIST TABLE.
Khi tạo bảng, nếu muốn trường "ID" tự động tăng giá trị mỗi khi thêm bản ghi mới, ta dùng từ khóa:
AUTO_INCREMENT.
AUTO_NUMBER.
SELF_PLUS.
AUTO_ADD.
Để thêm một cột mới vào bảng đã có, ta dùng lệnh:
UPDATE TABLE ... ADD.
ALTER TABLE ... ADD.
MODIFY TABLE ... ADD.
CHANGE TABLE ... ADD.
Trong thực hành, bước nào cần thực hiện ĐẦU TIÊN?
Tạo các bảng.
Thiết lập khóa ngoại.
Tạo cơ sở dữ liệu (Database).
Nhập dữ liệu cho bảng.
Một CSDL quản lý thư viện có bảng SACH và bảng TACGIA. Mối quan hệ giữa Tác giả và Sách (một tác giả viết nhiều sách) là:
1 - 1.
1 - n.
n - n.
Không có quan hệ.
Đâu là một hệ quản trị CSDL mã nguồn mở phổ biến?
Microsoft Access.
MySQL.
Oracle.
SQL Server.
Khi nhập dữ liệu cho bảng có khóa ngoại, ta phải lưu ý điều gì?
Nhập bảng chứa khóa ngoại trước.
Giá trị khóa ngoại phải tồn tại trong bảng mà nó tham chiếu đến.
Khóa ngoại phải là số 0.
Không cần quan tâm.
Trong SQL, kiểu dữ liệu nào dùng cho văn bản dài (như nội dung bài viết)?
CHAR.
INT.
TEXT hoặc LONGTEXT.
DOUBLE.
Phát biểu nào sau đây là SAI?
Một bảng có thể không có khóa chính (nhưng không khuyến khích).
Khóa chính có thể gồm 3 trường.
Một bảng có thể có 2 khóa chính độc lập.
Khóa ngoại giúp duy trì tính liên kết dữ liệu.
Thao tác "Truy vấn dữ liệu" thuộc nhóm chức năng nào của DBMS?
Định nghĩa dữ liệu.
Thao tác dữ liệu.
Bảo mật dữ liệu.
Lưu trữ dữ liệu.
Để thiết lập giá trị mặc định cho một trường, ta dùng từ khóa:
DEFAULT.
SET.
AUTO.
FIXED.
Để đảm bảo dữ liệu trong trường "Tuổi" phải lớn hơn 0, ta dùng ràng buộc:
PRIMARY KEY.
CHECK.
UNIQUE.
FOREIGN KEY.
Trong giao diện HeidiSQL, tab nào cho phép viết và chạy các câu lệnh SQL?
Tab "Basic".
Tab "Structure".
Tab "Query".
Tab "Data".
Muốn thay đổi kiểu dữ liệu của một cột trong bảng, ta dùng lệnh:
ALTER TABLE ... MODIFY.
CHANGE TABLE ... TYPE.
UPDATE TABLE ... COLUMN.
DROP TABLE.
"Tính độc lập dữ liệu" có nghĩa là:
Dữ liệu có thể thay đổi mà không ảnh hưởng đến các chương trình ứng dụng.
Dữ liệu được lưu trữ ở nhiều nơi khác nhau.
Dữ liệu chỉ có thể truy cập bởi một người dùng tại một thời điểm.
Dữ liệu không thể bị thay đổi sau khi lưu.
Dữ liệu không cần lưu trên đĩa cứng.
Dữ liệu không cần lưu trên đĩa cứng.
Khi thay đổi cấu trúc lưu trữ vật lý, chương trình ứng dụng không phải thay đổi theo.
Dữ liệu của người này không liên quan đến người kia.
Mỗi bảng đứng độc lập, không liên kết.
Trong bảng BAN_NHAC, trường "idBanNhac" là khóa chính. Trong bảng BAN_THU_AM có trường "idBanNhac". Vậy "idBanNhac" trong bảng BAN_THU_AM là:
Khóa chính.
Khóa ngoại.
Trường bình thường.
Không được phép tồn tại.
Khi thiết kế CSDL, việc đầu tiên cần làm là:
Mở phần mềm và gõ lệnh SQL.
Xác định các thực thể và mối quan hệ giữa chúng (Thiết kế logic).
Nhập dữ liệu giả định.
Đi mua máy chủ.
Kiểu dữ liệu nào lưu trữ giá trị ngày và giờ?
TIME.
DATE.
DATETIME.
Cả A, B, C.
Từ khóa NOT NULL khi khai báo trường có tác dụng gì?
Cho phép để trống.
Không cho phép để trống.
Tự động điền giá trị.
Không có tác dụng gì.
Trong mô hình quan hệ, các bản ghi trong một bảng là:
Có thứ tự quan trọng.
Không phân biệt thứ tự.
Phải sắp xếp theo tên.
Phải sắp xếp theo ngày nhập.
Để xóa một cơ sở dữ liệu, lệnh nào là đúng?
DELETE DATABASE tên_csdl.
DROP DATABASE tên_csdl.
REMOVE DATABASE tên_csdl.
CLEAR DATABASE tên_csdl.
Mục đích của việc đặt tên trường không có dấu, không khoảng trắng là:
Cho đẹp.
Để DBMS dễ quản lý và tránh lỗi khi viết câu lệnh SQL.
Quy định của nhà nước.
Tiết kiệm bộ nhớ.
Một hệ thống quản trị CSDL có thể quản lý được:
Chỉ 1 CSDL duy nhất.
Nhiều CSDL khác nhau.
Chỉ các tệp Excel.
Không thể quản lý CSDL.
Sau khi tạo bảng và các trường, bước tiếp theo trong thực hành thường là:
Xóa bảng đi làm lại.
Thiết lập các ràng buộc khóa và nhập dữ liệu.
Tắt máy tính.
Cài lại hệ điều hành.
A
B
C
D
A
B
C
D
A
B
C
D
A
B
C
D
Lệnh SQL nào được dùng để thêm dữ liệu mới vào một bảng?
A. ADD INTO B. INSERT INTO C. UPDATE D. SELECT
A
B
C
D
Trong câu lệnh INSERT INTO, từ khóa nào dùng để chỉ định các giá trị cụ thể cần thêm?
A. SET B. FROM C. VALUES D. WHERE
A
B
C
D
Nếu bạn dùng lệnh DELETE FROM TableName mà không có mệnh đề WHERE, điều gì sẽ xảy ra?
A. Lỗi cú pháp. B. Chỉ xóa dòng đầu tiên.
C. Xóa toàn bộ dữ liệu trong bảng.
D. Xóa cấu trúc của bảng.
A
B
C
D
Lệnh nào dùng để truy xuất (đọc) dữ liệu từ các bảng?
A. GET B. FETCH C . SELECT D. SEARCH
A
B
C
D
Để chọn tất cả các cột từ một bảng trong câu lệnh SELECT, ta dùng ký tự nào?
A. @ B. # C. * D. &
A
B
C
D
Để sắp xếp kết quả truy vấn theo thứ tự tăng dần, ta dùng từ khóa nào sau ORDER BY?
A. DESC B. ASC C. UP D. TOP
A
B
C
D
Mệnh đề WHERE trong SQL có tác dụng gì?
A. Sắp xếp dữ liệu. B. Nhóm dữ liệu.
C. Lọc dữ liệu theo điều kiện. D. Liên kết các bảng.
A
B
C
D
Để xóa một dòng cụ thể trong bảng HocSinh có MaHS = 5, câu lệnh nào đúng?
A. DELETE * FROM HocSinh WHERE MaHS = 5
B. DROP FROM HocSinh WHERE MaHS = 5
C. REMOVE FROM HocSinh WHERE MaHS = 5
D. DELETE HocSinh WHERE MaHS = 5
A
B
C
D
Lệnh SELECT DISTINCT có tác dụng gì?
A. Chọn dữ liệu ngẫu nhiên.
B. Loại bỏ các dòng dữ liệu trùng lặp trong kết quả trả về.
C. Chọn dữ liệu từ nhiều bảng.
D. Sắp xếp dữ liệu giảm dần.
A
B
C
D
Để tìm kiếm các bản ghi có tên bắt đầu bằng chữ "A", ta dùng toán tử nào trong mệnh đề WHERE?
A. = B. BETWEEN C. LIKE D. IN
A
B
C
Đ
Trong SQL, giá trị chuỗi (văn bản) thường được đặt trong cặp dấu nào?
A. Dấu ngoặc kép (" ") hoặc đơn (' ') B. Dấu ngoặc nhọn { }
C. Dấu ngoặc vuông [ ] D. Không cần dấu gì
A
B
C
D
Mệnh đề ORDER BY dùng để làm gì?
A. Lọc dữ liệu. B. Cập nhật dữ liệu. C. Sắp xếp kết quả trả về. D. Xóa dữ liệu.
A
B
C
D
Để thêm một bản ghi vào bảng BanNhac(TenBanNhac), câu lệnh nào sau đây đúng cú pháp?
A. INSERT INTO BanNhac VALUES ('Bức Tường');
B. INSERT BanNhac SET TenBanNhac = 'Bức Tường';
C. ADD INTO BanNhac ('Bức Tường');
D. UPDATE BanNhac SET TenBanNhac = 'Bức Tường';
A
B
C
D
Ý nghĩa của từ khóa DESC trong ORDER BY là gì?
A. Sắp xếp tăng dần. B. Sắp xếp giảm dần. C. Chỉ lấy dữ liệu duy nhất. D. Mô tả cấu trúc bảng.
A
B
C
D
Giả sử bảng "SanPham" có cột "Gia". Câu lệnh nào lấy ra các sản phẩm có giá lớn hơn 500.000?
A. SELECT FROM SanPham HAVING Gia > 500000
B. SELECT FROM SanPham WHERE Gia > 500000
C. SELECT Gia > 500000 FROM SanPham
D. SELECT * WHERE Gia > 500000
A
B
C
D
Từ khóa ASC và DESC trong câu lệnh ORDER BY có ý nghĩa gì?
A. ASC là giảm dần, DESC là tăng dần. B. Cả hai đều là tăng dần.
C. ASC là tăng dần, DESC là giảm dần. D. Cả hai đều là giảm dần.
A
B
C
D
Trong SQL, để chọn các giá trị khác nhau (không trùng lặp), ta dùng từ khóa nào sau SELECT?
A. UNIQUE B. DISTINCT C. DIFFERENT D. ONLY
A
B
C
D
Để tìm kiếm các dòng có tên bắt đầu bằng chữ "A", ta sử dụng toán tử nào trong WHERE?
A. LIKE 'A%' B. LIKE '%A' C. CONTAINS 'A' D. START WITH 'A'
A
B
C
D
Thứ tự đúng của các từ khóa trong một câu lệnh truy vấn cơ bản là:
A. SELECT ... WHERE ... FROM ... B. FROM ... SELECT ... WHERE ...
C. SELECT ... FROM ... WHERE ... D. WHERE ... SELECT ... FROM ... Đáp án: C
A
B
C
D
Khi tạo trường tenNhacsi có kiểu dữ liệu VARCHAR(255) trong bảng nhacsi, giá trị mặc định của trường này là gì?
A. NULL
B. 0
C. ''(kí tự rỗng)
D. "Unknown"
A
B
C
D
Để thiết lập một trường là khóa chính, ta nháy chuột phải vào trường đó và chọn:
A. Create new index -> PRIMARY.
B. Create new index -> KEY.
C. Create new index -> UNIQUE.
D. Create new index -> FULLTEXT.
A
B
C
D
Khi chọn kiểu dữ liệu INT và thiết lập AUTO_INCREMENT, giá trị của trường đó sẽ:
A. Luôn bằng 0.
B. Tự động tăng dần cho mỗi bản ghi mới.
C. Do người dùng tự nhập thủ công.
D. Luôn là một chuỗi ký tự ngẫu nhiên.
A
B
C
D
A. Quy định cách so sánh và sắp xếp các ký tự văn bản.
B. Quy định tốc độ truy xuất dữ liệu.
C. Quy định số lượng bảng tối đa trong CSDL.
D. Quy định mật khẩu truy cập CSDL.
A
B
C
D
A. ADD DATABASE 'amnhac'.
B. CREATE DATABASE 'amnhac'.
C. NEW DATABASE 'amnhac'.
D. INSERT DATABASE 'amnhac'.
A
B
C
D
Khi một trường được thiết lập là PRIMARY KEY, biểu tượng nào thường xuất hiện bên cạnh tên trường đó trong tab "Indexes"?
A. Hình dấu cộng.
B. Hình chiếc chìa khóa màu vàng.
C. Hình dấu nhân màu đỏ.
D. Hình tam giác màu xanh.
A
B
C
D
Tại sao khi tạo CSDL amnhac lại được khuyến nghị dùng bộ mã utf8mb4 thay vì các bộ mã cũ hơn như utf8?
A. Vì utf8mb4 hỗ trợ đầy đủ các ki tự Unicode và các ki tự tiếng Việt phức tạp hơn.
B. Vì utf8mb4 giúp dung lượng CSDL nhỏ hơn 4 lần.
C. Vì các phiên bản HeidiSQL cũ không hỗ trợ utf8.
D. Vì utf8mb4 là bộ mã duy nhất cho phép tạo khóa chính.
A
B
C
D
Nếu bạn cần thêm một trường mới vào bảng nhacsi sau khi bảng đã được tạo, bạn sẽ thực hiện thao tác nào?
A. Xóa bảng và tạo lại từ đầu
B. Sử dụng phím tắt Ctrl+Insert hoặc nháy chuột phải và chọn Add column hoặc chọn Thêm mới.
C. Sửa trực tiếp trong mã lệnh SQL
D. Sử dụng tùy chọn ALTER TABLE
A
B
C
D
Nếu nhầm lẫn trong việc thiết lập khóa chính, làm sao để sửa lại?
A. Xóa khóa chính đã chọn nhầm và tạo lại
B. Khởi động lại phần mềm và chọn lại từ đầu
C. Sửa lại trực tiếp trong bảng và lưu lại
D. Không thể sửa, phải tạo lại bảng
A
B
C
D
Để thiết lập một trường hoặc một nhóm trường làm khóa cấm trùng lặp( UNIQUE), ta nháy chuột phải vào trường hoặc nhóm trường đó và chọn:
A. Create new index -> PRIMARY.
B. Create new index -> KEY.
C. Create new index -> UNIQUE.
D. Create new index -> FULLTEXT.
A
B
C
D
Cho cơ sở dữ liệu amnhac (âm nhạc) gồm các bảng nhacsi (nhạc sĩ) và bannhac (bản nhạc) có cấu trúc và được thiết lập mối quan hệ như sau:
· nhacsi (idNhacsi, tenNhacsi) — trong đó idNhacsi là khóa chính và có kiểu dữ liệu là INT.
· bannhac (idBannhac, tenBannhac, idNhacsi) — trong đó idBannhac là khóa chính, idNhacsi là khóa ngoài tham chiếu đến bảng nhacsi qua trường idNhacsi.
Dựa vào cơ sở dữ liệu trên , em hãy cho biết tại sao khi khai báo trường idNhacsi (khóa ngoài) trong bảng bannhac, chúng ta bắt buộc phải chọn kiểu dữ liệu cho nó là INT?
Vì nó là quy định bắt buộc của HeidiSQL.
Vì trường idNhacsi trong bảng tham chiếu nhacsi có kiểu là INT.
Vì số nguyên giúp máy tính xử lý nhanh hơn.
Vì tên nhạc sĩ không thể là số.
Cho cơ sở dữ liệu amnhac gồm các bảng nhacsi (nhạc sĩ) và bannhac (bản nhạc) có cấu trúc và được thiết lập mối quan hệ như sau:
· nhacsi (idNhacsi, tenNhacsi) — trong đó idNhacsi là khóa chính.
· bannhac (idBannhac, tenBannhac, idNhacsi) — trong đó idBannhac là khóa chính, idNhacsi là khóa ngoài tham chiếu đến bảng nhacsi qua trường idNhacsi.
Dựa vào cơ sở dữ liệu trên, em hãy cho biết ý nghĩa của việc khai báo khóa cấm trùng lặp (UNIQUE) cho cặp trường (tenBannhac, idNhacsi) trong bảng bannhac là gì?
A. Một nhạc sĩ có thể có nhiều bài hát trùng tên.
B. Đảm bảo một nhạc sĩ không có hai bài hát cùng tên trong cơ sở dữ liệu.
C. Để tăng tốc độ tìm kiếm tên bài hát.
D. Để tiết kiệm dung lượng bộ nhớ.
Trong thẻ Foreign keys, nếu ta không chọn cột "Foreign columns", điều gì sẽ xảy ra?
A. Bảng vẫn được tạo bình thường.
B. Hệ thống sẽ tự động chọn trường đầu tiên làm khóa.
C. Khai báo khóa ngoài không thành công vì thiếu cột tham chiếu tương ứng.
D. Khóa chính sẽ bị xóa.
A
B
C
D
Khi thiết lập khóa ngoài, hành động "ON UPDATE / ON DELETE" thường để mặc định là "NO ACTION".
Điều này có nghĩa là:
A. Dữ liệu sẽ tự động bị xóa khi bảng cha bị xóa.
B. Không cho phép xóa/sửa dữ liệu ở bảng cha nếu có dữ liệu liên kết ở bảng con.
C. Xóa dữ liệu ở bảng con sẽ làm mất dữ liệu bảng cha.
D. Không có tác dụng gì đối với tính toàn vẹn dữ liệu.
A
B
C
D
Để thay đổi thứ tự các trường trong bảng (ví dụ đưa idNhacsi lên trên tenBannhac), ta sử dụng công cụ nào?
A. Nút Thêm mới.
B. Nút Xóa.
C. Các nút mũi tên Up/Down.
D. Kéo thả trực tiếp bằng chuột.
A
B
C
D
Khi thực hiện khai báo khóa ngoài, nếu danh sách "Reference table" trống (không có bảng nào để chọn), nguyên nhân có thể là do:
A. Bạn chưa lưu các bảng khác vào cơ sở dữ liệu.
B. Bạn chưa cài đặt HeidiSQL đúng cách.
C. Bạn đang chọn sai thẻ công cụ.
D. Máy tính bị mất kết nối mạng.
A
B
C
D
Cho cơ sở dữ liệu amnhac (âm nhạc) gồm các bảng nhacsi (nhạc sĩ) và bannhac (bản nhạc) có cấu trúc được thiết lập mối quan hệ như sau:
· nhacsi (idNhacsi, tenNhacsi) — trong đó idNhacsi là khóa chính.
· bannhac (idBannhac, tenBannhac, idNhacsi) — trong đó idBannhac là khóa chính, idNhacsi là khóa ngoài tham chiếu đến bảng nhacsi qua trường idNhacsi.
Một học sinh vô ý thiết lập khóa cấm trùng lặp UNIQUE cho trường tenBannhac trong bảng bannhac. Điều này dẫn đến hệ quả gì không mong muốn?
A. Không thể nhập hai bài hát có tên giống nhau của hai nhạc sĩ khác nhau vào bảng bannhac.
B. Không thể nhập tên bài hát vào bảng bannhac.
C. Bài hát sẽ tự động bị xóa khỏi bảng bannhac.
C. Bài hát sẽ tự động bị xóa khỏi bảng bannhac.
