如何从MySQL中的表中删除列?

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

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

mysql> create table DeleteColumnNameDemo
   -> (
   -> Id int,
   -> Name varchar(200),
   -> Age int,
   -> Address varchar(200)
   -> );

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

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”表中删除“年龄”和“地址”列。应用以上语法删除列。查询如下。

mysql> ALTER table DeleteColumnNameDemo
   -> drop column Age,
   -> drop column Address;
Records: 0  Duplicates: 0  Warnings: 0

我们已从表中删除了“年龄”和“地址”两列。现在让我们借助DESC命令检查列是否已删除。

mysql> desc DeleteColumnNameDemo;

以下是输出。我们看不到“年龄”和“地址”两栏,因为我们已经删除了之前的栏。

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