MySql常用命令速查表
一、数据库库管理操作命令创建库CREATE DATABASE [IF NOT EXISTS] 库名;查看所有库SHOW DATABASES;切换库USE 库名;查看当前库SELECT DATABASE();查看建库语句SHOW CREATE DATABASE 库名;删除库高危DROP DATABASE [IF EXISTS] 库名;二、数据表表管理2.1 创建表CREATETABLE库名.表名(字段1数据类型[约束],字段2数据类型[约束],...);2.2 查看表信息SHOWTABLES;-- 查看当前库所有表DESC库名.表名;-- 查看表结构SHOWCREATETABLE库名.表名;-- 查看建表语句2.3 修改表结构-- 添加字段ALTERTABLE库名.表名ADD字段名 类型[FIRST|AFTER字段];-- 修改字段类型ALTERTABLE库名.表名MODIFY字段名 新类型;-- 修改字段名可同时改类型ALTERTABLE库名.表名 CHANGE 旧字段名 新字段名 新类型;-- 修改表名ALTERTABLE库名.旧表名RENAMETO库名.新表名;-- 删除字段ALTERTABLE库名.表名DROP字段名;2.4 删除表保留结构用TRUNCATEDROPTABLE库名.表名;-- 删除表结构数据TRUNCATETABLE库名.表名;-- 清空数据重置自增保留结构三、表记录数据操作DML操作命令插入数据INSERT INTO 库名.表名 [(字段列表)] VALUES (值列表);更新数据UPDATE 库名.表名 SET 字段值 WHERE 条件;务必加WHERE删除数据DELETE FROM 库名.表名 WHERE 条件;务必加WHERE四、查询SELECT4.1 基础查询SELECT字段列表FROM库名.表名[WHERE条件];*表示所有字段可用AS起别名DISTINCT去重CONCAT(字段1, 分隔, 字段2)拼接字符串4.2 常用筛选条件类型示例比较WHERE uid 5、WHERE name root空值判断WHERE shell IS [NOT] NULL范围WHERE uid IN (1,3,5)、WHERE uid BETWEEN 10 AND 30模糊匹配WHERE name LIKE a%%任意多个_单个正则WHERE name REGEXP ^a|t$逻辑组合AND、OR、NOT括号改变优先级4.3 结果处理排序/分组/分页SELECT字段列表FROM库名.表名[WHERE条件][GROUPBY分组字段]-- 分组常配合聚合函数[HAVING分组后过滤条件]-- 过滤分组结果可用聚合函数[ORDERBY排序字段[ASC|DESC]]-- 排序多字段用逗号分隔[LIMIT[偏移量,]行数];-- 分页偏移量从0开始执行顺序FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT4.4 聚合函数统计函数作用COUNT(字段)统计行数忽略NULLSUM(字段)求和AVG(字段)平均值MAX(字段)/MIN(字段)最大/最小值4.5 常用内置函数SELECTVERSION();-- MySQL版本SELECTUSER();-- 当前登录用户SELECTDATABASE();-- 当前库五、多表连接查询5.1 内连接只保留匹配数据SELECT字段列表FROM表1[AS别名1]INNERJOIN表2[AS别名2]ON连接条件[INNERJOIN表3ON连接条件...][WHERE/GROUPBY/HAVING/ORDERBY/LIMIT];5.2 左外连接保留左表全部右表无匹配补NULLSELECT...FROM左表LEFTJOIN右表ON连接条件...;5.3 右外连接保留右表全部SELECT...FROM左表RIGHTJOIN右表ON连接条件...;MySQL 不支持全外连接可用UNION组合左右连接结果。5.4 子查询嵌套在SELECT、FROM、WHERE、HAVING后的SELECT语句。六、备份与恢复6.1 冷备份物理备份需停服systemctl stop mysqldcp-r/var/lib/mysql /备份目录/# 或打包tar-zcf/备份目录/mysql.tar.gz-C/var/lib/mysql.# 恢复解压到 /var/lib/mysql并 chown -R mysql:mysql /var/lib/mysql6.2 逻辑备份mysqldump服务运行中# 备份mysqldump -u用户 -p密码[选项]/路径/备份.sql# 常用选项-A全库、-B 库名单个或多个库、库名 表名单表# 恢复mysql -u用户 -p密码/路径/备份.sql# 恢复单表需指定库名mysql -u用户 -p密码 库名 表备份.sql6.3 增量备份与恢复Percona XtraBackup全量备份xtrabackup --backup --target-dir/全量目录 --datadir/var/lib/mysql增量备份xtrabackup --backup --target-dir/增量目录 --incremental-basedir/基准目录恢复步骤先--prepare --apply-log-only合并所有增量到全量再用--copy-back拷贝回数据目录。七、二进制日志binlog操作命令/说明查看当前日志SHOW MASTER STATUS;刷新日志滚动FLUSH LOGS;重置日志RESET MASTER;应用binlog恢复mysqlbinlog 日志文件 | mysql -u用户 -p密码配置参数在/etc/my.cnf.d/mysql-server.cnf中设置log-bin/路径/前缀、server_id数字八、主键、外键、索引8.1 主键PRIMARY KEY唯一且非空一张表只能有一个可复合。建表时字段名 类型 PRIMARY KEY或PRIMARY KEY(字段1,字段2)已有表添加/删除ALTERTABLE表名ADDPRIMARYKEY(字段);ALTERTABLE表名DROPPRIMARYKEY;自增AUTO_INCREMENT必须配合主键使用。8.2 外键FOREIGN KEY保证从表字段值在主表参照字段范围内。建表时FOREIGNKEY(从表字段)REFERENCES主表(主表字段)ONUPDATECASCADEONDELETECASCADE查看/删除/添加SHOWCREATETABLE表名;ALTERTABLE从表DROPFOREIGNKEY外键名;ALTERTABLE从表ADDFOREIGNKEY...REFERENCES...;8.3 索引普通索引可重复可为NULL标志MUL。创建CREATE INDEX 索引名 ON 表名(字段);删除DROP INDEX 索引名 ON 表名;查看SHOW INDEX FROM 表名;验证是否使用索引EXPLAIN SELECT ...;九、用户与权限管理9.1 创建用户CREATEUSER用户名客户端地址IDENTIFIEDBY密码;客户端地址%任意、192.168.8.%网段、192.168.8.51单IP、localhost本机9.2 授权GRANT权限列表ON库名.表名TO用户名客户端地址;权限ALL、USAGE无权限、SELECT,INSERT,...库表范围*.*、库名.*、库名.表名9.3 查看权限SHOWGRANTSFOR用户名客户端地址;9.4 撤销权限REVOKE权限列表ON库名.表名FROM用户名客户端地址;9.5 修改密码SETPASSWORDFOR用户名客户端地址新密码;9.6 删除用户DROPUSER用户名客户端地址;9.7 查看所有用户SELECTuser,hostFROMmysql.user;十、常用管理操作操作命令启动/停止/重启MySQLsystemctl start/stop/restart mysqld查看端口监听ss -nutlp | grep :3306无密码进入修复修改配置文件添加skip-grant-tables重启后mysql直接进入更新root密码有旧密码mysqladmin -uroot -p旧密码 password 新密码导入SQL文件mysql -u用户 -p密码 /路径/文件.sql

相关新闻