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

相关推荐

  • Python安装工具:setup.py

    Python安装工具:setup.pyPython是一种解释型、面向对象、动态数据类型的高级程序设计语言。它具有简洁、易读、易学等特点,在全球范围内得到了广泛的应用。Python在各种领域都有应用,在科学计算、人工智能、数据分析等领域得到了广泛的应用。但是,Python的安装过程却比较繁琐,需要安装各种依赖库、设置环境变量等。这时,Python安装工具——setup.py就派上用场了。

    2024-02-05
    47
  • Python技术加速您的业务增长

    Python技术加速您的业务增长Python是一门易于学习且十分流行的编程语言,它被许多企业和组织广泛采用。Python语言具有高效、灵活、可扩展等特点,可以用于多种用途,如web开发、数据分析、机器学习、自然语言处理等。在这篇文章中,我们将从多个方面讨论Python技术如何加速您的业务增长。

    2024-01-23
    47
  • 一份超长的MySQL学习笔记(正在更新)[亲测有效]

    一份超长的MySQL学习笔记(正在更新)[亲测有效]学习资源 视频资料:韩顺平讲MySQL MySQL安装(Windows):MySQL安装+初始化操作 MySQL本地服务配置(Windows):制作MySQL的Windows服务+创建用户及授权 数据

    2023-04-28
    113
  • oracle中新建数据表的两种方法是什么_怎么新建数据库表

    oracle中新建数据表的两种方法是什么_怎么新建数据库表首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1

    2023-06-15
    98
  • 第一次SQL注入[通俗易懂]

    第一次SQL注入[通俗易懂]
    第一次sql注入 1.在sqlmap文件安装目录下输入打开cmd,输入: sqlmap.py 2. sqlmap.py -u url(url:目标地址) s…

    2023-04-09
    109
  • Python应用之字符串替换功能

    Python应用之字符串替换功能在日常工作中,我们常常需要对文本进行一定的处理。经常会遇到需要用指定的字符串替换文本中的一些特定字符串的情况。比如,我们需要修改文章中某些单词或者短语的拼写错误,或者将一串字符转换为另一串字符。

    2023-12-19
    64
  • Python实现快速高效的字典管理系统

    Python实现快速高效的字典管理系统在计算机科学领域中,字典(或称为映射)是一种用于存储和访问无序数据的数据结构。在Python中,字典是一种非常常见的数据类型,因为它在存储和访问数据时非常快速和高效。在本文中,我们将介绍如何使用Python实现字典管理系统。

    2023-12-28
    56
  • DbgridEh数据导出到Excel的方法(Delphi)

    DbgridEh数据导出到Excel的方法(Delphi)本文内容严重参考了网上其他牛人的代码,并做了一些修改,使得参数更加简单,结构更清晰,所以就厚着脸皮说是原创。 uses DBGridEhImpExp; procedure TFrm_func.DbG…

    2023-04-01
    107

发表回复

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