尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【MySQL】数据库表的操作 - 实践

【MySQL】数据库表的操作 - 实践
📅 发布时间:2026/6/18 17:14:38

【MySQL】数据库表的操作 - 实践

2025-12-13 16:47  tlnshuju  阅读(0)  评论(0)    收藏  举报

MySQL数据库表的操作

  • MySQL表的操作
  • github地址
  • 0. 前言
  • 1. 创建表
  • 2. 查看表与表结构
    • 查看已有表
    • 查看表的具体结构
    • 查看表创建时的使用的命令
  • 3. 修改表
    • 修改表名
    • 修改表的属性
      • 在表中添加列
      • 在表中修改列属性
      • 在表中删除列
      • 修改表的列名
  • 4. 删除表
    • 用法
    • 注意与危害
      • 一、数据不可恢复
      • ⚙️ 二、表结构丢失
      • 三、可能导致依赖关系破坏
      • 四、日志与恢复机制受限
      • ⚡ 五、误操作风险高
      • ✅ 安全建议
  • 5. 结语

MySQL表的操作

github地址

有梦想的电信狗

0. 前言

在学习 MySQL 的过程中,“表”是数据库操作的核心对象。
无论是存储用户信息、记录日志、还是管理订单数据,一切都离不开表的创建、查看、修改与删除。
很多初学者在接触 SQL 时,只知道 CREATE TABLE 的基本语法,却容易忽略存储引擎、字符集、表结构调整等细节。
本文将以通俗易懂的方式,系统讲解 MySQL 表的常用操作命令与注意事项,
通过实例演示和图示说明,让你不仅会“用”,还真正理解“为什么这样用”。

目标:让你在学完本篇后,能独立完成表的定义、调整与安全删除操作,
并对存储引擎、结构变化等底层机制有更清晰的认识。


1. 创建表

语法:

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

说明:

  • field:表示列名
  • datatype:表示列的类型
  • character set:字符集,如果没有指定字符集,则以所在数据库的字符集为准
  • collate:校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

创建表示例:

create database users;   # 创建表首先需要 创建并使用数据库
use users;

以下两种写法均可

# 创建表 以下两种写法均可
create table user1 (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) character set utf8 engine MyISAM;
create table if not exists user2 (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) charset=utf8 collate=utf8_general_ci engine=InnoDB;
  • 建表后,相应数据库的文件夹中出现了不同个数的表结构,是因为两张表使用了不同的存储引擎

  • 不同的存储引擎,对于在磁盘中文件个数的要求的不同

在这里插入图片描述

说明:

  • 不同的存储引擎,创建表的文件不一样
    • user1表存储引擎是MyISAM,在数据目录中有三个不同的文件,分别是:
      • users.frm:表结构
      • users.MYD:表数据
      • users.MYI:表索引
    • 其中在MySQL 5.7 中,MyISAM存储引擎的表在数据目录中有以上三个不同的文件,MySQL 8.0 之后数据目录中优化为了两个文件

2. 查看表与表结构

命令汇总一览:

# 查看当前正在使用的数据库
select database();
# 查看数据库中存在的表
show tables;
# 查看 表的结构
desc table_name   # table_name 为表名   desc 为 describe 的前四个字母

查看已有表

语法:

# 查看 当前数据库已有的表
select database();
show tables;

在这里插入图片描述

查看表的具体结构

语法:

# 查看 表的具体结构
desc table_name   # table_name 为表名

使用示例:

# 查看 表 user1 的具体结构
desc user1   # user1 为表名
# 查看 表 user2 的具体结构
desc user2   # user2 为表名

在这里插入图片描述

在这里插入图片描述

查看表创建时的使用的命令

语法:

show create table table_name;     # 查看表创建时的使用的命令
show create table table_name \G   # 该写法获取到的结果更直观,该命令需要去掉分号

使用示例:

show create table user1;     # 查看表创建时的使用的命令
show create table user1 \G   # 该写法获取到的结果更直观,该命令需要去掉分号

在这里插入图片描述


3. 修改表

  • 在项目实际开发中,经常需要修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有添加字段,删除字段等等的需求。这时我们就需要修改表

修改表名

  • 修改表名
alter table oldName rename to newName;
alter table oldName rename newName;  # to 可以省略

在这里插入图片描述


修改表的属性

语法:

# 新增列属性
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);
# 修改列属性
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);
# 删除列
ALTER TABLE tablename DROP (column);

先给表中添加两条记录:

insert into user values(1,'张三','12345','2025-5-20');
insert into user values(2,'李四','54321','2025-6-18');

在这里插入图片描述

在表中添加列

语法:

# 新增列属性
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);

示例:

  • 在user表添加一个字段,用于保存图片路径
alter table user add image_path varchar(128) comment '用户的图片路径' after birthday;
select * from user;

在这里插入图片描述


在表中修改列属性

语法:

# 修改列属性
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);

使用示例:

  • user表中的name列的类型改为最长为60的变长字符串varchar(60)
alter table user modify name varchar(60);

在这里插入图片描述


在表中删除列

注意:删除字段一定要小心,删除字段及其对应的列数据都没了

语法:

# 删除列
ALTER TABLE tablename DROP (column);

使用示例:

  • 将表中的 password 列删除
# 将表中的 password 列删除
alter table user drop password;

在这里插入图片描述

修改表的列名

语法:

 alter table name_table change 表的旧列名 表的新列名 列数据类型; # --新字段需要完整定义

使用示例:

show tables;    # 显示可使用的表
desc user;		# 查看表的属性
alter table user change name NAME varchar(80);	# 修改 name 为 NAME,并指定数据类型为 varchar(80)
desc user;		# 查看修改后的结果

在这里插入图片描述


4. 删除表

实际中不到万不得已,不建议对表执行删除操作

用法

语法:

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

使用示例:

drop table user2;

在这里插入图片描述


注意与危害

在 MySQL 中执行 DROP TABLE 删除表操作,看似简单,但其危害往往非常严重。以下是对其危害的简述和分析:


一、数据不可恢复

  • 删除表会直接删除所有数据,包括表结构、索引、约束等元信息。
  • 与 DELETE FROM table 不同,DROP TABLE 不会留下可恢复的数据记录。
  • 即使有 rollback 或事务机制,也无法恢复,因为 DROP TABLE 是 DDL(数据定义语句),会 隐式提交事务。

⚙️ 二、表结构丢失

  • 执行后,表的定义信息在数据字典中被清除,无法再重新创建出完全一致的表。
  • 若无备份,连字段类型、索引、约束等设计信息都无法找回。

三、可能导致依赖关系破坏

  • 如果被删除的表被其他表(或视图、存储过程、外键等)依赖:
    • 外键约束失效;
    • 视图或存储过程无法执行;
    • 应用程序可能出现严重错误或崩溃。

四、日志与恢复机制受限

  • 虽然二进制日志(binlog)会记录 DROP TABLE 操作,但恢复时只能回放到删除之前的某个时间点。
  • 若未开启 binlog 或未及时备份,彻底丢失。

⚡ 五、误操作风险高

  • 在生产环境中,执行 DROP TABLE 常因疏忽造成不可逆的业务损失。
  • 常见误操作:
    • 在错误的数据库上执行;
    • 执行 DROP DATABASE 导致所有表被删除;
    • 使用自动化脚本时未限定环境(如测试/生产混用)。

✅ 安全建议

  1. 先备份:执行前务必使用 mysqldump 或物理备份工具备份表数据与结构。

  2. 使用 IF EXISTS:防止误删不存在的表。

    DROP TABLE IF EXISTS users;
  3. 使用回收站机制:将表改名代替直接删除:

    RENAME TABLE users TO users_backup_20251017;
  4. 限制权限:禁止普通账号执行 DROP 操作。


总结一句话:

DROP TABLE 是 MySQL 中最具破坏性的命令之一,一旦执行,数据和表结构将同时消失且无法通过事务恢复,因此必须慎用、先备份、再确认。


5. 结语

本文围绕 MySQL 中表的创建、查看、修改与删除进行了系统讲解,
从语法到示例,再到潜在风险分析,帮助你全面掌握“表”这一数据库的核心概念。

希望通过这篇文章,你不仅能熟练执行相关 SQL 命令,
更能在项目开发中学会思考与防范——比如在修改或删除表前养成备份的习惯。

数据库是系统的基石,而表结构的设计与维护,则是构建这座大厦的地基。
打好基础,才能在后续的数据库优化、索引设计、事务操作中更加得心应手。

学完这一章,建议继续深入学习:

  • 表约束(主键、外键、唯一约束)
  • 索引与查询优化
  • 视图与存储过程

让我们在下一篇中继续探索更高阶的 MySQL 世界


以上就是本文的所有内容了,如果觉得文章对你有帮助,欢迎 点赞⭐收藏 支持!如有疑问或建议,请在评论区留言交流,我们一起进步

分享到此结束啦
一键三连,好运连连!

你的每一次互动,都是对作者最大的鼓励!


征程尚未结束,让我们在广阔的世界里继续前行!

相关新闻

  • 打造你的第一个OpenUSD 3D世界:从零开始的场景构建完全指南
  • VirtualMotionCapture 完整使用指南:从入门到精通
  • JMeter负载测试配置与结果分析实践指南

最新新闻

  • 机床行业推广平台:2026年各品牌机床该去哪里做推广? - 品牌推荐大师1
  • 国内双相钢三通生产厂家实力排行及选型参考 - 起跑123
  • 如何实现VR设备跨品牌兼容:OpenVR空间校准器完整指南
  • 跨境独立站用户行为统计模块全栈开发:多维度用户分层数据可视化落地
  • 【MCP】MCP: The USB-C of AI
  • K2.6国产编程模型:首个支持全栈交付的AI工程智能体

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号