MySQL向表中添加列方法实例

 更新时间:2023年06月05日 14:17:45   作者:okokabcd  
要在MySQL的表中添加列,我们可以将ALTER命令与add column命令一起使用,下面这篇文章主要给大家介绍了关于MySQL向表中添加列的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

我们使用alter table add column语句向现有表中添加新列。

简介

alter table table_name
add [column] column_name column_definition [first|after existing_column];

说明:

  • alter table子句后指定表名;
  • column关键字是可选的,可以省略它;
  • 可以通过first关键字将新列添加为表的第一列,也可以使用after existing_column子句在现有列之后添加新列,如果没有明确指定会将其添加为最后一列;

若要向表中添加两个或更多列,使用下面语法:

alter table table_name
add [column] column_name column_definition [first|after existing_column],
add [column] column_name column_definition [first|after existing_column],
...;

举例

创建一个表

create database test;
use test;

create table if not exists vendor (
	id int auto_increment primary key,
  name varchar(255)
);

添加新列并指定位置

alter table vendor
add column phone varchar(15) after name;

添加新列但不指定新列位置

alter table vendor
add column vendor_group int not null;

插入记录

insert into vendor(name, phone, vendor_group)
values('IBM', '(408)-298-2987', 1);
insert into vendor(name, phone, vendor_group)
values('Microsoft', '(408)-298-2988', 1);

同时添加两列

alter table vendor
add column email varchar(100) not null,
add column hourly_rate decimal(10, 2) not null;

注意:email和hourly_rate两列都是not null,但是vendor表已经有数据了,在这种情况下,MySQL将使用这些新列的默认值。

检查vendor表中的数据

select id, name, phone, vendor_group, email, hourly_rate
from vendor;

查询结果:

+----+-----------+----------------+--------------+-------+-------------+
| id | name      | phone          | vendor_group | email | hourly_rate |
+----+-----------+----------------+--------------+-------+-------------+
|  1 | IBM       | (408)-298-2987 |            1 |       |        0.00 |
|  2 | Microsoft | (408)-298-2988 |            1 |       |        0.00 |
+----+-----------+----------------+--------------+-------+-------------+
2 rows in set (0.00 sec)

email列中填充了空值,而不是NULL值,hourly_rate列填充了0.00

添加表中已存在的列

MySQL将发生错误

alter table vendor
add column vendor_group int not null;

操作结果:

ERROR 1060 (42S21): Duplicate column name 'vendor_group'

检查表中是否已存在列

对于几列的表,很容易看到哪些列已经存在,如果有一个饮食数百列的大表,那就比较费劲了

select if(count(*) = 1, 'Exist', 'Not Exist') as result
from information_schema.columns
where table_schema = 'test'
	and table_name = 'vendor'
	and column_name = 'phone';

查询结果:

+--------+
| result |
+--------+
| Exist  |
+--------+
1 row in set (0.00 sec)

在where子句中,我们传递了三个参数:表模式或数据库,表名和列名。我们使用if函数来返回列是否存在。

在表中已有字段后添加列名

alter table 表名 add column 列名 类型 after 已有列名 comment '注释信息';
alter table students add column class varchar(40) after student_name   comment '学生班级';

删除列

alter table 表名 drop column 列名;
alter table students drop column grade;

参考

https://www.begtut.com/mysql/mysql-add-column.html

总结

到此这篇关于MySQL向表中添加列的文章就介绍到这了,更多相关MySQL表中添加列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL执行.sql 文件的超详细教学指南

    MySQL执行.sql 文件的超详细教学指南

    和其他数据库一样,MySQL也提供了命令执行sql脚本文件,方便地进行数据库、表以及数据等各种操作,这篇文章主要给大家介绍了关于MySQL执行.sql 文件的超详细教学指南,需要的朋友可以参考下
    2024-07-07
  • SQL 列不同的表查询结果合并操作

    SQL 列不同的表查询结果合并操作

    这篇文章主要介绍了SQL 列不同的表查询结果合并操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 浅谈mysql 自定义函数

    浅谈mysql 自定义函数

    本文主要是分析了一下在工作中写的一个mysql的自定义函数,很简单,仅仅是希望能对大家理解mysql自定义函数有所帮助。
    2014-09-09
  • MySQL使用Replace操作时造成数据丢失的问题解决

    MySQL使用Replace操作时造成数据丢失的问题解决

    这篇文章主要给大家介绍了关于MySQL使用Replace操作时造成数据丢失问题的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 详解MySQL聚合函数

    详解MySQL聚合函数

    在 MySQL 中,聚合函数是用于计算多行数据的统计信息的函数,例如总和、平均值、最大值、最小值和行数等。将多行数据聚合成单个结果,这是聚合函数得名的由来。本文将详细介绍MySQL的聚合函数,感兴趣的小伙伴可以参考一下
    2023-04-04
  • MySQL恢复中的几个问题解决方法

    MySQL恢复中的几个问题解决方法

    这篇文章主要介绍了MySQL恢复中的几个问题,需要的朋友可以参考下
    2016-01-01
  • 阿里云云服务器mysql密码找回的方法

    阿里云云服务器mysql密码找回的方法

    这篇文章主要介绍了阿里云云服务器mysql密码找回的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • MySQL 数据库跨操作系统的最快迁移方法

    MySQL 数据库跨操作系统的最快迁移方法

    原始的是Windows 2003下的32位的MySQL数据库, 新的服务器是Sun的64位的小型机,64位的MySQL数据库。
    2009-02-02
  • 当面试官问mysql中char与varchar的区别

    当面试官问mysql中char与varchar的区别

    这篇文章主要以聊天形式图片的添加,将面试官面试真实场景体现出来,好奇的朋友不要错过奥
    2021-08-08
  • mysql数据库中1045错误的解决方法

    mysql数据库中1045错误的解决方法

    这篇文章主要为大家详细介绍了MySQL数据库中1045错误的解决方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12

最新评论