MySQL——表的操作

1.查看所有表

sql 复制代码
SHOW TABLES;
 

注意事项

  • 执行这些命令需要相应的权限,确保当前用户有权限查看表信息。
  • 不同数据库系统的语法差异较大,使用时需注意当前使用的数据库类型。
  • 某些数据库系统可能需要先切换到目标数据库才能查看其表信息。例如在MySQL中:
sql 复制代码
USE database_name;
SHOW TABLES;

2.创建表

sql 复制代码
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
field datatype [
约束] [comment '注解内容']
[, field datatype [约束] [comment '注解内容']] ...
) [engine 存储引擎] [character set 字符集] [collate 排序规则];

关键组成部分

表名 :table_name需遵循数据库命名规则,通常使用小写字母和下划线。

列定义:每列需指定列名、数据类型和可选约束。例如:

sql 复制代码
id INT PRIMARY KEY,
username VARCHAR(50) NOT NULL
 

• TEMPORARY:表⽰创建的是⼀个临时表

• field:列名 • datatype:数据类型

• comment:对列的描述或说明

• engine:存储引擎,不指定则使用默认存储引擎

• characterset:字符集,不指定则使⽤默认字符集

• collate:排序规则,不指定则使⽤默认排序规则

创建表示例

sql 复制代码
CREATE TABLE users (
    user_id SERIAL ,
    username VARCHAR(50) ,
    email VARCHAR(100) ,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    is_active BOOLEAN DEFAULT TRUE
) CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
 

3.表在磁盘上对应的文件

数据文件
  • MySQL(InnoDB) :默认存储在 .ibd 文件中(每个表一个文件,若启用 innodb_file_per_table)。
元数据文件
  • MySQL :表结构存储在 .frm 文件(5.7及之前)或系统表空间(8.0+)。
索引文件
  • InnoDB :索引与数据共存于 .ibd 文件(聚簇索引)。
  • PostgreSQL :索引单独存储为 base/<database_id>/<index_file_id>。
临时文件
  • MySQL :临时文件默认在 /tmp 目录(由 tmpdir 参数控制)。
日志文件

事务日志(如 InnoDB 的 ib_logfile*)不直接存储表数据,但影响持久性和恢复。

4.查看表结构

sql 复制代码
desc table_name;

5.修改表

语法

sql 复制代码
ALTER TABLE tbl_name [alter_option [, alter_option] ...];
alter_option: {
table_options
| ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]
| MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]
| DROP [COLUMN] col_name
| RENAME COLUMN old_col_name TO new_col_name
| RENAME [TO | AS] new_tbl_name

tbl_name:要修改的表名

• ADD:向表中添加列

• MODIFY:修改表中现有的列

• DROP:删除表中现有的列

• RENAMECOLUMN:重命名表中现有的列

• RENAMETO\|ASnew_tbl_name:重命名当前的表

示例

添加

sql 复制代码
alter table users ADD assets varchar(100)

修改

sql 复制代码
alter table users MODIFY assets varchar(255);

重命名某列

sql 复制代码
alter table users RENAME COLUMN assets TO avatar;

删除某个字段

sql 复制代码
alter table users DROP avatar;

重命名表名

sql 复制代码
alter table users RENAME TO test;

删除表

sql 复制代码
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

TEMPORARY:表⽰临时表

tbl_name:将要删除的表名

相关推荐
小马同学-2 小时前
MySQL主从复制和读写分离
数据库·mysql
谢亮_vipxieliang2 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
海绵宝宝转agent3 小时前
MySql高频面试八股开源笔记总结
mysql·面试·开源
geovindu3 小时前
sql: JSON and XML Data Handling in SQL using sql server 2025
大数据·数据库·sqlserver·数据库开发·数据库架构
IT大白鼠4 小时前
图数据库系列 · 第 02 篇——架构拆解:原生图存储到因果集群
数据库·架构·nosql
余槐i4 小时前
数据没回滚也不报错:@Transactional 自调用失效的 3 种复现与修复
spring boot·mysql·多线程·spring 事务
EatFan4 小时前
从“框架混战“到“运行时收敛“:2026 年 AI Agent 开发框架的三条路线之争
java·数据库·人工智能·多智能体·ai agent·mcp·agent 框架
小蒜学长4 小时前
基于SpringBoot的佳新超市管理系统设计与实现系统(代码+数据库+LW)
java·数据库·spring boot·后端·佳新超市管理系统
jinyishu_5 小时前
向量数据库入门:记录结构、索引、检索与选型
数据库
写后端的胖头鱼9 小时前
【高频面试题】FullText 全文索引(MySQL)
数据库·mysql·索引·全文索引