MySQL中的ALTER命令

2021-08-28 05:15:04 字數 2026 閱讀 8616

當我們需要修改資料表名或者修改資料表字段時,就需要使用到mysql alter命令。

如下命令使用了 alter 命令及 drop 子句來刪除以上建立表的 i 字段:

alter table testalter_tbl  drop i;
如果資料表中只剩餘乙個欄位則無法使用drop來刪除字段。

mysql 中使用 add 子句來向資料表中新增列,如下例項在表 testalter_tbl 中新增 i 字段,並定義資料型別:

alter table testalter_tbl add i int;
執行以上命令後,i 欄位會自動新增到資料表字段的末尾。

如果你需要指定新增欄位的位置,可以使用mysql提供的關鍵字 first (設定位第一列), after 欄位名(設定位於某個字段之後)。

嘗試以下 alter table 語句, 在執行成功後,使用 show columns 檢視表結構的變化:

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;

first 和 after 關鍵字只佔用於 add 子句,所以如果你想重置資料表字段的位置就需要先使用 drop 刪除字段然後使用 add 來新增欄位並設定位置。

如果需要修改字段型別及名稱, 你可以在alter命令中使用 modify 或 change 子句 。

例如,把字段 c 的型別從 char(1) 改為 char(10),可以執行以下命令:

alter table testalter_tbl modify c char(10);
使用 change 子句, 語法有很大的不同。 在 change 關鍵字之後,緊跟著的是你要修改的欄位名,然後指定新欄位名及型別。嘗試如下例項:

alter table testalter_tbl change i j bigint;

alter table testalter_tbl change j j int;

當你修改欄位時,你可以指定是否包含值或者是否設定預設值。

以下例項,指定字段 j 為 not null 且預設值為100 。

alter table testalter_tbl modify j bigint not null default 100;
你可以使用 alter 來修改欄位的預設值,嘗試以下例項:

alter table testalter_tbl alter i set default 1000;
你也可以使用 alter 命令及 drop子句來刪除欄位的預設值,如下例項:

alter table testalter_tbl alter i drop default;
修改資料表型別,可以使用 alter 命令及 type 子句來完成。嘗試以下例項,我們將表 testalter_tbl 的型別修改為 myisam :

注意:檢視資料表型別可以使用 show table status 語句。

alter table testalter_tbl engine = myisam;

show table status like 'testalter_tbl'\g

如果需要修改資料表的名稱,可以在 alter table 語句中使用 rename 子句來實現。

嘗試以下例項將資料表 testalter_tbl 重新命名為 alter_tbl:

alter table testalter_tbl rename to alter_tbl;

MySQL中alter的用法

update命令主要對錶資料進行修改 alter命令主要是對錶結構進行修改,主要包括新增 修改 刪除。1 新增 a 新增字段 列 alter table 表名 add 欄位名 字段屬性 例 alter table test add num int 10 not null auto increamen...

Mysql中alter的用法

1 刪除列 alter table 表名字 drop 列名稱 2 增加列 alter table 表名字 add 列名稱 int not null comment 注釋說明 3 修改列的型別資訊 alter table 表名字 change 列名稱 新列名稱 這裡可以用和原來列同名即可 bigint...

MySQl 中Alter語句的語法

alter table 語句用於在已有的表中新增 修改或刪除列。alter specification add column create definition first after column name or add index index name index col name,or add...