MySQL 命令速查表
MySQL 最常用命令的快速参考,按功能分组,适合日常开发查阅
连接与数据库管理
mysql -u root -p |
本地连接 MySQL |
mysql -h host -P 3306 -u user -p dbname |
连接远程数据库 |
SHOW DATABASES; |
查看所有数据库 |
CREATE DATABASE db CHARACTER SET utf8mb4; |
创建数据库 |
USE database_name; |
切换数据库 |
DROP DATABASE IF EXISTS db; |
删除数据库 |
status; |
查看当前连接状态 |
表操作
SHOW TABLES; |
查看当前库所有表 |
DESC table_name; |
查看表结构 |
SHOW CREATE TABLE table_name; |
查看建表语句 |
CREATE TABLE t (id BIGINT PRIMARY KEY AUTO_INCREMENT, ...); |
创建表 |
ALTER TABLE t ADD COLUMN col VARCHAR(50); |
添加列 |
ALTER TABLE t MODIFY COLUMN col VARCHAR(100); |
修改列类型 |
ALTER TABLE t DROP COLUMN col; |
删除列 |
DROP TABLE IF EXISTS t; |
删除表 |
TRUNCATE TABLE t; |
清空表数据(重置自增ID) |
CRUD 操作
INSERT INTO t (col1, col2) VALUES (v1, v2); |
插入单条 |
INSERT INTO t (col) VALUES (v1), (v2), (v3); |
批量插入 |
SELECT col1, col2 FROM t WHERE condition; |
条件查询 |
UPDATE t SET col = val WHERE condition; |
条件更新 |
DELETE FROM t WHERE condition; |
条件删除 |
INSERT INTO t ... ON DUPLICATE KEY UPDATE ...; |
插入或更新 |
REPLACE INTO t (col1, col2) VALUES (v1, v2); |
替换插入 |
查询技巧
SELECT * FROM t ORDER BY col DESC LIMIT 10; |
排序 + 分页 |
SELECT col, COUNT(*) FROM t GROUP BY col; |
分组统计 |
SELECT * FROM t1 JOIN t2 ON t1.id = t2.fk_id; |
内连接 |
SELECT * FROM t1 LEFT JOIN t2 ON t1.id = t2.fk_id; |
左连接 |
SELECT DISTINCT col FROM t; |
去重查询 |
SELECT * FROM t WHERE col IN (SELECT ...); |
子查询 |
SELECT * FROM t WHERE col LIKE '%keyword%'; |
模糊查询 |
SELECT IFNULL(col, '默认值') FROM t; |
空值处理 |
用户与权限
CREATE USER 'user'@'%' IDENTIFIED BY 'pass'; |
创建用户 |
GRANT SELECT, INSERT ON db.* TO 'user'@'%'; |
授权 |
REVOKE DELETE ON db.* FROM 'user'@'%'; |
撤销权限 |
SHOW GRANTS FOR 'user'@'%'; |
查看权限 |
ALTER USER 'user'@'%' IDENTIFIED BY 'newpass'; |
修改密码 |
DROP USER 'user'@'%'; |
删除用户 |
FLUSH PRIVILEGES; |
刷新权限 |
备份与恢复
mysqldump -u root -p --single-transaction db > backup.sql |
备份数据库 |
mysqldump -u root -p --all-databases > all.sql |
备份所有库 |
mysqldump -u root -p db table1 table2 > tables.sql |
备份指定表 |
mysqldump --no-data db > schema.sql |
只备份结构 |
mysql -u root -p db < backup.sql |
恢复数据库 |
source /path/to/backup.sql |
在 MySQL 内导入 |
性能优化
EXPLAIN SELECT ...; |
分析查询执行计划 |
SHOW INDEX FROM table_name; |
查看表索引 |
CREATE INDEX idx_col ON t(col); |
创建索引 |
SHOW FULL PROCESSLIST; |
查看当前连接和查询 |
KILL process_id; |
终止指定查询 |
ANALYZE TABLE t; |
更新表统计信息 |
SET GLOBAL slow_query_log = ON; |
开启慢查询日志 |
SHOW STATUS LIKE 'Threads%'; |
查看线程状态 |