MySQL向表中添加列[通俗易懂]

MySQL向表中添加列[通俗易懂]我们使用`alter table 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函数来返回列是否存在。

参考

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

原文地址:https://www.cnblogs.com/okokabcd/archive/2022/10/27/16833688.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4604.html

(0)
上一篇 2023-06-12
下一篇 2023-06-12

相关推荐

  • MySQL数据库多实例介绍及安装「建议收藏」

    MySQL数据库多实例介绍及安装「建议收藏」MySQL数据库多实例介绍及安装1.mysql多实例实质在一台机器上开启多个不同的mysql服务端口(3306,3307),运行多个mysql服务进程,这些服务进程通过不同的socket监听不同的服…

    2023-04-05
    136
  • Python FFT函数介绍与应用

    Python FFT函数介绍与应用快速傅里叶变换(Fast Fourier Transform,FFT)是一种高效的傅里叶变换算法,广泛应用于信号处理、图像处理以及数字信号处理等领域。Python中提供了numpy.fft模块用于计算快速傅里叶变换。

    2024-05-26
    62
  • 一则MySQL派生表优化案例「建议收藏」

    一则MySQL派生表优化案例「建议收藏」笔者最近遇到一则典型的因为sql中存在派生表造成的性能案例,通过改写SQL改善了的性能,但当时并没有弄清楚这其中的原因,派生表究竟是什么原因会导致性能上的副作用。说来也巧,很快就无意中就看到下文中的提

    2023-02-11
    162
  • java大数据最全课程学习笔记(4)-

    java大数据最全课程学习笔记(4)-目前CSDN,博客园,简书同步发表中,更多精彩欢迎访问我的gitee pages HDFS NN,2NN,DN及HDFS2.x新特性 NameNode和SecondaryNameNode(重点) NN

    2023-03-22
    128
  • 怎么利用ApiPost接口管理工具校验/测试接口返回结果是否符合预期?[亲测有效]

    怎么利用ApiPost接口管理工具校验/测试接口返回结果是否符合预期?[亲测有效]本文主要讲解接口管理工具ApiPost的预执行脚本和后执行脚本里,怎么校验/测试接口返回结果是否符合预期? ApiPost简介: ApiPost是一个支持团队协作,并可直接生成文档的API调试、管理…

    2023-03-08
    150
  • 华为终端云服务的应用体验如何关闭_华为云终端盒子

    华为终端云服务的应用体验如何关闭_华为云终端盒子  华为终端云服务的应用体验如何?听说华为终端设备都会下载华为的自有应用,不知道用起来感觉怎么样?   PS:我的手机总爱丢,这心大的性格是改不了了,有没有什么好用的功能在手机丢了的时候能找到?从小…

    2023-02-28
    157
  • 使用WingIDE进行Python编程

    使用WingIDE进行Python编程Python是一种广泛使用的编程语言,因其简单易学、可读性强和强大的库而备受欢迎。但是,在编写复杂的Python代码时,很难避免遇到一些十分困难和烦琐的问题。这时,使用一款高效且强大的Python集成开发环境(IDE)就显得尤为必要了。WingIDE就是这样一款工具。

    2024-07-14
    41
  • pandas用法大全_python的pandas

    pandas用法大全_python的pandashttps://blog.csdn.net/yiyele/article/details/80605909 一、生成数据表1、首先导入pandas库,一般都会用到numpy库,所以我们先导入备用:im

    2023-03-04
    149

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注