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:

  1. 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.
  2. 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.
  3. 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.