MySQL 命令大全

登录和退出

  • 登录 MySQL
1
mysql -u 用户名 -p密码
  • 退出
1
exit

数据库操作

  • 查看所有数据库
1
show databases;
  • 创建数据库
1
create database 数据库名;
  • 删除数据库
1
drop database 数据库名;
  • 使用数据库
1
use 数据库名;

表操作

  • 查看当前数据库所有表
1
show tables;
  • 创建表
1
2
3
4
create table 表名(
字段名1 数据类型,
字段名2 数据类型
);
  • 删除表
1
drop table 表名;
  • 查看表结构
1
desc 表名;

数据操作

  • 插入数据
1
insert into 表名(字段1,字段2) values(值1,值2);
  • 更新数据
1
update 表名 set 字段名=新值 where 条件;
  • 删除数据
1
delete from 表名 where 条件;
  • 查询数据
1
select 字段列表 from 表名 where 条件;

权限管理

  • 创建用户
1
create user '用户名'@'主机名' identified by '密码';
  • 修改用户密码
1
set password for '用户名'@'主机名' = password('新密码');
  • 授权
1
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
  • 撤销权限
1
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名'; 

数据库操作

  • 查看当前使用的数据库
1
select database();
  • 修改数据库的字符集
1
alter database 数据库名 character set 字符集名;

表操作

  • 修改表的字符集
1
alter table 表名 convert to character set 字符集名称;
  • 修改表名
1
rename table 原表名 to 新表名;
  • 修改字段
1
alter table 表名 change 字段名 新字段名 新数据类型; 
  • 添加字段
1
alter table 表名 add 字段名 数据类型;
  • 删除字段
1
alter table 表名 drop 字段名;
  • 创建表索引
1
create index 索引名 on 表名(字段名);
  • 删除表索引
1
drop index 索引名 on 表名;

数据操作

  • 指定字段插入
1
insert into 表名(字段1,字段2) values(值1,值2);
  • 同时插入多条数据
1
insert into 表名 values(记录1值列表),(记录2值列表);
  • 将一个表的数据插入到另一个表
1
insert into 表名1(字段列表) select 字段列表 from 表名2;
  • 更新多个字段
1
update 表名 set 字段1=值1,字段2=值2 where 条件; 
  • 具有多个条件的复杂查询
1
select * from 表名 where 条件1 and/or 条件2;
  • 排序并返回部分行
1
select 字段列表 from 表名 order by 排序字段 desc limit M,N;

视图操作

  • 创建视图
1
create view 视图名 as select 语句;
  • 查看视图结构
1
show create view 视图名;
  • 修改视图结构
1
alter view 视图名 as select 语句;
  • 删除视图
1
drop view 视图名;

存储过程和函数

  • 创建存储过程
1
2
3
4
create procedure 过程名(参数) 
begin
程序体
end
  • 调用存储过程
1
call 过程名(参数);
  • 创建函数
1
2
3
4
5
create function 函数名(参数) returns 返回类型
begin
函数体
return 返回值
end
  • 调用函数
1
select 函数名(参数);

触发器

  • 创建触发器
1
2
3
4
create trigger 触发器名 触发时间 触发事件 on 表名 for each row 
begin
程序体
end;
  • 删除触发器
1
drop trigger 触发器名;

事务处理

  • 开启事务
1
start transaction;
  • 提交事务
1
commit;
  • 回滚事务
1
rollback;

用户和权限管理

  • 查看用户权限
1
show grants for '用户名'@'主机名';
  • 撤销所有权限
1
revoke all privileges on *.* from '用户名'@'主机名';
  • 设置密码安全级别
1
set global validate_password_policy=0|1|2;
  • 设置密码长度限制
1
set global validate_password_length=N;

数据库维护

  • 分析和优化表
1
analyze table 表名;
  • 检查表
1
check table 表名;
  • 优化表
1
optimize table 表名;
  • 修复表
1
repair table 表名;

数据库备份

  • 备份数据库schema
1
mysqldump -d 数据库名 > schema.sql
  • 备份某个表
1
mysqldump -u root -p 数据库 表名 > 表名.sql
  • 恢复备份
1
mysql -u root -p 数据库 < 备份文件.sql

数据库导入导出

  • 将表导出为csv文件
1
select * from 表名 into outfile '文件名.csv'; 
  • 从csv文件导入表
1
load data infile '文件名.csv' into table 表名;