怎麼修改mysql的表名和列名?

2020-10-06 09:00:29

在mysql中,可以通過「ALTER TABLE 舊錶名 RENAME 新表名;」語句來修改表名,通過「ALTER TABLE 表名 CHANGE 舊欄位名/列名 新欄位名/列名 新資料型別;」語句來修改列名。

修改mysql的表名

MySQL 通過 ALTER TABLE 語句來實現表名的修改,語法規則如下:

ALTER TABLE <舊錶名> RENAME [TO] <新表名>;

其中,TO 為可選引數,使用與否均不影響結果。

例 1

使用 ALTER TABLE 將資料表 student 改名為 tb_students_info,SQL 語句和執行結果如下所示。

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)

提示:修改表名並不修改表的結構,因此修改名稱後的表和修改名稱前的表的結構是相同的。使用者可以使用 DESC 命令檢視修改後的表結構,

修改mysql的列名(欄位名)

MySQL 資料表是由行和列構成的,通常把表的「列」稱為欄位(Field),把表的「行」稱為記錄(Record)。

MySQL 中修改表欄位名的語法規則如下:

ALTER TABLE <表名> CHANGE <舊欄位名> <新欄位名> <新資料型別>;

其中:

  • 舊欄位名:指修改前的欄位名;

  • 新欄位名:指修改後的欄位名;

  • 新資料型別:指修改後的資料型別,如果不需要修改欄位的資料型別,可以將新資料型別設定成與原來一樣,但資料型別不能為空。

例 2

使用 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的表名和列名?的詳細內容,更多請關注TW511.COM其它相關文章!