mysql | 数据表中列(字段)的添加、修改和删除

前言

在 mysql 中,表中的列通常被称为‌字段‌,代表特定类型的数据(如整数、字符串等)。‌

字段是表的基本组成部分,每个字段具有唯一名称、数据类型以及可选约束(如主键、非空等)。‌

mysql 表中常用对列(字段)的操作有:

1、添加新列(字段)

2、修改列(字段)的名称、数据类型

3、删除列(字段)

一、添加新列(字段)

**语法:**alter table 表名 add column 列名 类型 列约束;

现有一张 test 表,仅有一列(一个字段)a,数据类型为 int,如下图:

添加新列(字段):

1、添加一列数据类型为 int 的 b 列

alter table test add column b int;

2、添加一列数据类型为 char 的 c 列

alter table test add column c char;

3、添加一列数据类型为 varchar 的 d 列

alter table test add column d varchar;

运行后结果如下图:

以上结果,发现问题:

数据类型为 int、char 的 b 列和 c 列均添加成功,而数据类型为 varchar 的 d 列添加失败。

出现问题原因:

1、int(n),无论 n 是多少,int 永远占4个字节,n 只是表示显示的宽度,是可以省略的。

2、char(n),定长字符串,当 n 省略时,默认为 n=1。

3、varchar(n),变长字符串,n 不可以省略,省略时就会报错。

解决办法:给 varchar(n) 的 n 赋一个值即可,如下图。

特别注意:如果在添加 mysql 其他数据类型的列时报错,且检查了语法和拼写确实没问题时,这可能也是一种报错解决思路,可能是数据类型的参数不可省略。

二、修改列(字段)

修改列(字段)有以下两种方式,以上面第一章 test 表中数据作为以下示例。

一是:modify,只能修改列(字段)的数据类型。

二是:change,可以修改列(字段)的名称以及数据类型。

(一)modify---数据类型

语法:alter table 表名 modify column 列名 新类型 约束;

**示例:**把 b 列 int 数据类型修改为 char

alter table test modify column b char;

(二)change---名称或数据类型

语法:alter table 表名 change column 列名 新列名 新类型 约束;

**示例:**把 c 列 char 数据类型改为 int

正确写法:alter table test change column c c int;

特别注意:使用 change 时,新列名(字段名)是不可以省略的,必须要有,如果不想修改原来列(字段)的名称,可以把新列名(新字段名)命名和原列名(原字段名)保持一致,如上例。

(三)两者的区别

以上两种方法都可以实现列(字段)的修改。不同的是:

change 不仅可以修改数据类型,还可以修改名称,且新名称不可以省略;

modify 只能修改数据类型,不可以修改名称。

三、删除列(字段)

语法:alter table 表名 drop column 列名;

**实例:**以上面第二章中的 test 表为以下示例,删除 c 列(字段 c)。

命令:alter table test drop c;

以上就是 mysql 添加、修改、删除列(字段)的方法,可供参考。

-end-

相关推荐
袋鼠云数栈33 分钟前
实时湖仓如何真正做到“数据够新”?
大数据·数据库·人工智能·数据治理
ACP广源盛139246256731 小时前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#YLB3116 中端多盘存储扩展在 AI 服务中的机会与应用场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
ACP广源盛139246256731 小时前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
倔强的石头_3 小时前
事务边界与批量写入:避免长事务、锁等待和日志压力
数据库
努力努力再努力wz3 小时前
【Redis入门系列】从 KEYS 到 SCAN:渐进式遍历、Cursor 与位反转原理
数据库·redis·缓存
坐吃山猪4 小时前
【多线程】Lock与Condition
大数据·数据库
Lightpwd5 小时前
Spring Boot 多数据源落地:AbstractRoutingDataSource + 注解切面(附源码)
数据库·后端
LabVIEW开发5 小时前
LabVIEW 64位安装的位深陷阱:工具包、内存与工程兼容
数据库·labview·labview知识·labview功能·labview程序
寺中人5 小时前
MySQL 8.0 Windows 完整安装教程:环境配置、密码重置与常见报错排查
数据库·windows·mysql·环境搭建·mysql 安装
这个DBA有点耶5 小时前
同样48核配置TPS差1倍?高性价比数据库一体机的“软硬协同”才是分水岭
服务器·数据库·架构