溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

MYSQL PL/SQL

發(fā)布時(shí)間:2020-07-22 07:14:04 來(lái)源:網(wǎng)絡(luò) 閱讀:1786 作者:小墨and丫頭 欄目:軟件技術(shù)

一組SQL語(yǔ)句集,速度快,只有首次執(zhí)行需經(jīng)過(guò)編譯和優(yōu)化步驟,后續(xù)被調(diào)用可以直接執(zhí)行

Sample:

DROP PROCEDURE IF EXISTS `proc_adder`;

DELIMITER &&

CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_adder`(IN a int, IN b int, OUT sum int)

BEGIN

DECLARE c int;

/*DECLARE c int DEFAULT 10*/

    if a is null then set a = 0;

    end if;

  

    if b is null then set b = 0;

    end if;
set sum  = a + b;

END

&&

DELIMITER ;


說(shuō)明:

DEFINER: 創(chuàng)建者

DECLARE: 定義變量

SET:為變量賦

SELECTINTO語(yǔ)句為變量賦值如下:

SELECT  col_name[,]  INTO  var_name[,]  

FROM  table_name  WEHRE  condition

DELIMITER

MySQL中默認(rèn)的語(yǔ)句結(jié)束符為分號(hào)(;)。存儲(chǔ)過(guò)程中的SQL語(yǔ)句需要分號(hào)(;)來(lái)結(jié)束。為了避免沖突,首先用"DELIMITER &&"MySQL的結(jié)束符設(shè)置為&&。最后再用"DELIMITER ;"來(lái)將結(jié)束符恢復(fù)成分號(hào)。這與創(chuàng)建觸發(fā)器時(shí)是一樣的。


常用語(yǔ)法:

IF:

IF type = 0 THEN

        set c = 'param is 0';

    ELSEIF type = 1 THEN

        set c = 'param is 1';

    ELSE

        set c = 'param is others, not 0 or 1';

END IF;

 

CASE:

CASE type

    WHEN 0 THEN

        set c = 'param is 0';

    WHEN 1 THEN

        set c = 'param is 1';

    ELSE

        set c = 'param is others, not 0 or 1';

END CASE;

 

WHILE:

DECLARE i int;

DECLARE s int;

SET i = 0;

SET s = 0;

WHILE i <= n DO

    set s = s + i;

    set i = i + 1;

END WHILE;

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI