適合新手的MySQL的基本操作第三期 儲存過程篇

2021-10-08 01:25:54 字數 2523 閱讀 2072

由於本人的水平有限,可能會有一些遺漏,希望大家能夠進行補充。

在目前位置我們所作的大多數sql語句都是針對乙個表或多個表進行操作,但是在實際的工作環境中sql語句的操作並不會那麼簡單,經常在執行乙個操作時需要執行多個sql語句,處理多個表來進行完成。而儲存過程正是解決這些問題的。下面先介紹以下儲存過程。

儲存過程是一組為了完成特定功能的sql語句集。使用儲存過程的目的就是將一些複雜的資料操作或常用的操作先寫好並用乙個指定的名稱儲存起來(有點類似於乙個函式方法),這個過程經編譯和優化後儲存在資料庫伺服器中,因此稱為儲存過程。通常情況下使用儲存過程有以下幾個優點:

1.高效能

當儲存過程被成功編譯後,就儲存在資料庫伺服器裡了,以後客戶端可以直接呼叫,也就是說,sql語句的執行都是在伺服器端執行的,因此這也就大大提高了效能。

2.減少網路通訊流量

有於建立的儲存過程是在伺服器端進行執行的,因此當客戶端呼叫儲存過程時至於要輸入語句,而不用進行儲存過程的執行,因此降低的網路負載。

3.提高資料庫的安全性和資料的完整性

我們在使用儲存過程時通常只會呼叫其方法介面,並不會直接對資料庫的資料進行操作,因此這在一定上提高了資料庫的安全性和資料的完整性。

注:儲存過程是從mysql 從 5.0 版本開始支援的,mysql 5.0 版本以前並不支援儲存過程。

語法:create procedure 《過程名》 ( [過程引數[,…] ] ) 《過程體》

[過程引數[,…] ] 格式: [ in | out | inout ] 《引數名》 《型別》

或:create procedure 儲存過程名(引數列表)

begin

儲存過程體(一組合法的sql語句)

endin:使用改關鍵字的引數可作為輸入引數

out:使用改關鍵字的引數可作為輸出引數

inout:使用改關鍵字的引數即可作為輸出引數,也可作為輸入引數

例1:無參的儲存過程,查詢表「teacher」的內容的儲存過程

# delimiter $   定義新的語句分隔符為"$"

# 預設的mysql語句分隔符為分號";"。mysql命令列實用程式也是";"作為語句分隔符。如果命令列實用程式要解釋# 儲存過程自身的";"字元,則他們最終不會成為儲存過程的成分,這會使儲存過程中的sql出現句法錯誤

delimiter $

create

procedure getteacherinfo(

)begin

select

*from teacher;

end $

# 使用儲存過程

delimiter $

call getteacherinfo(

)$

例2:在儲存過程中使用輸入引數,建立名為」getstuinfobyid「的儲存過程,返回指定學號的學生的基本資訊

delimiter $

create

procedure getstuinfobyid(

in id char(10

))begin

select

*from student where studentid = id;

end $

# 使用儲存過程

delimiter $

call getstuinfobyid(

'1')$

例3:在儲存過程中使用輸出引數,建立名為」getstunamebyid「的儲存過程,根據輸入引數的值返回對應學生的姓名

delimiter $

create

procedure getstunamebyid(

in id char(10

),out name varchar(10

))begin

select name = studentname from student where studentid = id;

end $

# 呼叫

call getstunamebyid(

'1',

@aname

)select

@aname

語法:show create procedure 儲存過程名;

例1:檢視getstunamebyid的定義

show

create

procedure getstunamebyid;

語法:drop [ if exists ] 《過程名》

例1:刪除儲存過程getteacherinfo

delimiter

;drop

procedure getteacherinfo;

適合新手學的 mysql DML基本語句

一.在mysql管理軟體中,ddl已經定義了資料庫結構。那麼如何對其中的資料進行管理呢?可以通過sql語句中的dml語言來實現資料的操作,包括使用 insert 實現資料的 插入 delete 實現資料的 刪除 update 實現資料的 更新。1.插入資料insert insert into 表名 ...

MySQL基本操作,新手入門寶典

以下的文章主要向大家描述的是mysql基本操作,mysql在實際操作中是經常被用到的,所以對mysql的基本內容的了解也是一件很重要的事項,以下的文章就是對mysql基本操作的詳細描述。登陸資料庫 d phpstudy mysql bin mysql uroot proot 檢視資料庫 mysql ...

MySQL基本操作,新手入門寶典

以下的文章主要向大家描述的是mysql基本操作,mysql在實際操作中是經常被用到的,所以對mysql的基本內容的了解也是一件很重要的事項,以下的文章就是對mysql基本操作的詳細描述。登陸資料庫 d phpstudy mysql bin mysql uroot proot 檢視資料庫 mysql ...