Bootstrap

MySQL常用命令进阶版

触发器操作

-- 创建触发器
CREATE TRIGGER trigger_nameBEFORE/AFTER INSERT/UPDATE/DELETE ON table_name
FOR EACH ROW
BEGIN 
 -- SQL statementsEND;
 -- 删除触发器
 DROP TRIGGER trigger_name;

事务操作

-- 开始事务
START TRANSACTION;
-- 提交事务
COMMIT;
-- 回滚事务
ROLLBACK;
-- 创建保存点
SAVEPOINT savepoint_name;
-- 回滚到保存点
ROLLBACK TO SAVEPOINT savepoint_name;
-- 释放保存点
RELEASE SAVEPOINT savepoint_name

备份和恢复操作

-- 备份整个数据库
BACKUP DATABASE database_name TO DISK = 'path/to/backup/file';
-- 恢复整个数据库
RESTORE DATABASE database_name FROM DISK = 'path/to/backup/file';
-- 备份单个表
BACKUP TABLE table_name TO DISK = 'path/to/backup/file';
-- 恢复单个表
RESTORE TABLE table_name FROM DISK = 'path/to/backup/file'

用户和权限操作

-- 创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
-- 授予权限
GRANT privileges ON database_name.table_name TO 'username'@'host';
-- 撤销权限
REVOKE privileges ON database_name.table_name FROM 'username'@'host';
-- 修改用户密码
SET PASSWORD FOR 'username'@'host' = 'new_password';
-- 删除用户
DROP USER 'username'@'host';
-- 刷新权限
FLUSH PRIVILEGES;

其他操作

-- 查看系统变量
SHOW VARIABLES;
-- 设置系统变量
SET variable_name = value;
-- 查看当前进程列表
SHOW PROCESSLIST;
-- 杀死进程
KILL process_id;
-- 查看执行计划
EXPLAIN SELECT statement;
-- 优化表
OPTIMIZE TABLE table_name;
-- 修复表
REPAIR TABLE table_name;
-- 分析表
ANALYZE TABLE table_name;
-- 检查表
CHECK TABLE table_name;
-- 刷新表
FLUSH TABLES;
-- 刷新日志
FLUSH LOGS;

导入和导出操作

-- 导出表数据到文件
SELECT * FROM table_name INTO OUTFILE 'path/to/file';
-- 从文件导入数据到表
LOAD DATA INFILE 'path/to/file' INTO TABLE table_name

子查询操作

-- 子查询作为条件
SELECT * FROM table1 WHERE column1 = (SELECT column2 FROM table2 WHERE condition);
-- 子查询作为存在条件
SELECT * FROM table1 WHERE EXISTS (SELECT * FROM table2 WHERE condition);

联合查询操作

-- union 合并两个结果集,不包含重复行
SELECT column1, column2 FROM table1 UNION SELECT column3, column4 FROM table2;
-- union all 合并两个结果集,包含重复行
SELECT column1, column2 FROM table1 UNION ALL SELECT column3, column4 FROM table2;

连接查询操作

-- 内连接
SELECT table1.column1, table2.column2 FROM table1 INNER JOIN table2 ON table1.column3 = table2.column4;
-- 左连接
SELECT table1.column1, table2.column2 FROM table1 LEFT JOIN table2 ON table1.column3 = table2.column4;
-- 右连接
SELECT table1.column1, table2.column2 FROM table1 RIGHT JOIN table2 ON table1.column3 = table2.column4;
-- 交叉连接
SELECT table1.column1, table2.column2 FROM table1 CROSS JOIN table2;

分组和聚合操作

-- 分组计数
SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
-- 分组求和
SELECT column1, SUM(column2) FROM table_name GROUP BY column1;
-- 分组求平均值
SELECT column1, AVG(column2) FROM table_name GROUP BY column1;

公众号:代码星辰阁

;