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:重命名表中现有的列

• RENAME[TO|AS]new_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:将要删除的表名

相关推荐
Data_agent2 小时前
京东图片搜索商品API,json数据返回
数据库·python·json
CC大煊2 小时前
【java】Druid数据库连接池完整配置指南:从入门到生产环境优化
java·数据库·springboot
学Linux的语莫2 小时前
mysql主从同步(复制)搭建
数据库·mysql
SelectDB2 小时前
慢 SQL 诊断准确率 99.99%,天翼云基于 Apache Doris MCP 的 AI 智能运维实践
数据库·人工智能·apache
JIngJaneIL2 小时前
基于java+ vue交友系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·交友
MySQL实战3 小时前
MySQL 在哪些场景下不会写 binlog
mysql
苹果酱05673 小时前
解决linux mysql命令 bash: mysql: command not found 的方法
java·vue.js·spring boot·mysql·课程设计
数据知道3 小时前
为什么要用向量数据库?常用的向量数据库有哪些以及如何选择?
数据库·向量数据库
dixiuapp3 小时前
设备维修记录系统,从数据沉淀到价值挖掘的跃迁
大数据·数据库·人工智能