Xin chào các bạn, trong bài học ngày hôm nay mình sẽ hướng dẫn các bạn sử dụng câu lệnh ADD COLUMN trong MySQL để thêm cột vào trong bảng.
Giới thiệu
Để thêm cột mới vào bảng hiện có, bạn sử dụng câu lệnh ALTER TABLE ADD COLUMN như sau:
1 2 |
ALTER TABLE table ADD [COLUMN] column_name column_definition [FIRST|AFTER existing_column]; |
Trong đó:
- Đầu tiên, bạn chỉ định tên bảng sau mệnh đề ALTER TABLE.
- Thứ hai, bạn đặt tên cột mới và định nghĩa nó sau mệnh đề ADD COLUMN. Lưu ý rằng từ khóa COLUMN là tùy chọn để bạn có thể bỏ qua nó.
- Thứ ba, MySQL cho phép bạn thêm cột mới làm cột đầu tiên của bảng bằng cách chỉ định từ khóa FIRST. Nó cũng cho phép bạn thêm cột mới sau cột hiện có bằng cách sử dụng mệnh đề AFTER existing_column. Nếu bạn không chỉ định rõ vị trí của cột mới, MySQL sẽ thêm nó làm cột cuối cùng.
Để thêm hai hoặc nhiều cột vào một bảng cùng một lúc, bạn sử dụng cú pháp sau:
1 2 3 4 |
ALTER TABLE table ADD [COLUMN] column_name_1 column_1_definition [FIRST|AFTER existing_column], ADD [COLUMN] column_name_2 column_2_definition [FIRST|AFTER existing_column], ...; |
Chúng ta hãy xem một số ví dụ về việc thêm cột mới vào bảng hiện có.
Ví dụ về thêm cột mới vào trong bảng
Đầu tiên, chúng ta tạo một bảng có tên là vendors:
1 2 3 4 |
CREATE TABLE IF NOT EXISTS vendors ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) ); |
Thứ hai, chúng ta thêm cột mới có tên là phone vào bảng vendors. Bởi vì chúng ta xác định vị trí của cột phone một cách rõ ràng sau cột tên, MySQL sẽ tuân theo điều này.
1 2 |
ALTER TABLE vendors ADD COLUMN phone VARCHAR(15) AFTER name; |
Thứ ba, chúng ta thêm một cột mới có tên vendor_group vào bảng vendors. Tại thời điểm này, chúng ta không chỉ định vị trí của cột mới để MySQL thêm cột vendor_group làm cột cuối cùng của bảng vendors.
1 2 |
ALTER TABLE vendors ADD COLUMN vendor_group INT NOT NULL; |
Bây giờ chúng ta hãy thêm một vài hàng vào trong bảng vendors:
1 2 3 4 5 |
INSERT INTO vendors(name,phone,vendor_group) VALUES('IBM','(408)-298-2987',1); INSERT INTO vendors(name,phone,vendor_group) VALUES('Microsoft','(408)-298-2988',1); |
Chúng tôi có thể truy vấn dữ liệu của bảng vendors để xem các thay đổi.
1 2 3 4 |
SELECT id, name, phone,vendor_group FROM vendors; |
kết quả:

Thứ tư, thêm hai cột email và hourly_rate vào bảng vendors cùng một lúc.
1 2 3 |
ALTER TABLE vendors ADD COLUMN email VARCHAR(100) NOT NULL, ADD COLUMN hourly_rate decimal(10,2) NOT NULL; |
Lưu ý rằng cả hai cột email và hourly_rate được gán cho giá trị NOT NULL, tuy nhiên, bảng vendors đã có dữ liệu. Trong những trường hợp như vậy, MySQL sẽ sử dụng các giá trị mặc định cho những cột mới này.
Kiểm tra dữ liệu trong bảng vendors.
1 2 3 4 |
SELECT id, name, phone, vendor_group, email, hourly_rate FROM vendors; |
kết quả:

Cột email được điền bằng các giá trị rỗng, không phải giá trị NULL. Và cột hourly_rate được điền bằng giá trị 0,00.
Nếu bạn vô tình thêm một cột đã tồn tại trong bảng, MySQL sẽ thông báo một lỗi. Ví dụ, nếu bạn thực thi câu lệnh sau:
1 2 |
ALTER TABLE vendors ADD COLUMN vendor_group INT NOT NULL; |
bạn sẽ nhận được một thông báo lỗi:
1 |
Error Code: 1060. Duplicate column name 'vendor_group' |
Kết luận
Như vậy trong bài học ngày hôm nay mình đã hướng dẫn các bạn sử dụng câu lệnh ADD COLUMN để thêm các cột vào trong bảng. Trong bài học tiếp theo chúng ta sẽ tìm hiểu về câu lệnh DROP COLUMN trong MySQL.
Chúc các bạn học tập tốt!