# 流程控制
根据条件来控制语句的执行
每个流程中可能包含一个单独语句或是使用BEGIN...END构造的复合语句,构造可以被嵌套
## IF语句
包含一个或多个条件判断,根据判断的结果为true或false执行相应的语句
```sql
if 条件 then SQL语句
[elseif 条件 then SQL语句]...
[else SQL语句]
end if;
```
> 提示 : mysql中还有一个if()函数,它不同于这里描述的if语句
## CASE语句
条件判断语句
### 第一种格式
```sql
case 条件
when 值 then SQL语句;
[when 值 then SQL语句;] ...
end case
```
###第二种格式
```sql
case
when 条件 then SQL语句;
when 条件 then SQL语句;
when 条件 then SQL语句;
else SQL语句;
end case;
```
## LOOP语句
用来重复执行某些语句
```sql
[循环的标志:] loop
SQL语句;
end loop [循环的标志];
```
## LEAVE语句
用来退出任任何被标注的流程控制构造
```sql
leave 循环的标志;
```
## ITERATE语句
将执行顺序转到语句段开头处,只可以出现在loop,repeat和while语句中
```sql
iterate 循环的标志;
```
## REPEAT语句
创建一个带条件判断的循环过程,每次语句执行之后,会对条件表达式进行判断,如果为真,循环结束,否则就重复执行循环语句
```sql
[循环的标志:] repeat
SQL语句;
until 条件
end repeat [循环的标志];
```
## WHILE语句
与repeat不同的是先对表达式进行判断,如果为真才执行循环
```sql
[循环的标志:] while 表达式
SQL语句;
end while [循环的标志];
- 简介
- 数据库
- 数据表
- 创建数据表
- 查看数据表结构
- 修改数据表
- 删除数据表
- 查询数据
- 表单查询
- 聚合查询
- 链接查询
- 子查询
- 联合查询
- 正则查询
- 数据管理
- 数据类型
- 添加数据
- 更新数据
- 删除数据
- 索引
- 索引分类
- 设计原则
- 添加索引
- 查看索引
- 删除索引
- 视图
- 视图操作
- 视图应用
- 事务
- 触发器
- 存储过程和函数
- 变量
- 异常处理
- 光标
- 流程控制
- 存储过程
- 自定义函数
- 内置函数
- 数学
- 字符串
- 日期和时间
- 条件判断
- 系统信息
- 加/解密
- 其他
- 用户管理
- 登录和退出
- 新建用户
- 删除用户
- 修改用户
- 找回ROOT密码
- 权限管理
- 备份恢复
- 备份数据
- 恢复数据
- 日志
- 二进制日志
- 错误日志
- 查询日志
- 慢查询日志
- 性能优化
- 优化查询语句
- 优化数据库结构
- 优化服务器
- 主从复制
- WIN系统主从复制
- Linux单机主从复制
- Linux联机主从复制
- 参数配置
- 日常管理和维护
- 切换主从服务器
- PHP操作
- 连接
- 创建数据库
- 插入数据
- 插入多条数据
- 预处理语句
- 查询数据
- 预处理语句
- 实战应用
- 分表