存儲過程如同一門程式設計語言,同樣包含了數據類型、流程式控制制、輸入和輸出和它自己的函數庫。 一、基本數據類型:略 二、變數: 自定義變數:DECLARE a INT ; SET a=100; 可用以下語句代替:DECLARE a INT DEFAULT 100; 變數分為用戶變數和系統變數,系統變數又 ...
存儲過程如同一門程式設計語言,同樣包含了數據類型、流程式控制制、輸入和輸出和它自己的函數庫。
一、基本數據類型:
略
二、變數:
自定義變數: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則是空的,請檢查一下。