Tạo bảng, sửa bảng để thêm khóa chính/ngoại

21/10/2024
CREATE TABLE, ALTER TABLE

Sau khi tạo tên CSDL, chúng ta sẽ tạo bảng dữ liệu gồm các trường (các cột)

1.Tạo bảng

CREATE TABLE

Cú pháp:

CREATE TABLE tên_bảng
(
   tên_trường_1   kiểu_dữ_liệu,
   tên_trường_2   kiểu_dữ_liệu
   …
);

Ví dụ:

Trong CSDL "Âm nhạc" Tạo bảng "tinh" để quản lý địa chỉ của nhạc sĩ, với các trường như hình 1

CREATE TABLE tinh
(
  idtinh int,
  tentinh varchar(30)
);

bangtinh.PNG (7 KB)

2. Sửa bảng

ALTER TABLE được sử dụng để:

- Thêm, xóa hoặc sửa đổi các cột trong một bảng hiện có.

- Thêm và xóa nhiều ràng buộc khác nhau trên một bảng hiện có.

Nhưng trong phạm vi bài học cơ bản, chúng ta sẽ tạo khóa chính/khóa ngoại cho bảng hiện có

2.1. Cú pháp thêm khóa chính vào bảng:

ALTER TABLE tên_bảng
ADD PRIMARY KEY (tên_cột_1, tên_cột_2,...);

Ví dụ:

Hãy tạo khóa chính cho bảng tinh

Hướng dẫn giải: bảng tinh cả 2 trường idtinh hoặc tentinh đều làm khóa chính được vì không có bản ghi nào trùng nhau nhưng idtinh có ít ký tự hơn nên chọn idtinh là khóa chính

ALTER TABLE tinh
ADD PRIMARY KEY (idtinh);

Kết quả thực hiện đoạn lệnh trên như hình dưới:

khoachinh.PNG (42 KB)2.2. Cú pháp thêm khóa ngoại vào bảng:

ALTER TABLE tên_bảng_1
ADD FOREIGN KEY (tên_cột) REFERENCES tên_bảng_2(tên_cột);

Ví dụ:

Hãy tạo khóa ngoại idtinh cho bảng nhacsi

ALTER TABLE nhacsi
ADD FOREIGN KEY idtinh REFERENCES tinh(idtinh);

mymusic.PNG (47 KB)


Bài tập


1. Hãy tạo bảng "huyen" để quản lý thêm huyện/quận mà  nhạc sĩ đang sinh sống.

2. Tạo khóa chính cho bảng huyen

3. Tạo khóa ngoại cho bảng huyen

Huyện/quận trực thuộc tỉnh nào nên trong bảng huyện/quận sẽ có thêm trường idtinh

Vì vậy:

- Các trường trong bảng huyện là: 

+ idhuyen: là mã huyện

+ tenhuyen: là tên huyện

+ idtinh: là mã tỉnh

- Khóa chính của bảng huyện là idhuyen

- Khóa ngoại của bảng huyện là idtinh

1. Truy vấn tạo bảng huyen:

CREATE TABLE huyen
(
idhuyen int,
tenhuyen varchar(30),
idtinh int
);

2. Truy vấn tạo khóa chính cho bảng huyen:

ALTER TABLE huyen
ADD PRIMARY KEY (idhuyen);

3. Truy vấn tạo khóa ngoại cho bảng huyen:

ALTER TABLE huyen
ADD FOREIGN KEY idhuyen REFERENCES tinh(idhyen);