做开发、运维、数据分析,MySQL绝对是绕不开的核心工具。日常开发中,80%的数据库操作,其实只需要掌握20%的核心SQL命令。
今天整理一份MySQL高频常用命令大全,从连接登录、库表操作、数据增删改查,到索引、权限、运维常用指令全覆盖,内容干货无废话,收藏这一篇,日常开发、面试刷题足够用!
所有命令均适配MySQL5.7/8.0版本,可直接复制实操,新手友好,老手可当速查手册~
一、基础连接与服务操作(入门必会)
这是操作MySQL的第一步,本地/远程连接数据库,以及基础服务启停命令。
1. 登录MySQL
# 本地登录(默认端口3306)
mysql -u用户名 -p密码
# 示例:root用户登录
mysql -uroot -p
# 远程登录(指定IP和端口)
mysql -h192.168.1.100 -P3306 -uroot -p
💡 小贴士:-p 后可以不写密码,回车后手动输入,更安全,避免密码明文暴露。
2. 基础退出与状态命令
# 退出数据库
exit;
quit;
# 查看MySQL版本
select version();
# 查看当前登录用户
select user();
# 查看当前使用的数据库
select database();
二、数据库操作命令(库级操作)
针对整个数据库的创建、查看、选择、删除、修改编码,日常项目搭建高频使用。
# 查看所有数据库
show databases;
# 创建数据库(指定编码utf8mb4,支持emoji表情,推荐!)
create database 数据库名 default character set utf8mb4 collate utf8mb4_unicode_ci;
# 示例
create database test_db default character set utf8mb4 collate utf8mb4_unicode_ci;
# 选择/切换数据库
use 数据库名;
use test_db;
# 查看数据库编码
show create database 数据库名;
# 修改数据库编码
alter database 数据库名 default character set utf8mb4 collate utf8mb4_unicode_ci;
# 删除数据库(谨慎操作!不可恢复)
drop database 数据库名;
三、数据表操作命令(表级操作)
数据表是数据存储的核心,掌握建表、查表、改表、删表是基础核心能力。
1. 基础表操作
# 查看当前库所有数据表
show tables;
# 查看表结构(字段、类型、约束)
desc 表名;
describe 表名;
# 查看建表语句
show create table 表名;
# 删除数据表(清空表结构+数据,谨慎操作)
drop table 表名;
2. 建表语句(标准模板)
包含主键、自增、非空、默认值、时间戳等常用约束,开发通用模板:
create table user(
id int primary key auto_increment comment '主键ID',
username varchar(50) not null comment '用户名',
password varchar(100) not null comment '密码',
phone varchar(11) unique comment '手机号',
age int default 18 comment '年龄',
create_time datetime default current_timestamp comment '创建时间',
update_time datetime default current_timestamp on update current_timestamp comment '更新时间'
) engine=InnoDB default charset=utf8mb4 comment '用户表';
3. 修改表结构
# 添加字段
alter table 表名 add 字段名 字段类型 约束;
alter table user add email varchar(100) comment '邮箱';
# 修改字段类型/约束
alter table 表名 modify 字段名 新类型 新约束;
alter table user modify age tinyint default 18;
# 重命名字段
alter table 表名 rename column 旧字段名 to 新字段名;
# 删除字段
alter table 表名 drop column 字段名;
# 修改表名
rename table 旧表名 to 新表名;
四、核心数据操作(CRUD 增删改查)
CRUD是日常使用频率最高的命令,90%的业务代码都在执行这四类操作,务必熟练掌握。
1. 新增数据(Insert)
# 单条插入
insert into 表名(字段1,字段2) values(值1,值2);
insert into user(username,password,phone) values('张三','123456','13800138000');
# 批量插入(高效推荐)
insert into user(username,password)
values('李四','123456'),('王五','654321');
2. 查询数据(Select)——重中之重
# 查询所有数据
select * from 表名;
# 查询指定字段
select username,phone from user;
# 条件查询(where)
select * from user where age > 18 and username='张三';
# 模糊查询
select * from user where username like '%张%';
# 去重查询
select distinct username from user;
# 排序查询(asc升序,desc降序)
select * from user order by create_time desc;
# 分页查询(limit 起始下标,条数)
select * from user limit 0,10;
# 聚合查询(count/sum/max/min/avg)
select count(*) from user; -- 统计总数
select max(age) from user; -- 最大年龄
# 分组查询
select age,count(*) from user group by age;
3. 修改数据(Update)
⚠️ 务必加where条件!否则会更新全表数据
update 表名 set 字段1=新值,字段2=新值 where 条件;
update user set age=20 where username='张三';
4. 删除数据(Delete)
⚠️ 同样必须加where条件,避免清空全表
# 删除指定数据
delete from user where id=1;
# 清空表数据(不删除表结构,自增主键不重置)
delete from user;
# 清空表数据(重置自增主键,速度更快)
truncate table user;
五、索引常用命令(优化必备)
索引是数据库优化的核心,合理建索引能大幅提升查询速度,日常优化高频使用:
# 查看表索引
show index from 表名;
# 创建普通索引
create index 索引名 on 表名(字段名);
create index idx_user_name on user(username);
# 创建唯一索引
create unique index idx_user_phone on user(phone);
# 删除索引
alter table 表名 drop index 索引名;
六、用户与权限管理(运维常用)
多用户、多项目场景下,需要创建账号、分配/回收数据库权限:
# 创建用户(支持指定IP登录)
create user '用户名'@'登录地址' identified by '密码';
create user 'test'@'localhost' identified by '123456'; -- 仅本地登录
create user 'test'@'%' identified by '123456'; -- 任意IP登录
# 授予全部权限
grant all privileges on *.* to 'test'@'%';
# 授予指定数据库权限
grant select,insert,update on test_db.* to 'test'@'%';
# 刷新权限(修改权限后必须执行)
flush privileges;
# 删除用户
drop user 'test'@'%';
七、数据备份与恢复(生产必备)
生产环境核心操作,防止数据丢失,命令行直接执行(无需进入mysql终端):
# 备份单个数据库
mysqldump -uroot -p 数据库名 > 备份文件路径.sql
mysqldump -uroot -p test_db > /data/test_db_backup.sql
# 恢复数据库
mysql -uroot -p 数据库名 < 备份文件路径.sql
mysql -uroot -p test_db < /data/test_db_backup.sql
八、新手避坑重要贴士
- 删改必加where:update、delete操作不加条件,会直接操作全表,生产环境极易翻车;
- 优先使用utf8mb4编码:代替老旧的utf8,支持所有汉字和emoji表情,避免乱码;
- 禁用select *:生产查询尽量指定字段,减少IO消耗,提升查询效率;
- 关键操作先备份:删库、改表结构、批量改数据前,务必先备份数据;
- 区分delete与truncate:delete可回滚,truncate清空更快、重置自增,不可回滚,谨慎使用。
总结
MySQL命令看似繁多,但日常开发真正高频使用的就是以上内容。从库表操作、CRUD核心语法,到索引优化、权限运维、数据备份,这套命令清单完全能满足日常开发、面试、运维的基本需求。
建议收藏保存,平时开发忘记命令直接对照速查,多敲多练,很快就能熟练掌握!