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 ... 永久删除表
相关推荐
名字还没想好☜7 小时前
Python f-string 进阶:数字格式化、对齐填充、调试 = 号与嵌套表达式
开发语言·数据库·python·字符串格式化·f-string
ltl7 小时前
Serverless 数据库弹性理论:Neon 与 Aurora Serverless v2
数据库
Dxy12393102168 小时前
Python 如何使用 MySQL 的事务
python·mysql
marvelyu12 小时前
每天10分钟学会OceanBase系列(Day 20):跨机房容灾实战——构建多数据中心高可用架构
java·大数据·数据库
ZCBUS实时计算12 小时前
金融证券实时数仓建设实践:轻量化实时计算平台落地,实现交易数据端到端秒级处理
大数据·数据库·数据仓库·金融·flink·dba·etl
zd20057212 小时前
海洋微生物数据库
数据库·宏基因组
海上小飞龙12 小时前
Redis 分布式锁原理:从 SET NX EX 到 Redisson 看门狗
数据库·redis·分布式
xiaoye-duck13 小时前
MySQL 表约束全解:从基础约束到外键关联规则
数据库·mysql
Hammer_Hans13 小时前
DFT笔记98
java·开发语言·数据库
迪康Defender14 小时前
从静态存储到动态流转:终端透明加密两种模式实战解析
运维·服务器·网络·数据库·其他