MySQL 数据库表的操作实战案例

 更新时间:2026年05月06日 10:21:47   作者:重生之小比特  
MySQL表是数据存储的核心容器,掌握表的创建、查看、修改、删除是数据库开发必备技能,本文结合实战案例,带你系统学习MySQL表的所有基础操作,小白也能快速上手,感兴趣的朋友一起看看吧

MySQL 表是数据存储的核心容器,掌握表的创建、查看、修改、删除是数据库开发必备技能。本文结合实战案例,带你系统学习 MySQL 表的所有基础操作,小白也能快速上手。

一、创建表(CREATE TABLE)

创建表是定义数据结构的第一步,需指定字段名、数据类型,还可配置字符集、校验规则、存储引擎。

1. 基础语法

CREATE TABLE table_name (
  field1 datatype,
  field2 datatype,
  field3 datatype
) CHARACTER SET 字符集 COLLATE 校验规则 ENGINE 存储引擎;
  • field:列名(字段名)
  • datatype:列的数据类型(int、varchar、date 等)
  • CHARACTER SET:字符集,不指定则继承数据库字符集
  • COLLATE:校验规则,不指定则继承数据库规则
  • ENGINE:存储引擎,决定表的存储方式与特性

2. 实战案例

创建用户表 users,包含 id、姓名、密码、生日:

CREATE TABLE users (
  id INT,
  name VARCHAR(20) COMMENT '用户名',
  password CHAR(32) COMMENT '密码是32位的md5值',
  birthday DATE COMMENT '生日'
) CHARACTER SET utf8 ENGINE MyISAM;

3. 存储引擎与文件说明

不同存储引擎生成的磁盘文件不同:

  • MyISAM:3 个文件
    • users.frm:表结构文件
    • users.MYD:表数据文件
    • users.MYI:表索引文件
  • InnoDB(默认):2 个文件
    • 表名.frm:表结构
    • 表名.ibd:数据 + 索引合并存储

文件路径示例(Windows):C:\ProgramData\MySQL\MySQL Server 5.7\Data\数据库名\

二、查看表结构(DESC)

创建表后,用 DESC 命令快速查看字段、类型、是否为空等信息。

语法

DESC 表名;
-- 或 DESCRIBE 表名;

示例

DESC users;

返回结果包含:

  • Field:字段名
  • Type:数据类型
  • Null:是否允许为空
  • Key:索引类型
  • Default:默认值
  • Extra:额外信息(自增等)

三、修改表(ALTER TABLE)

业务迭代中常需调整表结构,ALTER TABLE 可完成添加字段、修改字段、删除字段、重命名表 / 字段等操作。

1. 添加字段

ALTER TABLE 表名 ADD 字段名 数据类型 [COMMENT '注释'] [位置];
  • 位置:FIRST(最前)、AFTER 字段名(指定字段后)

示例:给 users 加图片路径字段,放在 birthday 后:

ALTER TABLE users ADD assets VARCHAR(100) COMMENT '图片路径' AFTER birthday;

✅ 新增字段不影响原有数据,旧数据该字段默认为 NULL。

2. 修改字段类型 / 长度

ALTER TABLE 表名 MODIFY 字段名 新数据类型;

示例:把 name 长度从 20 改为 60:

ALTER TABLE users MODIFY name VARCHAR(60);

3. 删除字段

⚠️ 危险操作:删除字段会永久丢失该列所有数据!

ALTER TABLE 表名 DROP 字段名;

示例:删除 password 字段:

ALTER TABLE users DROP password;

4. 重命名表

ALTER TABLE 旧表名 RENAME [TO] 新表名;
-- TO 可省略

示例users 改名为 employee

ALTER TABLE users RENAME TO employee;

5. 重命名字段

CHANGE完整定义新字段(名称 + 类型):

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型;

示例name 改为 xingming

ALTER TABLE employee CHANGE name xingming VARCHAR(60);

四、删除表(DROP TABLE)

彻底删除表结构 + 所有数据,不可逆,务必谨慎!

语法

DROP [TEMPORARY] TABLE [IF EXISTS] 表名1 [, 表名2...];
  • IF EXISTS:表不存在也不报错,脚本必备
  • TEMPORARY:仅删除临时表

示例

-- 安全删除单表
DROP TABLE IF EXISTS users;
-- 同时删除多表
DROP TABLE IF EXISTS t1, t2, employee;

五、完整操作流程(实战回顾)

-- 1. 创建表
CREATE TABLE users (
  id INT,
  name VARCHAR(20),
  password CHAR(32),
  birthday DATE
) CHARSET utf8 ENGINE MyISAM;
-- 2. 插入测试数据
INSERT INTO users VALUES
(1,'a','b','1982-01-04'),
(2,'b','c','1984-01-04');
-- 3. 添加字段
ALTER TABLE users ADD assets VARCHAR(100) AFTER birthday;
-- 4. 修改字段长度
ALTER TABLE users MODIFY name VARCHAR(60);
-- 5. 删除字段
ALTER TABLE users DROP password;
-- 6. 重命名表
ALTER TABLE users RENAME TO employee;
-- 7. 重命名字段
ALTER TABLE employee CHANGE name xingming VARCHAR(60);
-- 8. 删除表
DROP TABLE IF EXISTS employee;

六、高频注意事项

  1. 删除字段 / 表前必备份,数据丢失无法恢复
  2. 字段命名避关键字,如 orderuser
  3. 字符集统一,推荐 utf8mb4 支持 emoji
  4. 生产优先 InnoDB,支持事务、外键、崩溃恢复
  5. ALTER 谨慎执行,大表会锁表,建议低峰操作

总结

MySQL 表操作核心就 4 类:

  • CREATE TABLE:建表定结构
  • DESC:查结构看细节
  • ALTER TABLE:改字段 / 表名
  • DROP TABLE:删表清数据

掌握这些,日常开发 90% 的表结构需求都能搞定。

到此这篇关于MySQL 数据库表的操作的文章就介绍到这了,更多相关mysql数据库表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL运算符!=和<>及=和<=>的使用区别

    MySQL运算符!=和<>及=和<=>的使用区别

    本文主要介绍了MySQL运算符!=和<>及=和<=>的使用区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Mysql 查询数据库容量大小的方法步骤

    Mysql 查询数据库容量大小的方法步骤

    这篇文章主要介绍了Mysql 查询数据库容量大小的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 碰到MySQL无法启动1067错误问题解决方法

    碰到MySQL无法启动1067错误问题解决方法

    创建primay key过程中发生了断电,当电脑再次启动时候,发现mysql 服务无法启动,使用 net start 提示 1067错误;后来只能通过手工删除数据文件,日志文件,再启动服务,然后导入数据来完成
    2013-01-01
  • mysql快速添加百万条记录的语句

    mysql快速添加百万条记录的语句

    本文介绍一下关于MySQL使用INSERT SELECT批量插入数据的方法
    2013-11-11
  • MYSQL LAG()与LEAD()的区别

    MYSQL LAG()与LEAD()的区别

    MYSQL LAG()与LEAD()这两个函数是偏移量函数,可以查出一个字段的前面N个值或者后面N个值,本文详细的介绍一下这两个函数的区别,感兴趣的可以了解一下
    2023-05-05
  • 设置Mysql5.6允许外网访问的详细流程分享

    设置Mysql5.6允许外网访问的详细流程分享

    今天小编就为大家分享一篇设置Mysql5.6允许外网访问的详细流程分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • MySQL中的交叉连接、自然连接和内连接查询详解

    MySQL中的交叉连接、自然连接和内连接查询详解

    这篇文章主要介绍了MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Mysql启动报ERROR:2002的分析与解决

    Mysql启动报ERROR:2002的分析与解决

    这篇文章主要给大家介绍了关于Mysql启动时报ERROR:2002问题的分析与解决方法,文中通过示例代码介绍将该问题分析的非常详细,对同样遇到这个问题的朋友们具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-08-08
  • MySQL8.0版本如何正确的使用窗口函数详解

    MySQL8.0版本如何正确的使用窗口函数详解

    MySQL 8.0引入的窗口函数,增强了数据分析能力,窗口函数允许对数据集(窗口)进行操作,与GROUPBY类似,但每个查询行生成独立结果,包括聚合函数如SUM、AVG,专用窗口函数如ROW_NUMBER等,窗口函数应用于数据分组、排序、排名,并支持复杂分析场景,需要的朋友可以参考下
    2024-11-11
  • SQL计算timestamp的差值的方法

    SQL计算timestamp的差值的方法

    这篇文章主要介绍了SQL计算timestamp的差值的方法的相关资料,需要的朋友可以参考下
    2017-05-05

最新评论