尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

MySQL 表的操作全解:创建、查看、修改、删除,一篇讲透

发布时间:2026/9/27 21:44:24

资讯中心
01
ARTICLE

MySQL 表的操作全解:创建、查看、修改、删除,一篇讲透

MySQL 表的操作全解:创建、查看、修改、删除,一篇讲透
上一篇讲了库的操作这一篇来系统掌握 MySQL **表table**的完整操作创建表、查看表结构、修改表结构、删除表。特别是ALTER TABLE的各种用法是日常开发改动表结构的高频操作一定得记牢。一、创建表MySQL 使用CREATE TABLE语句创建表语法如下CREATETABLEtable_name(field1 datatype,field2 datatype,field3 datatype)characterset字符集collate校验规则engine存储引擎;语法说明field表示列名datatype表示列的类型如int、varchar、datecharacter set 字符集如果不指定则以所在数据库的字符集为准collate 校验规则如果不指定则以所在数据库的校验规则为准engine 存储引擎决定表在磁盘上的存储方式如MyISAM、InnoDB。二、创建表案例createtableusers(idint,namevarchar(20)comment用户名,passwordchar(32)comment密码是32位的md5值,birthdaydatecomment生日)charactersetutf8engineMyISAM;comment用来给字段添加注释方便后来者理解字段含义。不同的存储引擎建表生成的文件不一样上面users表用的是MyISAM引擎在数据目录下会生成三个文件文件含义users.frm表结构users.MYD表数据users.MYI表索引打开数据目录例如C:\ProgramData\MySQL\MySQL Server 5.7\Data\test1可以看到名称类型大小db.optOption 文件1 KBperson.frmFRM 文件9 KBperson.ibdIBD 文件96 KBusers.frmFRM 文件9 KBusers.MYDMYD 文件0 KBusers.MYIMYI 文件1 KB 备注如果改成InnoDB引擎创建表就不会有.MYD/.MYI而是.frm表结构.ibd表数据和索引一起存两个文件。这也是 InnoDB 和 MyISAM 的直观区别。三、查看表结构desc表名;以users表为例mysql desc users; -------------------------------------------------- | Field | Type | Null | Key | Default | Extra | -------------------------------------------------- | id | int(11) | YES | | NULL | | | name | varchar(20) | YES | | NULL | | | password | char(32) | YES | | NULL | | | birthday | date | YES | | NULL | | --------------------------------------------------各列含义列名含义Field字段名字Type字段类型Null是否允许为空Default默认值Extra扩充信息如自增四、修改表实际开发中经常要调整表结构改字段名、改字段大小、改类型、改字符集、改存储引擎甚至增删字段。这时就需要ALTER TABLE。4.1 ALTER TABLE 通用语法-- 添加字段ALTERTABLEtablenameADD(columndatatype[DEFAULTexpr][,columndatatype]...);-- 修改字段修改类型/大小ALTERTABLEtablenameMODIFY(columndatatype[DEFAULTexpr][,columndatatype]...);-- 删除字段ALTERTABLEtablenameDROP(column);4.2 实战案例先给users表插入两条数据mysqlinsertintousersvalues(1,a,b,1982-01-04),(2,b,c,1984-01-04);① 添加一个字段保存图片路径altertableusersaddassetsvarchar(100)comment图片路径afterbirthday;after birthday表示把新字段插在birthday之后。查看结果——新增字段对原表已有数据没有影响mysql desc users; --------------------------------------------------- | Field | Type | Null | Key | Default | Extra | --------------------------------------------------- | id | int(11) | YES | | NULL | | | name | varchar(20) | YES | | NULL | | | password | char(32) | YES | | NULL | | | birthday | date | YES | | NULL | | | assets | varchar(100) | YES | | NULL | | --------------------------------------------------- mysql select * from users; --------------------------------------- | id | name | password | birthday | assets | --------------------------------------- | 1 | a | b | 1982-01-04 | NULL | -- 原数据仍然存在 | 2 | b | c | 1984-01-04 | NULL | ---------------------------------------② 修改 name 字段长度altertableusersmodifynamevarchar(60);结果name从varchar(20)变成varchar(60)。③ 删除 password 字段altertableusersdroppassword;⚠️删除字段一定要小心字段和它对应的列数据都会一起消失无法恢复。删除后结构--------------------------------------------------- | Field | Type | Null | Key | Default | Extra | --------------------------------------------------- | id | int(11) | YES | | NULL | | | name | varchar(60) | YES | | NULL | | | birthday | date | YES | | NULL | | | assets | varchar(100) | YES | | NULL | | ---------------------------------------------------④ 修改表名altertableusersrenametoemployee;to可以省略等价于alter table users rename employee;。改名后数据不丢失mysql select * from employee; ----------------------------- | id | name | birthday | assets | ----------------------------- | 1 | a | 1982-01-04 | NULL | | 2 | b | 1984-01-04 | NULL | -----------------------------⑤ 修改字段名altertableemployee change name xingmingvarchar(60);⚠️ 用change修改字段名时新字段需要给出完整定义类型必须带上不能只写名字。结果--------------------------------------------------- | Field | Type | Null | Key | Default | Extra | --------------------------------------------------- | id | int(11) | YES | | NULL | | | xingming | varchar(60) | YES | | NULL | | | birthday | date | YES | | NULL | | | assets | varchar(100) | YES | | NULL | | ---------------------------------------------------五、删除表语法DROP[TEMPORARY]TABLE[IFEXISTS]tbl_name[,tbl_name]...;示例droptablet1;⚠️ 删除表是不可逆操作表结构和数据都会一并删除。IF EXISTS加上可避免表不存在时报错一次性可删除多张表用逗号分隔。六、总结操作命令创建表create table 表名(字段 类型 ...) engine存储引擎;查看表结构desc 表名;添加字段alter table 表名 add 字段 类型 [after 某字段];修改字段类型/大小alter table 表名 modify 字段 新类型;修改字段名alter table 表名 change 旧名 新名 完整类型;删除字段alter table 表名 drop 字段;修改表名alter table 旧表名 rename to 新表名;删除表drop table [if exists] 表名;核心一句话建表选好存储引擎MyISAM 三文件 vs InnoDB 两文件改表用ADD增、MODIFY改类型、CHANGE改名字、DROP删字段删除类操作务必谨慎。如果这篇对你有帮助欢迎点赞收藏。本系列持续更新 MySQL 操作。有疑问欢迎评论区交流。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。