MySQL 常用命令

DDL 数据定义语言

数据库操作

查询

-- 显示所有数据库
show databases;

-- 查看当前数据库
select database();

创建

create database [if not exists] 数据库名 [default charset 字符集] [collate 排列规则];

删除

drop database [if exists] 数据库名;

使用

use 数据库名;

表操作

查询

-- 显示所有表
show tables;

-- 查看表结构
desc 表名;

-- 查询建表语句
show create table 表名;

创建

create table 表名(
    字段名1 数据类型1 [comment '字段注释'],
    字段名2 数据类型2 [comment '字段注释'],
    ...
) [comment '表注释'];

修改

-- 添加字段
alter table 表名 add 字段名 数据类型(长度) [comment '字段注释'] [约束];

-- 修改数据类型
alter table 表名 modify 字段名 新数据类型(长度);

-- 修改字段名和数据类型
alter table 表名 change 旧字段名 新字段名 新数据类型(长度) [comment '字段注释'] [约束];

-- 删除字段
alter table 表名 drop 字段名;

-- 修改表名
alter table 旧表名 rename to 新表名;

删除

-- 删除表
drop table [if exists] 表名;

-- 清空表(删除后重新创建)
truncate table 表名;

DML 数据操作语言

插入

-- 插入数据
insert into 表名(字段1, 字段2, ...) values(1,2, ...);

-- 给所有字段赋值
insert into 表名 values(1,2, ...);

-- 批量插入
insert into 表名(字段1, 字段2, ...) values(1,2, ...), (1,2, ...), ...;
insert into 表名 values(1,2, ...), (1,2, ...), ...;

修改

update 表名 set 字段1=1, 字段2=2, ... [where 条件];

删除

delete from 表名 [where 条件];

DQL 数据查询语言

select
    字段列表
from
    表名列表
where
    条件列表
group by
    分组字段列表
having
    分组条件列表
order by
    排序字段列表
limit
    分页参数;

基本查询

-- 查询多个字段
select 字段1, 字段2, ... from 表名;

-- 查询所有字段
select * from 表名;

-- 设置别名
select 字段1 as 别名1, 字段2 as 别名2, ... from 表名;

-- 去重
select distinct 字段1, 字段2, ... from 表名;

条件查询

select 字段1, 字段2, ... from 表名 where 条件列表;
比较运算符 功能
> 大于
>= 大于等于
< 小于
<= 小于等于
= 等于
<> 或 != 不等于
between 值 1 and 值 2 在值 1 和值 2 之间
in (值 1, 值 2, …) 在值 1, 值 2, …中
like 模式 模糊查询
is null 为空
逻辑运算符 功能
and
or 或 ||
not 或 !

聚合函数

聚合函数:对一组数据进行计算并返回单个值的函数。

函数名 说明
count 计算个数
max 计算最大值
min 计算最小值
avg 计算平均值
sum 计算总和
select 聚合函数(字段列表) from 表名;

分组查询

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];

排序查询

select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2, ...;

排序方式:asc 升序(默认)desc 降序。

多字段排序,先按第一个字段排序,当第一个字段相同时,再按第二个字段排序。

分页查询

select 字段列表 from 表名 limit 开始行数, 每页行数;

开始行数从 0 开始,起始行数 = (页码 - 1)* 每页行数。

查询第一页时,起始行数可以省略,直接写每页行数。

DCL 数据控制语言

管理用户

-- 查询用户
use mysql; -- 切换到 mysql 数据库
select * from user;

-- 创建用户
create user '用户名'@'主机' identified by '密码';

-- 修改密码
alter user '用户名'@'主机' identified by '新密码';

-- 删除用户
drop user '用户名'@'主机';

权限控制

权限类型:

权限类型 说明
all,all privileges 所有权限
select 查询权限
insert 插入权限
update 更新权限
delete 删除权限
alter 修改表结构权限
drop 删除表权限
create 创建权限
-- 查询权限
show grants for '用户名'@'主机';

-- 授权
grant 权限列表 on 数据库名.表名 to '用户名'@'主机';

-- 撤销权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机';