基本構造
delimiter $$ #定義終止符,可據習慣更換
CREATE PROCEDURE method_name() #創建方法
BEGIN #方法體開始
SELECT 'code'; #方法體,寫SQL陳述句
END #方法體終止
$$ #存盤程序終止
基本語法
1.定義終止符
delimiter $$ #$$為自定義符,可據習慣更換
2.創建方法
CREATE PROCEDURE method()
3.方法體開始
BEGIN
4.方法體終止
END
5.呼叫方法
CALL method_name();
6.格式化方法
drop PROCEDURE method_name();
7.變數及賦值
1.區域變數
用戶自定義,在當前 begin-end 塊中有效
-
宣告變數
declare var_name type [default var_value];例:
declare nickname varchar(32);
2.用戶變數
用戶自定義,在當前會話(連接)中有效,類似JAVA中的全域變數
-
不需提前宣告,使用即宣告
@var_name例:
set @var_name = 'var_name';
3.變數賦值
-
set 賦值
set例:
set var_name = 'var_name'; -
into 賦值
可在其他 sql 陳述句中臨時賦值,且可以同時給多個臨時變數
into例:
select var_name1 into @var_name2 from tables_name
8.入參出參
-
入參
in param_name type -
出參
類似 JAVA 中回傳值
out param_name type例:
delimiter $$ CREATE PROCEDURE method ( IN parameter1 VARCHAR ( 32 ),OUT parameter2 VARCHAR ( 32 ) BEGIN SELECT parameter2 INTO @parameter2 FROM table_name WHERE parameter1 = parameter1; END $$ CALL method ( '引數1', @parameter2 ) $$ SELECT @parameter2 $$ -
inout 即可入參也可出參
inout param_name type
9.判斷
1.IF
IF search_condition THEN statement_list
[ELSEIF search_condition THEN statement_list]
{ELSE statement_list}
END IF
2.CASE
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list]
...
[ELSE statement_list]
END CASE
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list]
...
[ELSE statement_list]
END CASE
10.回圈
1.LOOP
[label: ]LOOP
statement_list
IF exit_condition THEN
LEAVE label;
END IF;
END LOOP label;
2.REPEAT
類似 JAVA 中的 do-while
[label: ]REPEAT
statement_list
UNTIL search_condition #直到...為止
END REPEAT;
3.WHILE
[label: ]WHILE search_condition DO
statement_list
END WHILE;
11.回圈跳出、繼續
1.LEAVE
跳出回圈,類似 JAVA 中的 break
LEAVE label
2.ITERATE
繼續本次回圈
ITERATE label
常用函式
1.字串拼接
CONCAT(str1,str2,...)
2.取時間差
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
取 datetime_expr1 - datetime_expr1 的差值,unit 為單位
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/548664.html
標籤:MySQL
