MySQL关于表的操作

1. 创建表

1.1 语法

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

1.2 说明

  • field:列名。

  • datatype:列的数据类型。

  • character set:字符集,默认使用数据库的字符集。

  • collate:校验规则,默认使用数据库的校验规则。

  • engine :存储引擎,如InnoDB、MyISAM

2. 创建表示例

2.1 示例代码

sql 复制代码
create table users (
    id int,
    name varchar(20) comment '用户名',
    password char(32) comment '密码是32位的md5值',
    birthday date comment '生日'
) character set utf8 engine MyISAM;

2.2 存储引擎说明

不同的存储引擎,创建表的文件不一样

  • MyISAM 引擎会生成三个文件:

    • users.frm:表结构。

    • users.MYD:表数据。

    • users.MYI:表索引。

  • InnoDB 引擎的表结构在**.frm** 文件中,数据和索引存储在**.ibd**文件或共享表空间中。

3. 查看表结构

3.1 命令

sql 复制代码
desc 表名;

3.2 示例

sql 复制代码
desc users;

3.3 输出字段说明

字段名 说明
Field 字段名称
Type 数据类型
Null 是否可为空
Key 索引类型
Default 默认值
Extra 额外信息(如自增)

4. 修改表

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

sql 复制代码
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);

4.1 添加字段

在users表中添加几条记录:

在users表中添加一个字段,用于保存图片路径:

sql 复制代码
alter table users add assets varchar(100) comment '图片路径' after birthday;

4.2 修改字段类型

sql 复制代码
alter table users modify name varchar(60);

修改name,将其长度改成60:

4.3 删除字段

sql 复制代码
alter table users drop password;

删除password列:

4.4 修改表名

sql 复制代码
alter table users rename to employee;

修改表名为employee:

4.5 修改字段名

将name列修改为姓名

5. 删除表

5.1 语法

sql 复制代码
drop table [if exists] 表名;

5.2 示例

sql 复制代码
drop table t1;

5.3 说明

  • if exists:防止因表不存在而报错。

  • 可同时删除多张表:drop table t1, t2

  • 删除表会永久移除表结构和所有数据


6. 操作总结表

操作 命令示例 说明
创建表 create table ... 定义表结构
查看表结构 desc 表名; 快速查看字段信息
添加字段 alter table ... add ... 可指定位置
修改字段 alter table ... modify ... 修改类型/长度
修改字段名 alter table ... change ... 修改字段名和类型
删除字段 alter table ... drop ... 永久删除列
修改表名 alter table ... rename ... 更改表名
删除表 drop table ... 永久删除表
相关推荐
这个DBA有点耶4 分钟前
SQL:2023新特性详解:JSON_TABLE、GREATEST/LEAST、QUALIFY 到底怎么用?
数据库·sql·mysql
AOI小白新手上路15 分钟前
江科协15-2 直流电机实验调试总结
数据库·mongodb
小王C语言17 分钟前
MySQL 用户管理:创建用户、给用户授权
数据库·mysql
程序员夏洛31 分钟前
Redis 的持久化机制有哪些?
java·数据库·redis
l1t32 分钟前
DeepSeek总结的修复pgrust v0.2 #83:generate_series 聚合及其底层的两个成本 - #84
数据库·postgresql
厦门德仔1 小时前
【YiFeiWebApi】易飞ERP与WMS系统接口对接实战:从0到1全流程指南
大数据·数据库
内存漫游1 小时前
Page 到底是什么:数据库如何把一条条记录放进磁盘
数据库
小镇敲码人1 小时前
【深入浅出】之Qt 事件系统实战:鼠标、键盘、滚轮、窗口与定时器事件
数据库·qt·网络协议·mysql·http
Sirens.1 小时前
MySQL数据库:索引
数据库·mysql
2601_962072501 小时前
大数据-234 离线数仓 - 异构数据源 DataX 将数据 从 HDFS 到 MySQL
大数据·mysql·hdfs