MySQL 命令行操作指令速查手册
适用环境:Windows CMD / PowerShell | 适用场景:数据库学习、MyBatis开发调试、日常运维
一、连接与断开数据库
| 操作 |
命令 |
| 连接本地MySQL(提示输入密码) |
mysql -u root -p |
| 连接指定IP的MySQL |
mysql -u root -p -h 192.168.1.100 |
| 连接并指定端口 |
mysql -u root -p -P 3307 |
| 连接时自动进入某数据库 |
mysql -u root -p -D mydb |
| 退出命令行 |
exit 或 quit |
常用附加参数 :-t 让表格输出更整齐;--default-character-set=utf8mb4 解决中文乱码。
二、数据库级操作(DDL-数据库)
| 操作 |
命令 |
| 查看所有数据库 |
show databases; |
| 创建数据库 |
create database 库名; |
| 指定字符集创建 |
create database 库名 charset=utf8mb4; |
| 切换/进入数据库(必须执行) |
use 库名; |
| 查看当前所在数据库 |
select database(); |
| 删除数据库 |
drop database 库名; |
三、表级操作(DDL-数据表)
| 操作 |
命令 |
| 查看当前库所有表 |
show tables; |
| 查看表结构(字段信息) |
desc 表名; |
| 查看建表语句(含引擎、字符集) |
show create table 表名; |
| 创建表(基础示例) |
create table user (id int, name varchar(50)); |
| 添加字段 |
alter table 表名 add column 字段名 类型; |
| 修改字段类型 |
alter table 表名 modify column 字段名 新类型; |
| 删除字段 |
alter table 表名 drop column 字段名; |
| 删除表 |
drop table 表名; |
四、数据操作(DML:增删改)
| 操作 |
命令 |
| 插入一条数据 |
insert into 表名 (列1, 列2) values (值1, 值2); |
| 批量插入 |
insert into 表名 values (1,'a'), (2,'b'), (3,'c'); |
| 更新数据 |
update 表名 set 列名=新值 where 条件; |
| 删除数据(慎用) |
delete from 表名 where 条件; |
| 清空表(重置自增ID) |
truncate table 表名; |
⚠️ 强烈建议 :执行 update / delete 前,先用 select 检查 where 条件是否准确。
五、数据查询(DQL:核心)
| 操作 |
命令 |
| 查询全部数据 |
select * from 表名; |
| 条件查询 |
select * from 表名 where 字段=值; |
| 模糊查询 |
select * from 表名 where name like '%张%'; |
| 排序(升/降) |
select * from 表名 order by 字段 desc; |
| 分页查询(MySQL) |
select * from 表名 limit 起始索引, 每页条数; |
| 聚合统计 |
select count(*), avg(score) from 表名; |
| 分组查询 |
select 类别, count(*) from 表名 group by 类别; |
六、实用功能命令
| 操作 |
命令 |
| 执行外部SQL脚本(最实用✨) |
source D:/mybatis/init.sql; |
| 查看所有系统变量 |
show variables; |
| 查看当前使用的数据库 |
select database(); |
| 查看MySQL版本 |
select version(); |
| 清屏(CMD) |
cls(MySQL内无效,仅在CMD中) |
| 终止当前正在输入的语句 |
\c |
七、用户与权限管理(扩展)
| 操作 |
命令 |
| 查看所有用户 |
select host, user from mysql.user; |
| 创建用户 |
create user '用户名'@'%' identified by '密码'; |
| 授予全部权限 |
grant all on *.* to '用户名'@'%'; |
| 刷新权限使生效 |
flush privileges; |
八、MyBatis学习最佳实践建议 💡
- SQL先测再写 :在MyBatis的XML中写完SQL后,先复制到命令行执行一遍,确认语法正确、结果符合预期后再放入代码。这能帮你把"代码报错"和"SQL语法报错"清晰分开。
- 脚本化初始化 :将建表、插入测试数据写成
init.sql,配合 source 命令一键重置数据,极大提升学习效率。
- 常用脚本模板:
-- init.sql 模板示例
drop database if exists mybatis_demo;
create database mybatis_demo charset=utf8mb4;
use mybatis_demo;
create table user (
id int primary key auto_increment,
name varchar(50),
age int
);
insert into user (name, age) values ('张三', 20), ('李四', 22), ('王五', 25);
select * from user;
九、常见问题排查
| 问题现象 |
可能原因及解决 |
'mysql' 不是内部或外部命令 |
MySQL的bin目录未加入系统环境变量 Path,需添加或先cd到该目录 |
| 输入密码后闪退 |
密码错误,重新执行并注意大小写 |
| SQL执行后无反应 |
检查是否以 分号 ; 结尾 |
| 中文显示乱码 |
连接时加参数:mysql -u root -p --default-character-set=utf8mb4 |
| 忘记密码 |
使用 --skip-grant-tables 模式启动MySQL重置,此操作较复杂,可另行搜索 |
📌 一句话总结:命令行是数据库操作的"原教旨"方式,掌握它不仅能让你摆脱对图形化工具的依赖,更是成为合格后端开发者的必经之路。