mysql56存儲過程
.關於MySQL的存儲過程
存儲過程是資料庫存儲的一個重要的功能,但是MySQL在5.0以前並不支持存儲過程,這使得MySQL在應用上大打折扣。好在MySQL 5.0終於開始已經支持存儲過程,這樣即可以大大提高資料庫的處理速度,同時也可以提高資料庫編程的靈活性。
MySQL存儲過程的創建
(1).格式
MySQL存儲過程創建的格式:CREATE PROCEDURE過程名([過程參數[,...]])
[特性...]過程體
這里先舉個例子:
mysql>DELIMITER//
mysql>CREATEPROCEDUREproc1(OUTsint)
->BEGIN
->SELECTCOUNT(*)INTOsFROMuser;
->END
->//
mysql>DELIMITER;
- 註:
(1)這里需要注意的是DELIMITER //和DELIMITER ;兩句,DELIMITER是分割符的意思,因為MySQL默認以";"為分隔符,如果我們沒有聲明分割符,那麼編譯器會把存儲過程當成SQL語句進行處理,則存儲過程的編譯過程會報錯,所以要事先用DELIMITER關鍵字申明當前段分隔符,這樣MySQL才會將";"當做存儲過程中的代碼,不會執行這些代碼,用完了之後要把分隔符還原。
(2)存儲過程根據需要可能會有輸入、輸出、輸入輸出參數,這里有一個輸出參數s,類型是int型,如果有多個參數用","分割開。
(3)過程體的開始與結束使用BEGIN與END進行標識。
B. 如何通過用MySQL怎麼創建存儲過程
創建存儲過程
CREATE PROCEDURE 存儲過程名()
一個例子說明:一個返回產品平均價格的存儲過程如下代碼:
CREATE PROCEDURE proctpricing()
BEGIN
SELECT Avg(prod_price) AS priceaverage
FROM procts;
END;
//創建存儲過程名為proctpricing,如果存儲過程需要接受參數,可以在()中列舉出來。即使沒有參數後面仍然要跟()。BEGIN和END語句用來限定存儲過程體,過程體本身是個簡單的SELECT語句
C. mysql存儲過程怎麼調
mysql調試存儲過程具體方法:
在你的存儲過程中加入如下語句:
SELECT 變數1,變數2;
然後用mysql自帶的cmd程序進入mysql> 下。
call 你的存儲過程名(輸入參數1,@輸出參數);(注:這里幫助下新同學,如果你的存儲過程有輸出變數,那麼在這里只需要加 @ 然後跟任意變數名即可);
即可發現你的變數值被列印到了cmd下
D. mysql存儲過程
MySQL存儲過程創建的格式如下:
CREATE PROCEDURE 過程名 ([過程參數[,...]])[特性 ...] 過程體
舉例代碼如下:
CREATE PROCEDURE proc1(OUT s int) BEGIN SELECT COUNT(*) INTO s FROM user; END
存儲過程根據需要可能會有輸入、輸出、輸入輸出參數,這里有一個輸出參數s,類型是int型,如果有多個參數用","分割開。
過程體的開始與結束使用BEGIN與END進行標識。
注意:MySQL在5.0以前並不支持存儲過程
E. MySQL存儲過程二
上一節存儲過程封裝的都是簡單的select語句,直接使用被封裝的語句就能完成。所以存儲過程往往應用於更復雜的業務規則處理時更有效
看一個例子
這個例子使用元素比較多,解釋一下:
COMMENT為表添加了一句注釋;
-- 單行注釋,注釋跟在後面的內容,需要注意-- 後需要加一個空格才能生效;
(#注釋內容 /*注釋內容*/ 這兩種方法也能進行注釋)
Declare用來聲明變數,一句declare只能聲明一個變數,變數必須先聲明後使用
If...Then是進行條件判斷的,基本語句如下:
If ... Then ... Else ... End If;
這個存儲過程完成了訂單合計,並判斷該訂單是否需要增加營業稅。taxable是一個布爾值(如果要增稅為真,否則為假)。在存儲體中定義了兩個局部變數。並將結果存儲到局部變數total中。if語句檢查taxable是否為真,如果為真,則用另一條select語句增加營業稅。最後將total結果保存到ototal中。
調用結果如下:
檢查存儲過程
SHOW CREATE PROCEDURE 過程名;
為了獲得包括何時、由誰創建等詳細信息的存儲過程列表,使用
Show procere status; -- 會列出所有存儲過程
可以添加過濾,比如
存儲過程循環語句
1. while
WHILE (表達式) DO
...
END WHILE;
看一個例子
創建了一個循環存儲過程,重復向human插入5條記錄。下面調用看一下結果
2.repeat
基本語句:
Repeat ...until 條件...END Repeat;
同樣操作,使用repeat執行如下
F. mysql中的存儲過程怎麼使用
存儲過程(Stored
Procere)是一組為了完成特定功能的SQL語句集功能是將常用或復雜的工作,預先用SQL語句寫好並用一個指定名稱存儲起來,
以後需要資料庫提供與已定義好的存儲過程的功能相同的服務時,只需調用
call
存儲過程名字,
即可自動完成命令。存儲過程是由流控制和SQL語句書寫的過程,這個過程經編譯和優化後存儲在資料庫伺服器中,可由應用程序通過一個調用來執行,而且允許用戶聲明變數
。同時,存儲過程可以接收和輸出參數、返回執行存儲過程的狀態值,也可以嵌套調用。
G. Mysql存儲過程
不知道對不對 僅供參考(表名換成自己的)
CREATE PROCEDURE `getStuInfo`(IN `p_name` varchar(20))
BEGIN
DECLARE count int;
SET count=(select count(*) from xiao where `name`= p_name);
IF count THEN
select * from xiao where `name`= p_name;
ELSE
SELECT '查詢失敗' as result ;
END IF;
END
調用的時候是 call getStuInfo('張三')
H. mysql存儲過程知識點難學嗎
MySQL存儲過程 一、存儲過程 1.1 什麼是存儲過程 存儲過程(Stored Procere)是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集,它存儲在資料庫中,一次編譯後永久有效,用戶通...,確實有一定的難度!
I. mysql存儲過程
start是mysql的關鍵詞,不能直接用於過程中的參數,需要加一對··符號,修正後的存儲過程如下:
CREATEPROCEDUREsp_pagination(currentpageINT,numperpageINT)
BEGIN
DECLARE`START`INT;
SET`START`=(currentpage-1)*numperpage-1;
SELECT*FROMemployeesLIMIT`START`,numperpage;
END
