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:将要删除的表名