Thư mục bài viết
Làm thế nào để thêm nhiều trường bằng câu lệnh `ALTER ADD` của MySQL ? Giải thích chi tiết về câu lệnh `MODIUS Column`.
MySQL Lệnh ALTER
Khi chúng ta cần sửa đổi tên bảng dữ liệu hoặc sửa đổi các trường của bảng dữ liệu, chúng ta cần sử dụng lệnh MySQL ALTER.
Trước khi bắt đầu hướng dẫn này, hãy tạo một bảng có tên: testalter_tbl.
root@host# mysql -u root -p password; Enter password:******* mysql> use chenweiliang; Database changed mysql> create table testalter_tbl -> ( -> i INT, -> c CHAR(1) -> ); Query OK, 0 rows affected (0.05 sec) mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | i | int(11) | YES | | NULL | | | c | char(1) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Xóa, thêm hoặc sửa đổi các trường trong bảng
Lệnh sau sử dụng lệnh ALTER với mệnh đề DROP để thả cột thứ i của bảng được tạo ở trên:
mysql> ALTER TABLE testalter_tbl DROP i;
Không thể sử dụng DROP để xóa một trường nếu chỉ còn một trường trong bảng dữ liệu.
Mệnh đề ADD được sử dụng trong MySQL để thêm cột vào bảng dữ liệu. Ví dụ sau thêm trường i vào bảng testalter_tbl và xác định kiểu dữ liệu:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Sau khi thực hiện lệnh trên, trường i sẽ tự động được thêm vào cuối các trường của bảng dữ liệu.
mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Nếu cần chỉ định vị trí của trường mới, bạn có thể sử dụng các từ khóa FIRST (đặt thành cột đầu tiên) và AFTER field_name (đặt thành sau một trường nhất định) do MySQL cung cấp .
Hãy thử câu lệnh ALTER TABLE sau và sau khi thực thi thành công, hãy sử dụng SHOW COLUMNS để xem những thay đổi trong cấu trúc bảng:
ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT FIRST; ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT AFTER c;
Từ khóa FIRST và AFTER chỉ được sử dụng trong mệnh đề ADD, vì vậy nếu bạn muốn đặt lại vị trí của trường bảng dữ liệu, trước tiên bạn cần sử dụng DROP để xóa trường và sau đó sử dụng ADD để thêm trường và đặt vị trí.
Sửa đổi loại trường và tên
Nếu bạn cần sửa đổi kiểu và tên trường, bạn có thể sử dụng mệnh đề SỬA ĐỔI hoặc THAY ĐỔI trong lệnh ALTER.
Ví dụ, để thay đổi loại trường c từ CHAR (1) thành CHAR (10), hãy thực hiện lệnh sau:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Với mệnh đề CHANGE, cú pháp rất khác.Ngay sau từ khóa CHANGE là tên của trường bạn muốn sửa đổi, sau đó chỉ định tên và loại trường mới.Hãy thử ví dụ sau:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
Ảnh hưởng của ALTER TABLE đối với giá trị rỗng và giá trị mặc định
Khi bạn sửa đổi một trường, bạn có thể chỉ định chỉ bao gồm hay có đặt giá trị mặc định hay không.
Ví dụ sau chỉ định rằng trường j KHÔNG ĐẦY ĐỦ và giá trị mặc định là 100.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Nếu bạn không đặt giá trị mặc định, MySQL sẽ tự động đặt trường thành NULL theo mặc định.
Sửa đổi giá trị mặc định của trường
Bạn có thể sử dụng ALTER để thay đổi giá trị mặc định của một trường, hãy thử các ví dụ sau:
mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | 1000 | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Bạn cũng có thể sử dụng lệnh ALTER với mệnh đề DROP để loại bỏ giá trị mặc định của một trường, như trong ví dụ sau:
mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec) Changing a Table Type:
Việc sửa đổi kiểu bảng dữ liệu có thể được thực hiện bằng lệnh ALTER và mệnh đề TYPE.Hãy thử ví dụ sau, nơi chúng tôi thay đổi loại bảng testalter_tbl thành MYISAM:
Lưu ý: Bạn có thể sử dụng câu lệnh SHOW TABLE STATUS để kiểm tra kiểu dữ liệu của bảng.
mysql> ALTER TABLE testalter_tbl ENGINE = MYISAM; mysql> SHOW TABLE STATUS LIKE 'testalter_tbl'\G *************************** 1. row **************** Name: testalter_tbl Type: MyISAM Row_format: Fixed Rows: 0 Avg_row_length: 0 Data_length: 0 Max_data_length: 25769803775 Index_length: 1024 Data_free: 0 Auto_increment: NULL Create_time: 2007-06-03 08:04:36 Update_time: 2007-06-03 08:04:36 Check_time: NULL Create_options: Comment: 1 row in set (0.00 sec)
Sửa đổi tên bảng
Nếu bạn cần sửa đổi tên của bảng dữ liệu, bạn có thể sử dụng mệnh đề RENAME trong câu lệnh ALTER TABLE để làm như vậy.
Hãy thử ví dụ sau để đổi tên bảng dữ liệu testalter_tbl thành alter_tbl:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
Lệnh ALTER cũng có thể được sử dụng để tạo và xóa các chỉ mục trên các bảng MySQL, mà chúng ta sẽ trình bày trong các chương tiếp theo.
thay đổi mục đích sử dụng khác
Sửa đổi công cụ lưu trữ: sửa đổi nó thành myisam
alter table tableName engine=myisam;
Loại bỏ ràng buộc khóa ngoại: keyName là bí danh khóa ngoại
alter table tableName drop foreign key keyName;
Vị trí tương đối của trường được sửa đổi: ở đây name1 là trường được sửa đổi, type1 là kiểu ban đầu của trường, có thể chọn trước và sau, điều này phải rõ ràng, đầu tiên được đặt trước và sau được đặt sau tên2 đồng ruộng
alter table tableName modify name1 type1 first|after name2;
Hi vọng bài viết "Thêm nhiều trường vào MySQL bằng ALTER TABLE? Giải thích chi tiết về câu lệnh 'MODIATE COLLECT'" được chia sẻ trên blog của Chen Weiliang ( https://www.chenweiliang.com/ ) sẽ hữu ích cho bạn.
Bạn có thể thoải mái chia sẻ liên kết bài viết này: https://www.chenweiliang.com/cwl-495.html
