SQL DDL 库表管理
type
status
date
slug
summary
tags
category
icon
password
一、SQL 语句分类
类型 | 全称 | 作用 | 常用命令 |
DDL | 数据定义语言 | 管理库/表结构 | CREATE, DROP, ALTER |
DML | 数据操作语言 | 操作表内数据 | INSERT, DELETE, UPDATE, SELECT |
DCL | 数据控制语言 | 管理用户权限 | GRANT, REVOKE |
二、数据库操作指南
1. 查看数据库
系统库说明:
数据库名 | 作用 |
information_schema | 存储数据库元数据(版本、字符集等) |
mysql | 存储用户、密码、权限信息 |
performance_schema | 存储服务器性能数据(连接数、线程等) |
sys | 简化版性能监控库 |
sys:对performance_schema和information_schema数据库的简化,方便数据库管理员查看
2. 创建数据库(修正字符集错误)
永久修改字符集(/etc/my.cnf):
3. 删除数据库
4. 切换数据库
三、数据表操作详解
1. 创建表语法
示例:
2. 数据类型速查表
类型 | 说明 | 示例 |
整数 | 根据范围选择 | TINYINT, INT, BIGINT |
浮点数 | 需指定总位数和小数位 | FLOAT(5,2) → 123.45 |
字符串 | CHAR定长 / VARCHAR变长 | CHAR(10), VARCHAR(255) |
文本 | 存储大段文字 | TEXT(最大 64KB) |
枚举 | 固定选项值 | ENUM('是','否') |
日期时间 | 记录时间信息 | DATE, DATETIME |
3. 常用约束
约束 | 作用 |
PRIMARY KEY | 主键(唯一且非空) |
AUTO_INCREMENT | 自增(仅用于整数) |
NOT NULL | 禁止为空 |
UNIQUE | 值必须唯一 |
DEFAULT | 默认值 |
4. 查看表信息
5. 删除表
四、MySQL 存储引擎storage engine
支持多种不同的存储引擎,存储引擎不同,MySQL数据库支持的功能、特性是不一样的
1. 查看引擎
2. 两大核心引擎对比
特性 | MyISAM | InnoDB(默认) |
事务支持 | ❌ 不支持 | ✅ 支持 ACID 事务 |
锁机制 | 表级锁(并发性低) | 行级锁(高并发) |
外键支持 | ❌ | ✅ |
崩溃恢复 | 弱 | 强(写日志优先) |
存储文件 | .MYD(数据)+ .MYI(索引) | .ibd(单文件整合) |
适用场景 | 读多写少的静态表 | 读写频繁、需事务的业务表 |
.sdi表结构文件
锁是计算机协调多个进程或线程并发访问某一资源的机制。
表锁顾名思义就是对表级别的锁定,每次操作锁住整张表
行锁顾名思义就是对行的锁定,每次操作锁住操作行
一个表对应一个ibd文件,一个文件存储表相关的数据、索引、表结构
MySQL支持所有引擎
核心存储引擎对比
引擎 | 是否支持 | 事务支持 | 关键特性 | 适用场景 |
InnoDB | YES | YES | 支持事务、行级锁、外键、崩溃恢复(默认引擎) | 高并发事务处理 (OLTP) |
MyISAM | YES | NO | 表级锁、全文索引、高读取性能 | 只读/低频写数据仓库 |
MEMORY (HEAP) | YES | NO | 数据存内存、极高读写速度 | 临时表/缓存 |
CSV | YES | NO | 数据存CSV文件 | 数据导入导出 |
ARCHIVE | YES | NO | 高压缩率(Zlib)、仅支持INSERT/SELECT | 日志类历史数据存储 |
BLACKHOLE | YES | NO | 写入数据自动丢弃 | 主从复制中继/性能测试 |
MRG_MYISAM | YES | NO | 合并多个MyISAM表为逻辑视图 | 分表数据聚合查询 |
PERFORMANCE_SCHEMA | YES | NO | 性能监控指标存储 | 服务器性能分析 |
~~ FEDERATED~~ | NO | - | 跨服务器数据访问 | (当前未启用) |
~~ ndbcluster~~ | NO | - | 集群存储引擎 | (当前未启用) |
⚠️ 禁用引擎说明:ndbcluster(MySQL Cluster) 和FEDERATED(跨服务器表) 在您的服务器上未启用,需重新编译或配置加载。
3. 指定引擎建表
4. 修改默认引擎(
/etc/my.cnf)最佳实践:
- 生产环境统一使用 InnoDB 引擎
- 建表时显式指定字符集:
CHARSET=utf8mb4
- 重要操作前备份:
mysqldump -u root -p mydb > mydb_backup.sql
Loading...