Câu lệnh ALTER TABLE
trong MySQL được sử dụng để thay đổi cấu trúc của một bảng hiện có mà không cần xóa và tạo lại bảng. Các thay đổi có thể bao gồm thêm cột mới, thay đổi kiểu dữ liệu, thêm hoặc xóa các ràng buộc, và nhiều hơn nữa. Hướng dẫn này sẽ bao gồm từ cơ bản đến nâng cao với các minh họa chi tiết về câu lệnh ALTER TABLE
.
employees
Bây giờ bạn muốn thêm cột email
vào bảng employees
:
address
address
phone_number
contact_number
employees
FOREIGN KEY
departments
Thêm khóa ngoại department_id
vào bảng employees
, tham chiếu đến bảng departments
:
FOREIGN KEY
Xóa ràng buộc khóa ngoại fk_department
khỏi bảng employees
:
INDEX
Thêm chỉ mục (INDEX
) cho cột email
để cải thiện tốc độ truy vấn:
INDEX
Xóa chỉ mục idx_email
khỏi bảng employees
:
UNIQUE INDEX
Đảm bảo rằng giá trị của cột email
là duy nhất:
PRIMARY KEY
PRIMARY KEY
:PRIMARY KEY
PRIMARY KEY
:DEFAULT
Thêm cột status
với giá trị mặc định là 'active'
:
status
status
VIRTUAL
)Cột ảo trong MySQL là cột mà giá trị của nó được tính toán từ các cột khác trong bảng.
full_name
JSON
Thêm cột extra_data
kiểu dữ liệu JSON
để lưu trữ các thông tin bổ sung:
ENGINE
Thay đổi loại ENGINE
của bảng từ InnoDB
sang MyISAM
:
PARTITIONING
ALTER TABLE
Giả sử cột id
trong bảng employees
hiện không phải là AUTO_INCREMENT
. Bây giờ, bạn muốn thay đổi nó thành tự động tăng:
CHECK
Thêm một ràng buộc CHECK
để đảm bảo rằng tuổi của nhân viên phải lớn hơn 18:
CHECK
Ví dụ:
FOREIGN KEY
MySQL cho phép bạn thay đổi vị trí của các cột trong bảng, điều này có thể hữu ích trong việc sắp xếp lại cấu trúc bảng cho dễ đọc hơn.
email
Nếu bạn muốn di chuyển cột email
lên đầu bảng, bạn có thể sử dụng từ khóa FIRST
:
HASH
Phân vùng bảng employees
theo id
thành 4 phân vùng:
LIST
Phân vùng bảng employees
dựa trên giá trị của cột country
:
ROW_FORMAT
Chuyển bảng employees
sang sử dụng định dạng lưu trữ COMPRESSED
để tiết kiệm dung lượng:
UNIQUE
Thêm ràng buộc UNIQUE
cho cột email
và department_id
trong bảng employees
:
ON DELETE CASCADE
Thêm khóa ngoại department_id
vào bảng employees
, với hành vi ON DELETE CASCADE
:
TABLESPACE
Chuyển bảng employees
sang sử dụng TABLESPACE
khác:
ALTER TABLE employees
TABLESPACE my_tablespace STORAGE DISK;
Những ví dụ nâng cao này giúp bạn nắm vững các tính năng mạnh mẽ của câu lệnh ALTER TABLE
trong MySQL. Khi quản lý các bảng lớn và phức tạp, bạn có thể tận dụng các tính năng này để tối ưu hóa hiệu suất và quản lý dữ liệu một cách hiệu quả hơn.