程序员社区

MySQL系列教程 --- 25、MySQL 重命名列名

有时我们的列名没有意义,因此需要重命名或更改列名。MySQL 提供了一种有用的语法,可以重命名表中的一个或多个列。在重命名列之前,很少有必要的特权,例如 ALTER 和 DROP 语句特权。

MySQL 可以通过两种方式重命名列名:

  1. 使用 CHANGE 语句
  2. 使用 RENAME 语句

使用 CHANGE 语句:

以下是说明使用 CHANGE 语句重命名列的语法:

ALTER TABLE table_name   
CHANGE COLUMN old_column_name new_column_name Data Type;  

在此语法中,我们可以看到我们可能需要重新指定所有列属性。这种语法还可以让我们改变列的数据类型。但是,有时 CHANGE 语句可能具有以下缺点:

  • 应用程序可能无法使用列属性的所有信息进行重命名。
  • 存在可能导致应用程序数据丢失的意外数据类型更改风险。

例子

让我们通过各种示例了解MySQL 中的 CHANGE 语句如何重命名列。假设我们有一个名为balance的表,其中包含如下数据:

file

由于某种原因,我们需要更改列名 account_num 及其数据类型。在这种情况下,我们首先使用DESCRIBE语句检查表的结构,如下所示:

file

在这张图片中,我们可以看到列名account_num的数据类型是int。我们想将此列名称更改为account_no并将其数据类型更改为int 为 varchar。因此,我们可以执行以下语句来做到这一点:

mysql> ALTER TABLE balance   
CHANGE COLUMN account_num account_no VARCHAR(25);  

执行完上述命令后,我们可以再次使用 DESCRIBE 语句进行验证。在下图中,列名 account_num 及其数据类型已成功更改。

file

使用 RENAME 语句:

为了消除 CHANGE 语句的缺点,MySQL 提出了以下语法来说明使用 RENAME 语句更改列名:

ALTER TABLE table_name   
RENAME COLUMN old_column_name TO new_column_name;  

例子

让我们通过各种示例了解 MySQL 中的 RENAME 语句如何更改列名。假设我们有一个名为customer的表,其中包含以下数据:

file

假设我们想使用account_no更改列名 account而不更改其数据类型。我们可以通过执行以下语句来做到这一点:

mysql> ALTER TABLE customer RENAME COLUMN account to account_no;  

执行完上述命令后,我们可以再次使用SELECT语句进行验证。在下图中,列名帐户已成功更改。

file

重命名多列

MySQL 还允许我们在单个语句中更改多个列名。如果我们想重命名多个列名,我们可以使用以下语法:

ALTER TABLE table_name   
CHANGE old_column_name1 new_column_name1 Data Type,  
CHANGE old_column_name2 new_column_name2 Data Type,  
...  
...  
CHANGE old_column_nameN new_column_nameN Data Type;  

或者

ALTER TABLE table_name   
RENAME COLUMN old_column_name1 TO new_column_name1,  
RENAME COLUMN old_column_name2 TO new_column_name2,  
...  
...  
RENAME COLUMN old_column_nameN TO new_column_nameN;  

例子

假设我们想改变列名ID和CUSTOMER_NAME客户表。要在单个语句中更改多个列名,我们可以使用如下语句:

mysql> ALTER TABLE customer   
CHANGE id cust_id int,   
CHANGE customer_name cust_name varchar(45);  

执行完上述命令后,我们可以再次使用SELECT语句进行验证。在下图中,列名 id 和 customer_name 已成功更改:

file

让我们再次通过 RENAME COLUMN 语句更改当前正在修改的列名,如下所示:

mysql> ALTER TABLE customer   
RENAME COLUMN cust_id TO id,   
RENAME COLUMN cust_name TO customer_name;  

执行完上述命令后,我们可以再次使用 DESCRIBE 语句进行验证。在下图中,列名 cust_id 和 cust_name已成功更改:

file

在本文中,我们学习了 MySQL RENAME 列的介绍以及如何更改指定表中的列名,并提供了一个查询示例以便更好地理解。

赞(1) 打赏
未经允许不得转载:IDEA激活码 » MySQL系列教程 --- 25、MySQL 重命名列名

一个分享Java & Python知识的社区