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-

相关推荐
马克Markorg8 小时前
常见的向量数据库和具有向量数据库能力的数据库
数据库
Coder_Boy_10 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
helloworldandy11 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
数据知道12 小时前
PostgreSQL 故障排查:如何找出数据库中最耗时的 SQL 语句
数据库·sql·postgresql
qq_124987075312 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
枷锁—sha12 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
Coder_Boy_12 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Gain_chance13 小时前
35-学习笔记尚硅谷数仓搭建-DWS层最近n日汇总表及历史至今汇总表建表语句
数据库·数据仓库·hive·笔记·学习
此生只爱蛋13 小时前
【Redis】主从复制
数据库·redis
马猴烧酒.13 小时前
【面试八股|JAVA多线程】JAVA多线程常考面试题详解
java·服务器·数据库