# 流程控制
根據條件來控制語句的執行
每個流程中可能包含一個單獨語句或是使用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操作
- 連接
- 創建數據庫
- 插入數據
- 插入多條數據
- 預處理語句
- 查詢數據
- 預處理語句
- 實戰應用
- 分表