Giải SBT Tin học 11 KNTT Bài 20. Thực hành tạo lập các bảng và khoá ngoài có đáp án
6 câu hỏi
Trong một bảng, có thể chỉ định một trường làm khoá ngoài mà không cần chỉ ra tham chiếu đến một khoá chính của bảng khác không?
Trong một bảng, không thể chỉ định một trường làm khoá ngoài mà không cần chỉ ra tham chiếu đến một khoá chính của bảng khác.
Trong một bảng, có thể chỉ định một trường (a) làm khoá ngoài tham chiếu đến khoá chính (b) của một bảng khác mà a và b có kiểu dữ liệu khác nhau được không?
Trong một bảng, không thể chỉ định một trường (a) làm khoá ngoài tham chiếu đến khoá chính (b) của một bảng khác mà a và b có kiểu dữ liệu khác nhau.
Trong CSDL glhs, hãy tạo lập các bảng cho mục đích quản lí danh sách học
sinh trong một trường, gồm các thông tin mã học sinh, số CCCD, họ và tên, giới tính, ngày sinh, dân tộc, địa chỉ, năm vào trường, năm ra trường. Trong đó địa chỉ là thông tin về xã/phường nơi học sinh cư trú.
Danh sách các thông tin cần quản lí đã được nêu rõ trong đầu bài. Có thể lấy thông tin dân tộc là idDantoc – tham chiếu đến bảng dantoc, địa chỉ là idXa – tham chiếu đến bảng danh sách xã/phường trong các câu ở Bài 19. Đáp án: hocsinh (idHs, cccd, hovaten, gioitinh, ngaysinh, idDantoc, idXa, namvaotruong, namratruong).
Khoá chính là idHs; idDantoc và idXa là các khoá ngoài.
Có thể chọn kiểu nguyên không âm, tự động tăng cho idHs. Số cccd là kiểu xâu 12 kí tự, gioitinh kiểu 1 kí tự (0 – nam, 1 – nữ), ngaysinh kiểu date, namvaotruong, namratruong kiểu xâu 4 kí tự.
Dùng chức năng tạo lập bảng của HeidiSQL để tạo bảng.
Hoặc dùng câu truy vấn SQL:
CREATE TABLE qlhs.hocsinh (
);
idHs INT UNSIGNED NOT NULL AUTO_INCREMENT,
cccd CHAR(12),
hovaten VARCHAR(128),
gioitinh CHAR(1),
ngaysinh DATE,
idDantoc INT UNSIGNED NOT NULL,
idXa INT UNSIGNED NOT NULL,
namvaotruong CHAR(4),
namratruong CHAR(4),
PRIMARY KEY (idHs),
FOREIGN KEY (idDantoc) REFERENCES dantoc (idDantoc),
FOREIGN KEY (idXa) REFERENCES xa (idXa)
Hãy thực hiện và mô tả lại các thao tác đổi tên trường hovaten trong bảng hocsinh thành trường hoten.
Thực hiện các thao tác đổi tên trường dữ liệu bằng HeidiSQL như đã được trình bày chi tiết trong SGK hoặc thực hiện câu truy vấn SQL:
ALTER TABLE hocsinh
CHANGE COLUMN hovaten hoten VARCHAR(128);
Hãy thực hiện và mô tả lại các thao tác chỉnh sửa trường gioitinh trong bảng hocsinh thành trường có giá trị mặc định là 1.
Thực hiện các thao tác đổi tên trường dữ liệu bằng HeidiSQL như đã được trình bày chi tiết trong SGK hoặc thực hiện câu truy vấn SQL:
ALTER TABLE hocsinh
CHANGE COLUMN gioitinh gioitinh CHAR(1) DEFAULT “1”;
Trong CSDL qlhs, hãy tạo lập bảng danh sách học sinh – lớp học để quản lí danh sách học sinh trong các lớp học.
Mỗi học sinh trong một năm học chỉ thuộc về một lớp học.
Đáp án: lophs (idLop, idHs)
Khoá chính là (idLop, idHs), idLop và idHs là các khoá ngoài. Dùng chức năng tạo lập bảng của HeidiSQL để tạo bảng.
Hoặc dùng câu truy vấn SQL:
CREATE TABLE q1hs.lophs (
idLop INT UNSIGNED NOT NULL,
idHs INT UNSIGNED NOT NULL, PRIMARY KEY (idLop, idHs),
FOREIGN KEY (id Lop) REFERENCES lop (idLop),
FOREIGN KEY (idHs) REFERENCES lop (idHs)
);


