MYSQL學習筆記 關於MySQL儲存過程 4

2021-10-06 16:36:30 字數 2203 閱讀 1340

1.什麼是儲存過程?

簡單來說,就是為以後的使用而儲存的一條或多條mysql語句的集合

2.為什麼使用儲存過程?

通過把處理封裝在容易使用的單元中,簡化複雜的操作。

批量處理,簡化對變動的管理。

統一介面,確保了資料的安全。

3.儲存過程的使用

--使用無參

create

procedure 函式名(

)begin

語句;end;

--使用有參

create

procedure 函式名(引數1

,引數2...

)begin

語句;end;

out輸出引數:從儲存過程中傳出。

create

procedure func(

out c int

,out m int

,out e int

)begin

select

max(chinese)

into c from students;

select

max(math)

into m from students;

select

max(english)

into e from students;

end;

--執行

call func(@a,

@b,@c)

;--輸出資料

select@a,

@b,@c;

in輸入引數:傳遞給儲存過程。

create

procedure func (

in p int

)begin

select p;

end;

set@p=20

;call func(@p)

;

inout輸入輸出引數:對儲存過程傳入和傳出。

create

procedure func (

inout p int

)begin

select p;

end;

set@p=20

;call func(@p)

;select

@p;

如果在mysql命令列中執行,要用下面這種形式:

mysql>

delimiter

//mysql>

create

procedure 函式名()-

>

begin

-> 語句;

->

end//

mysql>

delimiter

;

call 函式名(

);

drop

procedure 函式名;

僅當存在時刪除(如果過程不存在也不會報錯),可以使用drop procedure if exists 函式名語句。

drop

procedure

ifexists 函式名;

show

create

procedure 函式名;

可以限制過程狀態結果,使用 show procedure status語句。

show

procedure

status

like

'...'

;

若有不當之處,歡迎指正!

mysql思考7 關於Uber選擇MySQL的思考

在資料庫圈子,大家都知道今年uber幹出來一件大事件,把postgresql切換到了mysql,當時社群裡一陣喧嘩。事情已經過去半年多了,這裡我不想去和大家再次討論這兩個關係型資料庫那個更好。只是想帶著大家思考一下選擇的背後。在該事件中,uber提出來遷移的乙個重要原因是 在大量更新的業務場景下po...

關於mysql的學習筆記(一)

mysql 顯示所有的資料庫,msyql show databases 顯示命令 顯示資料庫列表 show databases 顯示庫中的資料表 use mysql show tables 顯示資料表的結構 describe 表名 顯示表中所有記錄 select from 表名 建庫 create ...

MYSQL學習筆記 關於MySQL的多表操作 2

實際開發中,乙個專案通常需要很多張表才能完成。主鍵 和 外來鍵 的概念 主鍵是能確定一條記錄的唯一標識。外來鍵用於與另一張表的關聯,都是指向另乙個表的主鍵。可伸縮性 能夠適應不斷增加的工作量而不失敗,設計良好的資料庫或應用程式稱之為可伸縮性好。普通的多表查詢 select sname,address...