本文整理了 SQL 数据库操作中最常用的指令,涵盖库表管理、数据增删改查、多表查询、索引视图、用户权限以及关键的运维维护命令,旨在为开发者提供一份高效、实用的速查指南。持续更新中BUFF
1. 库与表管理 (DDL)
数据库操作
sql
-- 创建数据库
CREATE DATABASE 数据库名;
-- 删除数据库
DROP DATABASE 数据库名;
-- 切换数据库
USE 数据库名;
表结构操作
sql
-- 创建表
CREATE TABLE 表名 (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
create_time DATETIME
);
-- 查看表结构
DESC 表名;
-- 删除表
DROP TABLE 表名;
-- 清空表(保留结构,重置自增ID)
TRUNCATE TABLE 表名;
-- 新增列
ALTER TABLE 表名 ADD COLUMN 列名 VARCHAR(20);
-- 删除列
ALTER TABLE 表名 DROP COLUMN 列名;
-- 修改列类型
ALTER TABLE 表名 MODIFY COLUMN 列名 INT;
2. 数据操作 (DML)
插入数据
sql
-- 插入单条
INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);
-- 插入多条
INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2), (值3, 值4);
更新数据
sql
-- 修改数据(务必加 WHERE)
UPDATE 表名 SET 列1 = 新值 WHERE 条件;
删除数据
sql
-- 删除数据(务必加 WHERE)
DELETE FROM 表名 WHERE 条件;
3. 数据查询 (DQL)
基础查询
sql
-- 查询所有
SELECT * FROM 表名;
-- 查询指定列
SELECT 列1, 列2 FROM 表名;
-- 别名
SELECT 列1 AS 别名 FROM 表名;
-- 去重
SELECT DISTINCT 列名 FROM 表名;
条件筛选
sql
-- 基础条件
SELECT * FROM 表名 WHERE 条件;
-- 逻辑组合
SELECT * FROM 表名 WHERE 条件1 AND 条件2;
SELECT * FROM 表名 WHERE 条件1 OR 条件2;
-- 范围查询
SELECT * FROM 表名 WHERE id BETWEEN 10 AND 20;
-- 包含查询
SELECT * FROM 表名 WHERE id IN (1, 2, 3);
-- 模糊查询
SELECT * FROM 表名 WHERE name LIKE '%关键字%';
排序与分组
sql
-- 排序(ASC 升序,DESC 降序)
SELECT * FROM 表名 ORDER BY 列名 DESC;
-- 分组统计
SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名;
-- 分组后筛选
SELECT 列名, COUNT() FROM 表名 GROUP BY 列名 HAVING COUNT() > 1;
分页查询
sql
-- MySQL 分页 (从第 0 条开始,取 10 条)
SELECT * FROM 表名 LIMIT 0, 10;
4. 多表查询
连接查询
sql
-- 内连接(交集)
SELECT * FROM 表A INNER JOIN 表B ON 表A.id = 表B.aid;
-- 左连接(以左表为主)
SELECT * FROM 表A LEFT JOIN 表B ON 表A.id = 表B.aid;
-- 右连接(以右表为主)
SELECT * FROM 表A RIGHT JOIN 表B ON 表A.id = 表B.aid;
联合查询
sql
-- 合并结果(去重)
SELECT 列名 FROM 表A UNION SELECT 列名 FROM 表B;
-- 合并结果(不去重)
SELECT 列名 FROM 表A UNION ALL SELECT 列名 FROM 表B;
5. 索引与视图
索引管理
sql
-- 创建索引
CREATE INDEX 索引名 ON 表名 (列名);
-- 查看索引
SHOW INDEX FROM 表名;
-- 删除索引
DROP INDEX 索引名 ON 表名;
视图管理
sql
-- 创建视图
CREATE VIEW 视图名 AS SELECT 语句;
-- 删除视图
DROP VIEW 视图名;
6. 用户与权限
用户管理
sql
-- 创建用户
CREATE USER '用户名'@'%' IDENTIFIED BY '密码';
-- 授权(所有权限)
GRANT ALL PRIVILEGES ON 数据库.* TO '用户名'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
-- 查看用户权限
SHOW GRANTS FOR '用户名'@'%';
7. 实用维护与运维指令
开放远程访问 (关键运维)
sql
-- 1. 创建允许远程连接的用户 (% 表示任意主机)
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
-- 2. 授予远程用户所有权限
GRANT ALL PRIVILEGES ON . TO 'root'@'%' WITH GRANT OPTION;
-- 3. 刷新权限使其生效
FLUSH PRIVILEGES;
-- 注意:如果连不上,请检查防火墙端口是否开放
备份与还原 (Shell执行)
bash
# 备份整个数据库
mysqldump -u root -p 数据库名 > backup.sql
备份所有数据库
mysqldump -u root -p --all-databases > all_backup.sql
还原数据库
mysql -u root -p 数据库名 < backup.sql
进程管理
sql
-- 查看当前正在执行的线程(找慢查询)
SHOW PROCESSLIST;
-- 查看完整进程信息(不截断)
SHOW FULL PROCESSLIST;
-- 终止某个进程 (ID 来自 PROCESSLIST)
KILL 进程ID;
状态检查
sql
-- 查看服务器状态
SHOW STATUS;
-- 查看配置变量
SHOW VARIABLES;
-- 查看最大连接数配置
SHOW VARIABLES LIKE 'max_connections';
-- 查看当前连接数
SHOW STATUS LIKE 'Threads_connected';
-- 查看表状态(包括引擎、行数、大小)
SHOW TABLE STATUS FROM 数据库名;
执行计划分析
sql
-- 分析 SQL 语句执行效率(排查慢查询神器)
EXPLAIN SELECT * FROM 表名 WHERE 条件;
8. 数据库集群维护
添加节点
sql
-- 添加 Backend 节点
ALTER SYSTEM ADD BACKEND "192.168.122.1:9050";
-- 查看节点状态
SHOW PROC '/backends';
-- 查看 Broker 状态
SHOW PROC "/brokers";
启动服务
bash
# 启动 FE
bin/start_fe.sh --daemon
启动 Broker
bin/start_broker.sh --daemon