Nếu bạn cần chỉnh sửa lại cấu trúc của một bảng như thêm/xoá một hay nhiều cột, các chỉ mục, các khoá, … câu lệnh sau sẽ giúp bạn với cú pháp tổng quát là:
ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...]
alter_specification ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
or ADD [COLUMN] (create_definition, create_definition,...)
or ADD INDEX [index_name] (index_col_name,...) or ADD PRIMARY KEY (index_col_name,...)
or ADD UNIQUE [index_name] (index_col_name,...) or ADD FULLTEXT [index_name] (index_col_name,...) or ADD [CONSTRAINT symbol] FOREIGN KEY
index_name (index_col_name,...)
[reference_definition] or ALTER [COLUMN] col_name
{SET DEFAULT literal | DROP DEFAULT} or CHANGE [COLUMN] old_col_name create_definition
or DROP [COLUMN] col_name or DROP PRIMARY KEY or DROP INDEX index_name or RENAME [TO] new_tbl_name or ORDER BY col
or table_options ( tương tự như option của câu lệnh Create)
Lưu ý rằng trong ANSI SQL chỉ sửa đổi trên một cột bằng lệnh ALTER TABLE, nhưng MySQL thì cho phép ta sửa được nhiều cột hơn. Mỗi mệnh đề sửa đổi có thể được dùng để thay đổi nhiều phần khác nhau của bảng như mô tả chi tiết dưới đây.
Cú pháp Chú thích
ADD [COLUMN]
column_name column_type
[FIRST | AFTER column_name ]
Thêm một cột mới vào vị trí được chỉ định (nếu chưa được chỉ định thì cột mới sẽ thêm vào cuối).
ADD [COLUMN]
(column_name1 column_type,
column_name2 column_type, … )
Thêm một hay nhiều cột mới vào cuối bảng.
ADD INDEX [index]
(column_name1, column_name2, … )
Thêm một chỉ mục vào một hay nhiều cột trong bảng.
ADD PRIMARY KEY
(column_name1, column_name2, … )
Các cột có tên trong danh sách sẽ là khoá chính trong bảng.
ADD UNIQUE [index]
(column_name1, column_name2, … )
Thêm một chỉ mục duy nhất tại các cột có trong danh sách chỉ định trong bảng.
ALTER [COLUMN] column_name
{ SET DEFAULT new_value | DROP DEFAULT}
Khởi tạo giá trị mặc định mới cho một cột hoặc xoá giá trị mặc định.
CHANGE [COLUMN]
column_name new_column_name new_column_type
Đổi tên mới và kiểu dữ liệu mới cho cột có tên column_name.
MODIFY [COLUMN]
column_name column_type Tương tự như CHANGE nhưng ta có thể sử dụng để đổi kiểu dữ liệu của cột mà không cần đổi tên cột.
DROP [COLUMN] column_name Xóa một cột có tên column_name khỏi bảng.
DROP PRIMARY KEY Xóa khoá chính trong bảng (không phải xoá cột).
DROP INDEX index Xóa chỉ mục đã đặt tên.