存儲過程如同一門程序設計語言,同樣包含了數據類型、流程控制、輸入和輸出和它自己的函數庫。
一、基本數據類型:
略
二、變量:
自定義變量: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則是空的,請檢查一下。