Khai báo từng trường
**Nhiệm vụ:** tạo bảng `nhacsi` trong CSDL trống `btvn19_lab`. Trên HeidiSQL 12.21 bản Linux đã kiểm, nháy phải tên CSDL → **Create new → Table**, đặt tên `nhacsi`. Chọn **Add** để thêm trường đầu, đổi tên thành `idNhacsi`, giữ kiểu `INT`, bỏ **Allow NULL** và chọn **AUTO_INCREMENT** ở ô Default. Mã số này do MySQL cấp khi thêm một hàng; nó khác mã giả N01 dạng chữ ở bài thiết kế trước.
Thêm trường `tenNhacsi`, chọn `VARCHAR`, Length/Set là 255, bỏ **Allow NULL**. Máy thử chọn **No default value** để khi thêm một nhạc sĩ phải nhập tên. SGK minh họa chuỗi rỗng mặc định; `NOT NULL` chỉ cấm NULL, chưa cấm người dùng cố nhập chuỗi rỗng. Tên bảng/trường trong bài dùng chữ không dấu, không có khoảng trắng để dễ gõ và thống nhất.
Chỉ định khóa rồi lưu
Chọn hàng `idNhacsi`, nháy phải → **Create new index → PRIMARY**. Trong thẻ **Indexes**, kiểm PRIMARY KEY chỉ gồm `idNhacsi`, không phải `tenNhacsi`; nếu chọn nhầm thì sửa trước khi lưu. Chọn **Save**. Bảng `nhacsi` hiện dưới CSDL trong cây. Mở lại để kiểm tên, kiểu, trạng thái không NULL và khóa chính.
Cấu trúc bảng sau khi lưu tương đương:
```sql
CREATE TABLE nhacsi (
idNhacsi INT NOT NULL AUTO_INCREMENT,
tenNhacsi VARCHAR(255) NOT NULL,
PRIMARY KEY (idNhacsi)
);
```
Nếu Save báo lỗi, kiểm tên/kiểu, AUTO_INCREMENT và PRIMARY. Không xóa bảng đã có khi chưa kiểm dữ liệu. Bảng mới vẫn trống; Bài 21 mới nhập dữ liệu.
Bài luyện
Trường nào làm PRIMARY KEY của bảng nhacsi trong ví dụ?
Hai người có thể trùng tên.
idNhacsi định danh mỗi hàng.
Một bảng chỉ có một khóa chính, có thể gồm nhiều trường khi cần.
Bảng trống vẫn cần thiết kế khóa.
Lời giải
idNhacsi là mã của từng nhạc sĩ nên được chọn làm PRIMARY KEY.
Bài luyện
Khi thêm một nhạc sĩ mà không nhập idNhacsi, AUTO_INCREMENT có tác dụng gì?
Tên thuộc trường tenNhacsi.
MySQL tạo mã mới theo cơ chế tăng tự động.
PRIMARY KEY không cho các hàng cùng mã.
Tạo bảng khác là thao tác riêng.
Lời giải
Cột INT AUTO_INCREMENT được MySQL cấp giá trị khi thêm hàng mà bỏ trống mã; PRIMARY KEY giữ mã duy nhất.
Bài luyện
Bảng xuất hiện trong cây sau Save. Muốn xác nhận thiết kế đúng, kiểm thêm điều gì?
Kích thước cửa sổ không phản ánh cấu trúc.
Biểu tượng chỉ cho thấy có đối tượng bảng.
Các trường và khóa là cấu trúc cần xác nhận.
Bảng vừa tạo có thể chưa có hàng.
Lời giải
Mở cấu trúc và kiểm idNhacsi INT tự tăng là PRIMARY KEY, tenNhacsi VARCHAR(255), không NULL.
Đang học