• 您現在的位置是:首頁 >要聞 > 2024-02-10 10:37:36 來源:

    sql存儲過程的作用(sql存儲過程)

    導讀 大家好,我是小夏,我來為大家解答以上問題。sql存儲過程的作用,sql存儲過程很多人還不知道,現在讓我們一起來看看吧!一、簡單的儲存過程...

    大家好,我是小夏,我來為大家解答以上問題。sql存儲過程的作用,sql存儲過程很多人還不知道,現在讓我們一起來看看吧!

    一、簡單的儲存過程:

    1、創建一個存儲過程

    create procedure GetUsers()

    begin

    select * from user;

    end;12345

    2、調用存儲過程

    call GetUsers();12

    3、刪除存儲過程

    drop procedure if exists GetUsers;

    二、帶參數的存儲過程

    1、MySql 支持 IN (傳遞給存儲過程) , OUT (從存儲過程傳出) 和 INOUT (對存儲過程傳入和傳出) 類型的參數 , 存儲過程的代碼位于 BEGIN 和 END 語句內 , 它們是一系列 SQL 語句 , 用來檢索值 , 然后保存到相應的變量 (通過指定INTO關鍵字) ;

    2、下面的存儲過程接受三個參數 , 分別用于獲取用戶表的最小 , 平均 , 最大分數 , 每個參數必須具有指定的類型 , 這里使用十進制值(decimal(8,2)) , 關鍵字 OUT 指出相應的參數用來從存儲過程傳出

    create procedure GetScores(

    out minScore decimal(8,2),

    out avgScore decimal(8,2),

    out maxScore decimal(8,2)

    )

    begin

    select min(score) into minScore from user;

    select avg(score) into avgScore from user;

    select max(score) into maxScore from user;

    end;1234567891011

    3、調用此存儲過程 , 必須指定3個變量名(所有 MySql 變量都必須以 @ 開始) , 如下所示 :

    call GetScores(@minScore, @avgScore, @maxScore);12

    4、該調用并沒有任何輸出 , 只是把調用的結果賦給了調用時傳入的變量 @minScore, @avgScore, @maxScore , 然后即可調用顯示該變量的值 :

    select @minScore, @avgScore, @maxScore;

    5、使用 IN 參數 , 輸入一個用戶 id , 返回該用戶的名字 :

    create procedure GetNameByID(

    in userID int,

    out userName varchar(200)

    )

    begin

    select name from user

    where id = userID

    into userName;

    end;12345678910

    6、調用存儲過程 :

    call GetNameByID(1, @userName);

    select @userName;123

    參考資料

    SQL存儲過程使用介紹.csdn博客[引用時間2017-12-31]

    本文到此講解完畢了,希望對大家有幫助。

  • 成人app