MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL添加/删除列

列是表中的一系列单元格,可能包含文本,数字和图像。每一列为表中的每一行存储一个值。在本节中,我们将讨论如何在现有表中添加或删除列。

如何在MySQL表中添加列?

MySQL 允许 ALTER TABLE ADD COLUMN 命令向现有表添加新列。以下是执行此操作的语法:
ALTER TABLE table_name 
    ADD COLUMN column_name column_definition [FIRST|AFTER existing_column];
在上面,
首先,我们需要指定表名。 接下来,在ADD COLUMN子句之后,我们必须指定新列的名称及其定义。 最后,我们需要指定FIRST或AFTER关键字。 FIRST关键字用于将列添加为表的第一列。 AFTER关键字用于在现有列之后添加新列。如果我们未提供这些关键字,则默认情况下,MySQL将新列添加为表中的最后一列。
有时需要将 多列添加到现有表中。然后,我们可以使用如下语法:
ALTER TABLE table_name 
    ADD COLUMN column_name1 column_definition [FIRST|AFTER existing_column],
    ADD COLUMN column_name2 column_definition [FIRST|AFTER existing_column];

MySQL ADD COLUMN示例

让我们借助各种示例来理解它。在这里,我们将使用以下语句创建一个名为 " Test" 的表:
CREATE TABLE Test (
    Stude_id int AUTO_INCREMENT PRIMARY KEY,
    Name varchar(55) NOT null
);
表结构如下图所示:
MySQL添加/删除列
创建表格后,我们要向Test表添加一个名为City的新列。由于我们尚未在列名之后明确指定新的列位置,因此MySQL会将其添加为最后一列。
ALTER TABLE Test 
ADD COLUMN City VARCHAR(30) NOT null;
接下来,我们想在 Test 表中添加一个名为 Phone_number 的新列。这次,我们将显式指定新列的位置,以便MySQL将列添加到指定的位置。
ALTER TABLE Test 
ADD COLUMN Phone_number VARCHAR(20) NOT null AFTER Name;
在下面的输出中,我们可以看到两列已成功添加到指定位置。
MySQL Add/Delete Column
让我们使用 INSERT语句将一些数据添加到Test表中如下:
INSERT INTO Test( Name, Phone_number, City) 
VALUES ('Peter', '34556745362', 'California'),
('Mike', '983635674562', 'Texas');
它看起来像这样。
MySQL添加/删除列
假设我们要在"测试"表中添加多个列 (分支,电子邮件)。在这种情况下,请执行以下语句:
ALTER TABLE Test 
ADD COLUMN Branch VARCHAR(30) default NULL After Name,
ADD COLUMN Email VARCHAR(20) default NULL AFTER Phone_number;
请注意,"分支"和"电子邮件"列已分配为默认值 NULL 。但是,Test表中已经有数据,因此MySQL将对这些新列使用空值。
我们可以如下所示验证Test表中的记录:
MySQL添加/删除列
如果我们不小心添加了具有现有列名的新列,MySQL将 抛出错误。例如,执行以下发出错误的语句:
ALTER TABLE Test 
ADD COLUMN City VARCHAR(30) NOT null;
我们将收到以下错误消息。
MySQL添加/删除列

如何重命名MySQL表中的列?

MySQL允许 ALTER TABLE CHANGE COLUMN 语句用新名称更改旧列。以下是执行此操作的语法:
ALTER TABLE table_name 
    CHANGE COLUMN old_column_name new_column_name column_definition [FIRST|AFTER existing_column];
在上面,
首先,我们需要指定表名。 接下来,在CHANGE COLUMN子句之后,我们必须指定旧列名和新列名及其定义。我们必须指定列定义,即使它不会更改。 最后,我们需要指定FIRST或AFTER关键字。当我们需要在特定位置更改列名称时,指定该字段是可选的。
MySQL RENAME COLUMN示例
此示例说明了如何更改MySQL表中的列名:
ALTER TABLE Test
  CHANGE COLUMN Phone_number Mobile_number
    varchar(20) NOT null;
此语句将在测试表中将列名称 Phone_number 更改为新名称 Mobile_number 。以下输出对其进行了更清晰的说明。
MySQL添加/删除列

如何从MySQL表中删除列?

有时,我们想从表中删除单列或多列。 MySQL允许 ALTER TABLE DROP COLUMN 语句从表中删除该列。以下是执行此操作的语法:
ALTER TABLE table_name  DROP COLUMN column_name;
在上面,
首先,我们需要指定要从中删除列的表名 接下来,在 DROP COLUMN 子句之后,我们必须指定要从表中删除的列名。请注意,在DROP COLUMN子句中,COLUMN关键字是可选的。
如果要从表中删除 多列,请执行以下语句:
ALTER TABLE table_name
DROP COLUMN column_1,
DROP COLUMN column_2,
......;
MySQL DROP COLUMN示例
此示例说明了如何从MySQL表中删除列。在这里,我们将创建一个先前创建的表 "测试" ,如下图所示:
MySQL添加/删除列
假设我们要从"测试"表中删除列名称 "分支" 。为此,请执行以下语句:
ALTER TABLE Test DROP COLUMN Branch;
成功执行后,我们可以验证下面从表中删除"分支"列的结果:
MySQL Add/Delete Column
在某些情况下,需要从表中删除多个列。为此,我们需要执行以下语句:
ALTER TABLE Test
    DROP COLUMN Mobile_number,
    DROP COLUMN Email;
该命令将删除两列。我们可以使用下图中给出的查询来验证它。
MySQL添加/删除列
在从表中删除列之前,请记住以下要点:
MySQL与关系数据库一起使用,其中一个表的模式可以依赖于另一表的列。因此,当我们从一个表中删除一列时,它也会影响所有从属表。删除列时请考虑以下几点:
当我们从表中删除列时,它将影响所有关联的对象,例如触发器,存储过程和视图。假设我们删除触发器中引用的列。删除该列后,触发器将无效。 放置的列取决于其他应用程序代码,也必须进行更改,这需要花费时间和精力。 当我们从大表中删除一列时,它将在删除期间影响数据库的性能。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4