Mysql 简明教程

MySQL - Add/Delete Columns

表中的一列是一系列垂直单元格,用于存储诸如文本、数字、图像等等的各种类型的数据。每一列都可以包含一个或多个行,其中每行可以存储一个单个值。

Adding Columns to a MySQL table

在 MySQL 中,可以使用 ALTER TABLE ADD 语句在一个表中添加一个或多个列。当我们需要添加新数据时,向表中添加列可能非常有用。

Syntax

以下是 MySQL 表中添加列的语法 −

ALTER TABLE table_name
ADD [COLUMN] column_1_definition [FIRST|AFTER existing_column],
ADD [COLUMN] column_2_definition [FIRST|AFTER existing_column],
...;

其中,

  1. FIRST 关键字用于在表开头添加一个特定的列。

  2. AFTER 关键字用于在表中特定现有列之后添加一列。

Example

首先,让我们使用以下查询创建一个名为 CUSTOMERS 的表:

CREATE TABLE CUSTOMERS (
    ID INT NOT NULL,
    NAME VARCHAR(20) NOT NULL
);

执行以下查询以下在前面创建的表中检索列列表 −

DESCRIBE CUSTOMERS;

以下是目前 CUSTOMERS 表中存在的列 −

现在,我们正在使用以下查询将名为 AGE 的列添加到 CUSTOMERS 表 −

ALTER TABLE	CUSTOMERS
	ADD COLUMN AGE INT NOT NULL;

Output

执行上述查询将产生以下输出:

Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

Verification

在将 AGE 列添加到 CUSTOMERS 表之后,我们可以检查以确认 AGE 列是否已添加,使用以下查询 −

DESCRIBE CUSTOMERS;

正如我们可以在CUSTOMERS表的列列表中看到,AGE列已成功添加。

Example

在以下查询中,我们使用 FIRST 关键词在先前创建的CUSTOMERS表的开头添加S_NO列-

ALTER TABLE CUSTOMERS
	ADD COLUMN S_NO INT NOT NULL FIRST;

Output

执行给定的查询后,输出如下:

Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

Verification

现在,让我们通过执行以下查询来验证是否首先添加了S_NO列-

DESCRIBE CUSTOMERS;

正如我们在输出表中看到的,S_NO列已成功添加到表的开头。

Example

目前,CUSTOMERS表中有4列。现在,我们使用 AFTER 关键词在名为 ID 的列之后添加一个新列 GENDER -

ALTER TABLE CUSTOMERS
	ADD COLUMN GENDER VARCHAR(10) AFTER ID;

Output

执行上述查询将产生以下输出:

Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

Verification

使用以下DESCRIBE语句,我们可以验证GENDER列是否在ID列之后添加-

DESCRIBE CUSTOMERS;

GENDER列已成功添加到ID列之后。

Adding Multiple Columns

我们可以使用ALTER TABLE…​ADD命令将多列添加到指定表中。要做到这一点,我们只需要指定我们要添加的新列,并用逗号分隔它们。

Example

在下面的查询中,我们使用单个ALTER语句将多列( ADDRESSCONTACT )添加到CUSTOMERS表中-

ALTER TABLE CUSTOMERS
ADD COLUMN ADDRESS CHAR (25),
ADD COLUMN CONTACT INT;

Output

以上程序的输出如下所示:

Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

我们可以使用以下查询验证是否添加了MARKS和GRADES列-

DESCRIBE CUSTOMERS;

以下输出显示MARKS和GRADES列已添加到CUSTOMERS表中-

Deleting Columns from a MySQL table

在MySQL中,我们可以使用 ALTER TABLE DROP COLUMN 语句从表中删除单列或多列。我们通常在不再需要特定数据时删除列。

Syntax

以下是MySQL中ATLER TABLE DROP COLUMN的语法-

ALTER TABLE table_name
DROP COLUMN column_name;

Example

目前,我们在CUSTOMERS表中有7列。现在,我们正在从CUSTOMERS表中删除现有的S_NO列-

ALTER TABLE CUSTOMERS
	DROP COLUMN S_NO;

Output

执行上面程序时,将获得如下所示的输出:

Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

Verification

我们可以使用以下查询验证名为S_NO的列是否已删除-

DESCRIBE CUSTOMERS;

正如我们看到的,CUSTOMERS表的新更新列列表,S_NO列已被删除。

Example

在这里,我们尝试使用单个ALTER语句删除多列( GENDERADDRESSCONTACT )-

ALTER TABLE CUSTOMERS
DROP COLUMN AGE,
DROP COLUMN GENDER;

Output

执行给定的程序后,输出如下所示:

Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

Verification

我们可以使用以下查询验证是否删除了GENDER、ADDRESS和CONTACT列-

DESCRIBE CUSTOMERS;

以下是删除上述列后CUSTOMERS中的列列表-

Adding/Deleting column in a table Using a Client Program

除了使用 MySQL 查询在 MySQL 数据库中添加/删除表中的列外,还可以使用客户端程序执行 ALTER TABLE ADD/DROP 操作。

Syntax

以下是各种编程语言中添加/删除 MySQL 数据库中列的语法:

Example

以下是这些程序 −