在mysql中,可以通過“ALTER TABLE 舊表名 RENAME 新表名;”語句來修改表名,通過“ALTER TABLE 表名 CHANGE 舊字段名/列名 新字段名/列名 新數(shù)據(jù)類型;”語句來修改列名。
修改mysql的表名
MySQL 通過 ALTER TABLE 語句來實現(xiàn)表名的修改,語法規(guī)則如下:
ALTER TABLE <舊表名> RENAME [TO] <新表名>;
其中,TO 為可選參數(shù),使用與否均不影響結(jié)果。
例 1
使用 ALTER TABLE 將數(shù)據(jù)表 student 改名為 tb_students_info,SQL 語句和運行結(jié)果如下所示。
mysql> ALTER TABLE student RENAME TO tb_students_info; Query OK, 0 rows affected (0.01 sec) mysql> SHOW TABLES; +------------------+ | Tables_in_test | +------------------+ | tb_students_info | +------------------+ 1 row in set (0.00 sec)
提示:修改表名并不修改表的結(jié)構(gòu),因此修改名稱后的表和修改名稱前的表的結(jié)構(gòu)是相同的。用戶可以使用 DESC 命令查看修改后的表結(jié)構(gòu),
修改mysql的列名(字段名)
MySQL 數(shù)據(jù)表是由行和列構(gòu)成的,通常把表的“列”稱為字段(Field),把表的“行”稱為記錄(Record)。
MySQL 中修改表字段名的語法規(guī)則如下:
ALTER TABLE <表名> CHANGE <舊字段名> <新字段名> <新數(shù)據(jù)類型>;
其中:
-
舊字段名:指修改前的字段名;
-
新字段名:指修改后的字段名;
-
新數(shù)據(jù)類型:指修改后的數(shù)據(jù)類型,如果不需要修改字段的數(shù)據(jù)類型,可以將新數(shù)據(jù)類型設(shè)置成與原來一樣,但數(shù)據(jù)類型不能為空。
例 2
使用 ALTER TABLE 修改表 tb_emp1 的結(jié)構(gòu),將 col1 字段名稱改為 col3,同時將數(shù)據(jù)類型變?yōu)?CHAR(30),SQL 語句和運行結(jié)果如下所示。
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 也可以只修改數(shù)據(jù)類型,實現(xiàn)和 MODIFY 同樣的效果,方法是將 SQL 語句中的“新字段名”和“舊字段名”設(shè)置為相同的名稱,只改變“數(shù)據(jù)類型”。
提示:由于不同類型的數(shù)據(jù)在機器中的存儲方式及長度并不相同,修改數(shù)據(jù)類型可能會影響數(shù)據(jù)表中已有的數(shù)據(jù)記錄,因此,當數(shù)據(jù)表中已經(jīng)有數(shù)據(jù)時,不要輕易修改數(shù)據(jù)類型。
推薦教程:mysql視頻教程