DCL

管理用户

use mysql;
select * from user;
create user '用户名@主机名' identified by '密码';
alter user '用户名@主机名' identified with '原密码' by '新密码';
drop user '用户名@主机名';

权限控制

show grants for '用户名@主机名';
grant 权限 on 数据库名  表名 to '用户名@主机名';
revoke 权限 on 数据库名  表名 from '用户名@主机名';

函数


约束

create table user(
    id int primary key  auto_increment comment,
    name varchar(10) not null unique ,
    age int check ( age>0 && age<=120 ),
    status char(1) default 1,
    gender char(1)
)

约束外键

create table 表名(
    字段名 数据类型
     ......
     constraint 外键名 foreign key(外键字段名) references 主表(列名)
);
alter table 表名 
add constraint 外键名 
foreign key(外键字段名) 
references 主表(列名)
on delete 删除行为
on update 更新行为;
alter table 表名 drop  foreign key 外键名

多表查询


事务

引擎

create table 表名 (
     字段 1 字段 1 类型,
  ......,
  字段 n 字段 n 类型
) engine = 引擎类型

索引

性能分析

# 开启 MySQL 慢日志查询开关
slow_query_log=1
# 设置慢日志的时间为 2 秒,SQL 语句执行时间超过 2 秒,就会视为慢查询,记录慢查询日志
long_query_time=2

Profiles :

# 查看每一条 SQL 的耗时基本情况
show profiles;
# 查看指定 query_id 的 SQL 语句各个阶段的耗时情况
show profile for query query_id;
# 查看指定 query_id 的 SQL 语句 CPU 的使用情况
show profile cpu for query query_id;

explain 执行计划 :