1。什麼是儲存過程?
簡單理解,事先建立了乙個函式,當需要使用的時候,可以直接呼叫,無需再重複寫sql語句了。
2。如何使用儲存過程?
使用儲存過程需要:1)定義儲存過程 2)使用已經定義好的儲存過程
create procedure 《儲存過程名稱》()
begin
語法裡的begin...end用於表示sql語句的開始和結束
舉例:create procedure score_1()
begin
select 課程號 from score;
使用儲存過程
call 《儲存過程名稱》();
前面的儲存過程名稱後面是(),括號裡面沒有引數。當括號裡面有引數時,就是下面的語法:
create procedure 《儲存過程名稱》(引數1,引數2,...)
begin
舉例,在score表裡查詢出指定成績對應的學生學號
create procedure score2(num int)
begin
select 學號 from score
where 成績=num;
end;
當使用儲存過程時
call score2(99);
3.儲存過程的注意事項
1)定義儲存過程語法裡的sql語句**塊必須是完整的sql語句,必須用「;」結尾
2)定義不同的儲存過程,要使用不同的儲存過程名稱,相同的儲存過程的名字會引起系統報錯。
4。儲存過程有什麼用
如果業務比較複雜、重複性工作比較多,儲存過程會比較實用。
把重複要做的事情整理成一步一步的業務步驟,然後把業務步驟寫成sql語句,然後再把sql語句寫到儲存過程的語法裡。就像自動駕駛一樣,把可能遇到的狀況提前規劃好,就不需要自己操縱方向盤,車子就按照我們寫的步驟向前開了。
參考:**面試題:sql儲存過程有什麼用?
SQL面試題 (二)
sql面試題 二 有一張工資表,包含三列 員工編號 id 部門編號 groups 工資 salary 1.找到每個部門工資最高的人 包括並列第一 2.找到每個部門工資最高的人 只選乙個 sql語句如下 declare g table id int,groups nvarchar 20 salary ...
sql 查詢面試題
表中有a b c三列,用sql語句實現 當a列大於b列時選擇a列否則選擇b列,當b列大於c列時選擇b列否則選擇c列 if object id testtb is not null drop table testtb gocreate table testtb a int b int c int in...
SQL問題(面試題)
面試完後在本地mysql資料庫中重現了該問題 資料表stuscore資訊如下 1 計算每個人的總成績,並且排名 要求顯示字段 學號 姓名 總成績 select stuid as 學號,name as 姓名,sum score as 總成績 from stuscore group by stuid o...