17 mysql中的儲存過程的應用

2021-09-11 06:12:58 字數 1668 閱讀 7319

其實儲存過程也可以叫做過程,而函式也可以叫做儲存函式,兩者都是處理資料的一種方式,但是不同在於函式是必須要有返回值的,而過程則沒有返回值,過程可以理解為是一種用來處理資料的沒有返回值的函式,但是他們的語法又存在區別,接下來詳細的介紹一下儲存過程的使用

建立過程:

// 建立過程

create procedure 過程名字([引數列表])

begin

-- 過程**

end;

// 示例

create procedure getusernames()

begin

select uname from user;

end;

這裡需要說一下過程的引數列表,建立過程時需要用到限定型別,有三個:in、out、inout

in傳入資料供過程內部使用,可以是變數或者值,傳入的引數值不管在過程內部怎麼修改,在過程外部不受影響。

out傳入的資料只能是變數,傳入到過程之後先置為null,過程內部修改變數值,外部受影響

inout

傳入的資料只能是變數,過程內部修改變數值,外部受影響

就這幾個引數,光說也不是很好理解,下邊提供兩個過程,通過改變setname的限定值來看一下三者的區別

// setname的乙個過程,依次修改限定的值

create procedure setname(in name varchar(30))

begin

// 先看一下傳遞進來的值

select name as first_name;

// 過程內部改變傳遞進來的值

set name = "123456";

// 看一下修改之後的值

select name as second_name;

end;

// getname的乙個過程,看一下出入的引數值是否被修改

create procedure getname()

begin

declare name varchar(30) ;

set name = "123";

select name as init_name;

// 將值傳入到setname修改值

call setname(name);

select name as last_name;

end;

依次修改setname的引數列表中限定詞,看一下列印情況,作用一目了然

檢視過程:

// 檢視所有的儲存過程

show procedure status\g;

// 按著名稱檢視儲存過程

show procedure status like '%me';

// 檢視過程的建立語句

show create procedure 過程名

show create procedure setname\g;

使用過程:

// 使用call關鍵字進行過程的使用

call getnames;

刪除過程:

// 刪除的基本語法都是 drop 型別   名稱

drop procedure setname;

以上就是對儲存過程的基本介紹

17 MySQL的小技巧

1.正規表示式的使用 在字串開始處進行匹配 在字串末尾處進行匹配 匹配任意單個字元,包括換行符 匹配出括號內的任意字元 匹配不出括號內的任意字元 a 匹配零個或多個a 包括空串 a 匹配1個或多個a 不包括空串 a?匹配1個或0個a a1 a2 匹配a1或a2 a m 匹配m個a a m,匹配m個或...

mysql 中的儲存過程

儲存過程proc adder功能很簡單,兩個整型輸入引數a和b,乙個整型輸出引數sum,功能就是計算輸入引數a和b的結果,賦值給輸出引數sum 幾點說明 delimiter 之前說過了,把預設的輸入的結束符 替換成 definer 建立者 call 呼叫儲存過程,用 call 命令 procedur...

MySQL的儲存過程

儲存過程 是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給定引數 也可以無引數 來用執行它,乙個儲存過程是乙個可編譯的函式,它在資料庫中建立並儲存 優點 增強sql語言的功能和靈活性 儲存過程允許標準元件是程式設計 儲存過程能實現較快的執行速度 可以減少...