Trong MySQL, để thêm hoặc xóa cột trong một bảng đã tồn tại, bạn sử dụng lệnh ALTER TABLE
. Lệnh này cho phép bạn thay đổi cấu trúc của bảng mà không cần xóa hoặc tạo lại bảng mới.
1. Thêm cột vào bảng (ADD COLUMN
)
Để thêm một cột mới vào bảng, bạn sử dụng cú pháp:
ALTER TABLE table_name
ADD COLUMN column_name datatype constraints;
table_name
: Tên của bảng mà bạn muốn thêm cột.
column_name
: Tên của cột mới cần thêm.
datatype
: Kiểu dữ liệu của cột mới (như INT
, VARCHAR
, DATE
, v.v.).
constraints
(tùy chọn): Các ràng buộc cho cột (như NOT NULL
, UNIQUE
, DEFAULT
, v.v.).
Ví dụ:
Giả sử bạn có bảng users
và muốn thêm cột age
kiểu số nguyên (INT
), không được để trống (NOT NULL
):
ALTER TABLE users
ADD COLUMN age INT NOT NULL;
Nếu bạn muốn thêm một cột với giá trị mặc định:
ALTER TABLE users
ADD COLUMN gender VARCHAR(10) DEFAULT 'unknown';
2. Xóa cột khỏi bảng (DROP COLUMN
)
Để xóa một cột khỏi bảng, bạn sử dụng cú pháp:
ALTER TABLE table_name
DROP COLUMN column_name;
table_name
: Tên của bảng mà bạn muốn xóa cột.
column_name
: Tên của cột cần xóa.
Ví dụ:
Giả sử bạn muốn xóa cột age
khỏi bảng users
:
ALTER TABLE users
DROP COLUMN age;
3. Sửa đổi cột (MODIFY
hoặc CHANGE
)
Đôi khi bạn cần thay đổi kiểu dữ liệu hoặc ràng buộc của một cột đã tồn tại. Bạn có thể sử dụng lệnh MODIFY
hoặc CHANGE
.
a. Sử dụng MODIFY
:
ALTER TABLE table_name
MODIFY COLUMN column_name new_datatype new_constraints;
Ví dụ: Thay đổi kiểu dữ liệu của cột age
thành kiểu VARCHAR
với độ dài 3 ký tự:
ALTER TABLE users
MODIFY COLUMN age VARCHAR(3);
b. Sử dụng CHANGE
:
ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name new_datatype new_constraints;
Ví dụ: Đổi tên cột age
thành years_old
và thay đổi kiểu dữ liệu thành INT
:
ALTER TABLE users
CHANGE COLUMN age years_old INT;
Lưu ý quan trọng:
- Sao lưu dữ liệu trước khi thực hiện thay đổi cấu trúc: Trước khi xóa hoặc sửa đổi các cột, bạn nên sao lưu dữ liệu nếu cần thiết.
- Kiểm tra kiểu dữ liệu: Đảm bảo rằng kiểu dữ liệu của các cột phù hợp với dữ liệu hiện có khi thực hiện thay đổi.
- Ràng buộc: Các ràng buộc như
NOT NULL
, UNIQUE
, và DEFAULT
có thể được áp dụng trong quá trình thêm hoặc sửa đổi cột.