
存储过程如同一门程序设计语言,同样包含了数据类型、流程控制、输入和输出和它自己的函数库。
一、基本数据类型:
略
二、变量:
自定义变量:DECLARE a INT ; SET a=100;
可用以下语句代替:DECLARE a INT DEFAULT 100;
变量分为用户变量和系统变量,系统变量又分为会话和全局级变量
用户变量:用户变量名一般以@开头,滥用用户变量会导致程序难以理解及管理
三、运算符:
1.算术运算符
+ 加 SET var1=2+2; 4
- 减 SET var2=3-2; 1
* 乘 SET var3=3*2; 6
/ 除 SET var4=10/3; 3.3333
DIV 整除 SET var5=10 DIV 3; 3
% 取模 SET var6=10%3 ; 1
2.比较运算符
> 大于 1>2 False
< 小于 2<1 False
<= 小于等于 2<=2 True
>= 大于等于 3>=2 True
BETWEEN 在两值之间 5 BETWEEN 1 AND 10 True
NOT BETWEEN 不在两值之间 5 NOT BETWEEN 1 AND 10 False
IN 在集合中 5 IN (1,2,3,4) False
NOT IN 不在集合中 5 NOT IN (1,2,3,4) True
= 等于 2=3 False
<>, != 不等于 2<>3 False
<=> 严格比较两个NULL值是否相等 NULL<=>NULL True
LIKE 简单模式匹配 "Guy Harrison" LIKE "Guy%" True
REGEXP 正则式匹配 "Guy Harrison" REGEXP "[Gg]reg" False
IS NULL 为空 0 IS NULL False
IS NOT NULL 不为空 0 IS NOT NULL True
3.逻辑运算符
4.位运算符
| 或
& 与
<< 左移位
>> 右移位
~ 非(单目运算,按位取反)
注释:
mysql存储过程可使用两种风格的注释
双横杠:--
该风格一般用于单行注释
c风格:/* 注释内容 */ 一般用于多行注释
--------------------流程控制--------------------
- 区块定义,常用
begin
......
end;
也可以给区块起别名,如:
lable:begin
...........
end lable;
可以用leave lable;跳出区块,执行区块以后的代码
2.条件语句
if 条件 then
statement
else
statement
end if;
3.循环语句
(1).while循环
[label:] WHILE expression DO
statements
END WHILE [label] ;
(2).loop循环
[label:] LOOP
statements
END LOOP [label];
(3).repeat until循环
[label:] REPEAT
statements
UNTIL expression
END REPEAT [label] ;
四、navicat 创建存储过程简单例子
1、创建存储过程
然后选择“过程”。
这里的参数设置可以先不管,能在后续根据需要添加。
但还是说明一下,模式分为三种:
1、IN:输入参数
2、OUT:输出参数
3、INOUT:既作为输入参数,也作为输出参数
需要注意,如果我们的存储过程需要外部传入参数进行运算,以及需要返回部分参数,是需要定义好的。
上面的就是什么参数都没有设置的初始情况。
那么如果这时候我们保存一下。
接着,我们需要做一些准备措施,先建一个表t_test,有两个字段cell_0、cell_1。
数据请自己插入,没有硬性要求。
还有另外一个表,仅仅名字不一样了而已
这时候,需要我们t_test这个表内必须有数据,而tt_test则是空的,请检查一下。