mysql表中怎么修改字段?

mysql表中,可以使用“ALTER TABLE 表名 CHANGE 舊字段名 新字段名 數據類型;”語句來修改字段名稱;使用“ALTER TABLE 表名 MODIFY 字段名 新數據類型;”語句來修改字段數據類型。

mysql表中怎么修改字段?

(推薦教程:mysql視頻教程

修改字段名稱

MySQL 中修改表字段名的語法規則如下:

ALTER?TABLE?表名?CHANGE?舊字段名?新字段名?數據類型;

其中:

  • 舊字段名:指修改前的字段名;

  • 新字段名:指修改后的字段名;

  • 數據類型:指修改后的數據類型,如果不需要修改字段的數據類型,可以將數據類型設置成與原來一樣,但數據類型不能為空。

例 1

使用 ALTER TABLE 修改表 tb_emp1 的結構,將 col1 字段名稱改為 col3,同時將數據類型變為 CHAR(30),SQL 語句和運行結果如下所示。

mysql>?ALTER?TABLE?tb_emp1 ????->?CHANGE?col1?col3?CHAR(30); Query?OK,?0?rows?affected?(0.76?sec) Records:?0??Duplicates:?0??Warnings:?0 mysql>?DESC?tb_emp1; +--------+-------------+------+-----+---------+-------+ |?Field??|?Type????????|?Null?|?Key?|?Default?|?Extra?| +--------+-------------+------+-----+---------+-------+ |?col3???|?char(30)????|?YES??|?????|?NULL????|???????| |?id?????|?int(11)?????|?YES??|?????|?NULL????|???????| |?name???|?varchar(30)?|?YES??|?????|?NULL????|???????| |?deptId?|?int(11)?????|?YES??|?????|?NULL????|???????| |?salary?|?float????????|?YES??|?????|?NULL????|???????| +--------+-------------+------+-----+---------+-------+ 5?rows?in?set?(0.01?sec)

CHANGE 也可以只修改數據類型,實現和 MODIFY 同樣的效果,方法是將 SQL 語句中的“新字段名”和“舊字段名”設置為相同的名稱,只改變“數據類型”。

提示:由于不同類型的數據在機器中的存儲方式及長度并不相同,修改數據類型可能會影響數據表中已有的數據記錄,因此,當數據表中已經有數據時,不要輕易修改數據類型。

修改字段數據類型

修改字段的數據類型就是把字段的數據類型轉換成另一種數據類型。在 MySQL 中修改字段數據類型的語法規則如下:

ALTER?TABLE?表名?MODIFY?字段名?新數據類型;

其中:

  • 表名:指要修改數據類型的字段所在表的名稱;

  • 字段名:指需要修改的字段;

  • 新數據類型:指修改后字段的新數據類型。

例 2

使用 ALTER TABLE 修改表 tb_emp1 的結構,將 name 字段的數據類型由 VARCHAR(22) 修改成 VARCHAR(30),SQL 語句和運行結果如下所示。

mysql>?ALTER?TABLE?tb_emp1 ????->?MODIFY?name?VARCHAR(30); Query?OK,?0?rows?affected?(0.15?sec) Records:?0??Duplicates:?0??Warnings:?0 mysql>?DESC?tb_emp1; +--------+-------------+------+-----+---------+-------+ |?Field??|?Type????????|?Null?|?Key?|?Default?|?Extra?| +--------+-------------+------+-----+---------+-------+ |?col1???|?int(11)?????|?YES??|?????|?NULL????|???????| |?id?????|?int(11)?????|?YES??|?????|?NULL????|???????| |?name???|?varchar(30)?|?YES??|?????|?NULL????|???????| |?col2???|?int(11)?????|?YES??|?????|?NULL????|???????| |?deptId?|?int(11)?????|?YES??|?????|?NULL????|???????| |?salary?|?float????????|?YES??|?????|?NULL????|???????| +--------+-------------+------+-----+---------+-------+ 6?rows?in?set?(0.00?sec)

語句執行后,發現表 tb_emp1 中 name 字段的數據類型已經修改成 VARCHAR(30),修改成功。

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享