結束下面sql塊 SQL面試題 什麼是儲存過程?

2021-10-14 16:17:21 字數 1224 閱讀 8026

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...