【mysql】2.数据表操作

目录

一、创建表

[1. 创建表的基本语法](#1. 创建表的基本语法)

[2. 查看表结构](#2. 查看表结构)

[3. 查看建表语句](#3. 查看建表语句)

二、修改表

[1. 重命名表](#1. 重命名表)

[2. 插入数据](#2. 插入数据)

[3. 查询数据](#3. 查询数据)

[4. 添加字段](#4. 添加字段)

[5. 修改字段属性](#5. 修改字段属性)

[6. 删除字段](#6. 删除字段)

[7. 重命名表(另一种写法)](#7. 重命名表(另一种写法))

[8. 修改字段名](#8. 修改字段名)

三、删除表

总结建议


一、创建表

1. 创建表的基本语法

复制代码
CREATE TABLE user1(
    id INT,
    name VARCHAR(20) COMMENT '用户名',
    password CHAR(32) COMMENT '用户密码',
    birthday DATE COMMENT '用户生日'
);

说明

  • 括号内为字段定义

  • 括号外可选的参数(如存储引擎、字符集等)

  • 字段之间用逗号隔开

2. 查看表结构

复制代码
DESC user1;

显示表的详细信息(字段名、类型、是否为空、键、默认值、额外信息等)。

3. 查看建表语句

复制代码
SHOW CREATE TABLE user1 \G;

\G 的作用是将结果按行垂直显示,便于阅读。

二、修改表

1. 重命名表

复制代码
ALTER TABLE user1 RENAME TO user;

2. 插入数据

复制代码
INSERT INTO user VALUES(1, '1', '123', '2010-10-21');

3. 查询数据

复制代码
SELECT * FROM user;

4. 添加字段

复制代码
ALTER TABLE user ADD image_path VARCHAR(128) COMMENT '头像路径' AFTER birthday;
  • AFTER birthday:在 birthday 字段后面添加新字段

  • 如果不指定 AFTER,默认添加到最后一列

  • 已存在的数据行,新字段的值默认为 NULL

5. 修改字段属性

复制代码
ALTER TABLE user MODIFY name VARCHAR(60);
  • MODIFY 会直接修改原字段的定义

  • 使用 SHOW CREATE TABLE user \G 可以看到建表语句中对应字段的定义已被直接修改

6. 删除字段

复制代码
ALTER TABLE user DROP password;

注意:删除字段会永久丢失该列的数据,操作前请确认。

7. 重命名表(另一种写法)

复制代码
ALTER TABLE user RENAME TO User;

8. 修改字段名

复制代码
ALTER TABLE User CHANGE name xingming VARCHAR(60) DEFAULT NULL;

CHANGE 可以同时修改字段名和字段属性:

  • 第一个参数:原字段名

  • 第二个参数:新字段名

  • 第三个参数:字段类型和属性

三、删除表

复制代码
DROP TABLE User;

注意:删除表会永久丢失表中的所有数据,操作前请确认。

总结建议

  • 改名和删除操作不可逆,在生产环境中需要谨慎执行

  • 删除字段前建议先备份相关数据

  • 建议在测试环境验证后再到生产环境执行

相关推荐
Nturmoils6 小时前
订单列表慢查询,先看 WHERE、ORDER BY 和 LIMIT
数据库
渣波10 小时前
拒绝 SQL 焦虑!手把手带你用 NestJS + Prisma + DTO 写出“防弹”级后端代码
javascript·数据库·后端
Jim6001 天前
【吃透 MySQL InnoDB连载】第 1 章・解密线上数据库高频故障
mysql
GreatSQL1 天前
gt-checksum v4.0.0 新功能解读系列文章(4):SSL 加密连接——数据校验传输安全再升级
mysql
倔强的石头_1 天前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库
倔强的石头_4 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
云技纵横4 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
沉默王二4 天前
面试官:RAG 不用向量数据库,用 MySQL 硬扛?我:100 万向量不是很轻松?
mysql·面试·ai编程
冬奇Lab5 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm