当前位置: 首页 > news >正文

还在傻傻用 UPDATE 改表结构?MySQL 中真正修改表,要靠这几个 DDL 命令


很多刚学数据库的人,最容易把两件事混在一起:

  • 修改表里的数据
  • 修改表本身的结构

看起来都叫“修改”,但本质完全不是一回事。

比如:

  • 把某个学生的年龄从 18 改成 20,这是改数据
  • 给学生表新增一个成绩列,这是改表结构
  • 把某个字段类型从DOUBLE改成FLOAT,这也是改表结构
  • 直接把整张表删掉,那就更不是删数据,而是删表对象本身

如果你连这两类操作都没分清,后面写 SQL 很容易把自己绕进去。

今天这篇文章,我们就从实战角度,把 MySQL 中修改表结构、删除列、修改列定义、删除整张表这一套 DDL 操作讲清楚。
不空讲概念,直接配代码、运行结果和典型坑点。


一、先搞清楚:你改的是“数据”,还是“表”

数据库里常见的 SQL 操作,可以粗分为两类:

1)DML:操作数据

这类语句主要针对表里的记录,比如:

  • INSERT
  • UPDATE
  • DELETE

例子:

UPDATEt_studentSETs_age=20WHEREs_no=1;

这叫改数据,不叫改表。


2)DDL:操作数据库对象

这类语句针对的是数据库对象本身,比如:

  • 数据库
  • 索引
  • 视图
  • 约束

常见命令有:

  • CREATE
  • ALTER
  • DROP

例子:

ALTERTABLEt_studentADDscoreDOUBLE(5,2);

这叫修改表结构,属于 DDL。


二、修改表结构,核心就是 ALTER TABLE

在 MySQL 里,改表结构最常用的命令就是:

ALTERTABLE表名...

后面根据你的需求,可以继续接:

  • ADD:增加列
  • DROP COLUMN:删除列
  • MODIFY:修改列类型
  • CHANGE:修改列名和列定义

所以你可以把ALTER TABLE理解成一句总开关:

我要开始动这张表本身了。


三、给表新增一列:ADD 才是正确打开方式

假设现在有一张学生表t_student,结构如下:

CREATETABLEt_student(s_noINT(6),s_nameVARCHAR(20),s_sexCHAR(1),s_ageINT,enter_dateDATE,class_nameVARCHAR(30),emailVARCHAR(50));

先查一下表中的数据:

SELECT*FROMt_student;

运行结果示例:

+------+--------+-------+-------+------------+------------+------------------+ | s_no | s_name | s_sex | s_age | enter_date | class_name | email | +------+--------+-------+-------+------------+------------+------------------+ | 1 | 张三 | 男 | 18 | 2022-05-08 | 软件一班 | 123@126.com | | 2 | 李四 | 女 | 19 | 2022-05-08 | 软件二班 | li4@126.com | +------+--------+-------+-------+------------+------------+------------------+

现在我们想增加一列“成绩”。


1)新增一列的基本写法

ALTERTABLEt_studentADDscoreDOUBLE(5,2);

运行结果:

Query OK, 0 rows affected

再次查询表结构或直接查看数据:

SELECT*FROMt_student;

运行结果示例:

+------+--------+-------+-------+------------+------------+------------------+-------+ | s_no | s_name | s_sex | s_age | enter_date | class_name | email | score | +------+--------+-------+-------+------------+------------+------------------+-------+ | 1 | 张三 | 男 | 18 | 2022-05
http://www.jsqmd.com/news/685979/

相关文章:

  • 从“Recipe terminated with error.”到编译成功:聚焦VSCode中LaTeX配置文件的正确修改层级
  • richtx32.ocx文件丢失找不到怎么办?免费下载方法分享
  • masscan 工具介绍及与 fscan 对比
  • 北京润府联系方式查询指南:结合区位价值与生活配套的购房决策参考 - 品牌推荐
  • 2026年热门的导电塑料角位移传感器/执行器位移传感器/浙江角度位移传感器/霍尔位移传感器。用户口碑推荐厂家 - 行业平台推荐
  • 问题管理化技术根本原因分析RCA方法
  • 年薪百万消失!提示词工程 dead?揭秘驾驭AI的真正密码:上下文与治理框架
  • 别再手动编译了!用vcpkg在Windows上5分钟搞定Ceres-Solver及其所有依赖(VS2022实测)
  • 手把手教你将YOLO格式数据集转换成VOC格式,用于训练自己的SSD模型
  • 从QPushButton的clicked到窗口关闭:手把手调试一个Qt信号槽连接(避坑指南)
  • 现在的轮询可以容纳多少人
  • Hanime1Plugin:打造纯净无广告的Android动漫观影神器
  • 手把手教你用春联生成模型:输入‘吉祥‘、‘如意‘,AI自动创作完整春联
  • 爱思益VS海马职加权威测评与选择指南:基于服务广度、资源深度与成果数据的解析 - 品牌推荐
  • infra-ai模块宏观设计解析:打通业务与模型供应商的中间层核心架构
  • 别只刷题了!从Web安全到移动测试,拆解软件测试大赛各赛项背后的真实企业技能
  • 别再手写DFS遍历语法树了!用Tree-sitter Query像写SQL一样精准定位代码节点(Python实战)
  • GB/T 45288.2-2025 《人工智能 大模型 第2部分:评测指标与方法》详解
  • 从“Recipe terminated with error.”到编译成功:聚焦VSCode中LaTeX配置的“全局”与“工作区”陷阱
  • 10分钟实现魔兽争霸3现代化改造:WarcraftHelper深度配置指南
  • 从零到一:在Windows系统上部署嘉立创EDA专业版全流程解析
  • 网盘下载新革命:告别限速,八大平台直链解析全攻略
  • LibreOffice Draw:是开源免费的全能工具吗
  • 从零到一:用Qwen3-VL-2B搭建智能图片分析系统,完整教程
  • 目前APP可能不是很耗电
  • nli-MiniLM2-L6-H768应用落地:电商评论情感推理与法律条款矛盾检测实战
  • 2025-2026年国际移动机器人锂电池厂家评测:五家口碑产品推荐评价领先低温环境性能衰减 - 品牌推荐
  • 2026年金源环宇深度解析:从技术专利布局看其机器人动力电源核心竞争力分析 - 品牌推荐
  • 别再只配ntp-service unicast-server了!华为设备NTP五种工作模式详解与选型指南
  • 告别编译噩梦:用Qt在线安装器搞定MITK所有依赖(OpenSSL、Qt组件一键配齐)