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