如何在 MySQL 中删除表中的一个列?

mysqlmysqli database

我们可以借助 ALTER 命令从表中删除一个列。假设我们创建了一个表,并需要删除其中的一些列。我们可以使用 ALTER 和 DRO[ 命令来实现这一点。

让我们看一个例子。首先,我们将创建一个表。

mysql> create table DeleteColumnNameDemo
   -> (
   -> Id int,
   -> Name varchar(200),
   -> Age int,
   -> Address varchar(200)
   -> );
Query OK, 0 rows affected (0.59 sec)

上面,我们创建了一个包含四列的表格。下面是查询,通过该查询我们可以查看有关该表格的所有详细信息。

mysql> desc DeleteColumnNameDemo;

以下是输出。

+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| Id      | int(11)      | YES  |     | NULL    |       |
| Name    | varchar(200) | YES  |     | NULL    |       |
| Age     | int(11)      | YES  |     | NULL    |       |
| Address | varchar(200) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

现在我们的表中有 4 列。现在让我们看看删除列的语法。语法如下。

alter table yourTableName
drop column yourColumnName1,
drop column yourColumnName2,
.
.
.
drop column yourColumnNameN,

现在,让我们从"DeleteColumnNameDemo"表中删除"Age"和"Address"列。应用上述语法删除列。查询如下。

mysql> ALTER table DeleteColumnNameDemo
   -> drop column Age,
   -> drop column Address;
Query OK, 0 rows affected (3.11 sec)
Records: 0  Duplicates: 0  Warnings: 0

我们已经从表中删除了 Age 和 Address 两列。现在让我们借助 DESC 命令检查这些列是否已被删除。

mysql> desc DeleteColumnNameDemo;

以下是输出。我们看不到"Age"和"Address"这两列,因为之前我们已经删除了它们。

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| Id    | int(11)      | YES  |     | NULL    |       |
| Name  | varchar(200) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.05 sec)

相关文章