navicat mysql 存储过程
存储过程如同一门程序设计语言,同样包含了数据类型、流程控制、输入和输出和它自己的函数库。
一、基本数据类型:
略
二、变量:
自定义变量: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则是空的,请检查一下。