MySQL 命令行(DOS窗口)操作指令速查表

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
退出命令行 exitquit

常用附加参数-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学习最佳实践建议 💡

  1. SQL先测再写 :在MyBatis的XML中写完SQL后,先复制到命令行执行一遍,确认语法正确、结果符合预期后再放入代码。这能帮你把"代码报错"和"SQL语法报错"清晰分开。
  2. 脚本化初始化 :将建表、插入测试数据写成 init.sql,配合 source 命令一键重置数据,极大提升学习效率。
  3. 常用脚本模板
sql 复制代码
-- 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重置,此操作较复杂,可另行搜索

📌 一句话总结:命令行是数据库操作的"原教旨"方式,掌握它不仅能让你摆脱对图形化工具的依赖,更是成为合格后端开发者的必经之路。