Study Notes of MySQL 3 —— Variables, Procedures and Functions
- Variables
- Stored Procedures and Functions
- Control Flow Functions
[toc]
Variables
系统变量
1 | /* |
自定义变量
- 说明:变量是用户自定义的,不是由系统提供的
- 分类
- 用户变量:作用域针对当前会话有效,等同于会话变量的作用域
- 局部变量:仅仅在 begin end 中有效
使用步骤
- 声明
- 赋值
- 使用(查看,比较,运算)
用户变量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23# 声明并初始化
SET @用户变量名 = 值;
SET @用户变量名 := 值;
SELECT @用户变量名 := 值;
# 赋值
SET @用户变量名 = 值;
SET @用户变量名 := 值;
SELECT @用户变量名 := 值;
SELECT 字段 INTO 变量名 FROM 表;
# 使用:查看用户变量的值
SELECT @用户变量名
/*案例*/
# 声明
SET @count=1;
# 赋值
SELECT COUNT(*) INTO @count
FROM employees;
# 查看
SELECT @count;局部变量
应用在
begin end
中的第一句话1
2
3
4
5# 声明
DECLARE 变量名 类型;
DECLARE 变量名 类型 DEFAULT 值;
# 赋值同上
# 使用同上
Stored Procedures and Functions 存储过程和函数
存储过程的使用
- 含义:一组预先编译好的 SQL 语句的集合,理解成批处理语句
减少了编译次数并且减少了和数据库服务器连接的次数,提高了效率
参数列表包含三部分:参数模式 参数名 参数类型
- 参数模式
- IN:该参数可以作为输入,也就是该参数需要调用方传入值
- OUT:该参数可以作为输出,也就是该参数可以作为返回值
- INOUT:该参数既可以作为输入又可以作为输出,也就是该参数既需要传入值,又可以返回值
1 | # 创建语法 |
函数
- 含义:一组预先编译好的 SQL 语句的集合,理解成批处理语句
- 与存储过程的区别
- 存储过程:可以有 0 个返回,也可以有多个返回,合适做批处理插入,批处理更新
- 函数:有且仅有 1 个返回,合适做处理数据后返回一个结果
1 | # 语法 |
Control Flow Functions 流程控制结构
分支结构
IF
1 | IF(表达式1, 表达式2, 表达式3) # 表达式1成立,则返回表达式2,否则返回表达式3 |
CASE
- 特点
- 可以作为表达式,嵌套在其他语句中使用,可以放在任何地方
- 可以作为独立的语句去使用,放在
BEGIN END
中
1 | # 实现等值判断:类似于 JAVA 中的 SWITCH |
IF 结构
1 | IF 条件1 THEN 执行语句1; |
循环结构
循环主体
- while:先判断后执行
- repeat:先执行后判断
- loop:没有条件就是死循环
1 | # while |
循环控制
- leave:类似于 break,用于跳出所在循环
- iterate:类似于 continue,用于结束本次循环,继续下一次
1 | # leave |
Study Notes of MySQL 3 —— Variables, Procedures and Functions