mysql数据存储和函数_MySQL数据库——存储和函数
一、存儲過程
1 基本語法
CREATE PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
格式[IN|OUT|INOUT]param_name type
2. IN、OUT、INOUT參數
(1)帶84存儲過程實例
1 #帶多重IF的存儲過程2 CREATE PROCEDURE SP_SGRADE_LEVEL(IN p_level char(
Repeat語句語法格式
[begin_label:]
repeat
Statement_list
Until search_condition
End repeat
[end_label]
Repeat語句首先執行statement_list中的語句,然后判斷條件search_condition是否為真,倘若為真,則結束循環,若不為真,繼續循環。
Repeat先執行后判斷,while先判斷后執行。
使用范例:
1 #帶repeat的存儲過程2 CREATE PROCEDURE sp_cal2(IN p_num INT,OUT p_result INT)3 BEGIN 4 SET p_result=1;5 REPEAT6 SET p_result = p_num *p_result;7 SET p_num = p_num-1;8 UNTIL p_num<=1 9 ENDREPEAT;10 END
5.調用存儲過程
Call sp_name([parameter[,…]]);
Sp_name被調用存儲過程的名稱
Parameter:指定調用存儲過程所要使用的參數。
6.修改存儲過程
代碼如下:
Alter procedure proc_name[characteristic…]
只能修改存儲過程的特征,如果要修改存儲過程的內容,可以先刪除該存儲過程,然后再重新創建
7.刪除存儲過程
代碼如下:
Drop procedure [if exists] sp_name;
二、函數
1. 定義
MySQL中,創建存儲函數的基本形式如下:
CREATE FUNCTION sp_name([func_parameter[,...]])
RETURNS type
[characteristic ...] routine_body
Return
調用存儲函數
Select sp_name([func_parameter…])
Select fn_search(2);
2.存儲過程和函數區別
1)一般來說,存儲過程實現的功能要復雜一點,而函數的實現的功能針對性比較強。存儲過程,功能強大,可以執行包括修改表等一系列數據庫操作;用戶定義函數不能用于執行一組修改全局數據庫狀態的操作。
2)對于存儲過程來說可以返回參數,如記錄集,而函數只能返回值或者表對象。函數只能返回一個變量;而存儲過程可以返回多個。存儲過程的參數可以有IN,OUT,INOUT三種類型,而函數只能有IN類~~存儲過程聲明時不需要返回類型,而函數聲明時需要描述返回類型,且函數體中必須包含一個有效的RETURN語句。
3)存儲過程,可以使用非確定函數,不允許在用戶定義函數主體中內置非確定函數。
4)存儲過程一般是作為一個獨立的部分來執行( EXECUTE 語句執行),而函數可以作%
總結
以上是生活随笔為你收集整理的mysql数据存储和函数_MySQL数据库——存储和函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用循环神经网络生成唐诗_PyTorch
- 下一篇: mysql 压力测试知乎_MySQL查看