mysql怎么看存儲過程 mysql 存儲過程 查詢結果

mysql中怎樣查詢表中的儲存過程

假設A表有3個字段,ID, DATA1,DATA2

成都創(chuàng)新互聯(lián)是一家專注網(wǎng)站建設、網(wǎng)絡營銷策劃、微信平臺小程序開發(fā)、電子商務建設、網(wǎng)絡推廣、移動互聯(lián)開發(fā)、研究、服務為一體的技術型公司。公司成立十多年以來,已經(jīng)為千余家加固各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務。現(xiàn)在,服務的千余家客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。

簡單的話可以不使用存儲過程,比如:

select * form A where ID in (select ID from A where DATA1 between 0 and 100)

如果你的應用比較復雜,在嵌套中還有復雜的運算,存儲過程可以如下例子:

CREATE PROCEDURE test(in_start int,in_end int)

BEGIN

DECLARE ids TEXT;

select GROUP_CONCAT(ID) into ids from A where DATA1 between in_start and in_end;

select * from A where FIND_IN_SET(ID,ids) 0;

END

注: in_start, in_end是DATA1的篩選范圍。 后面一個select直接返回一個表

直接用SQL和使用存儲過程各有利弊,存儲過程在你使用大量查詢及SQL運算的時候效率很高,而且存儲過程一旦寫入數(shù)據(jù)庫會被自動編譯運行速度比較快,而SQL是每次執(zhí)行都需要被編譯一次的。但是存儲過程的調(diào)試比較麻煩,不像你使用編程語言和SQL的時候可以單步調(diào)試。而且如果沒有熟練掌握存儲過程的效率優(yōu)化情況下,使用存儲過程可能比使用SQL更慢。

mysql 存儲過程總結(一)

1、存儲過程定義:

存儲過程是事先經(jīng)過編譯并存儲在數(shù)據(jù)庫中的一段 SQL 語句的集合,調(diào)用存儲過程可以簡化應用開發(fā) 人員的很多工作,減少數(shù)據(jù)在數(shù)據(jù)庫和應用服務器之間的傳輸,對于提高數(shù)據(jù)處理的效率是有好處的。 存儲過程思想上很簡單,就是數(shù)據(jù)庫 SQL 語言層面的代碼封裝與重用。

2、特點:

封裝,復用 : 可以把某一業(yè)務SQL封裝在存儲過程中,需要用到 的時候直接調(diào)用即可。

可以接收參數(shù),也可以返回數(shù)據(jù) :再存儲過程中,可以傳遞參數(shù),也可以接收返回 值。

減少網(wǎng)絡交互,效率提升 : 如果涉及到多條SQL,每執(zhí)行一次都是一次網(wǎng)絡傳 輸。 而如果封裝在存儲過程中,我們只需要網(wǎng)絡交互一次可能就可以了。

3、基本語法

(1)創(chuàng)建:

(2)調(diào)用:

(3)查看:

(4)刪除

注意: 在命令行中,執(zhí)行創(chuàng)建存儲過程的SQL時,需要通過關鍵字 delimiter 指定SQL語句的 結束符。

MySQL存儲過程二

上一節(jié)存儲過程封裝的都是簡單的select語句,直接使用被封裝的語句就能完成。所以存儲過程往往應用于更復雜的業(yè)務規(guī)則處理時更有效

看一個例子

這個例子使用元素比較多,解釋一下:

COMMENT為表添加了一句注釋;

-- 單行注釋,注釋跟在后面的內(nèi)容,需要注意-- 后需要加一個空格才能生效;

(#注釋內(nèi)容? ? ? ? /*注釋內(nèi)容*/? 這兩種方法也能進行注釋)

Declare用來聲明變量,一句declare只能聲明一個變量,變量必須先聲明后使用

If...Then是進行條件判斷的,基本語句如下:

If ... Then ... Else ... End If;

這個存儲過程完成了訂單合計,并判斷該訂單是否需要增加營業(yè)稅。taxable是一個布爾值(如果要增稅為真,否則為假)。在存儲體中定義了兩個局部變量。并將結果存儲到局部變量total中。if語句檢查taxable是否為真,如果為真,則用另一條select語句增加營業(yè)稅。最后將total結果保存到ototal中。

調(diào)用結果如下:

檢查存儲過程

SHOW? CREATE? PROCEDURE? 過程名;

為了獲得包括何時、由誰創(chuàng)建等詳細信息的存儲過程列表,使用

Show procedure status;? -- 會列出所有存儲過程

可以添加過濾,比如

存儲過程循環(huán)語句

1. while

WHILE (表達式)? DO?

...

END WHILE;

看一個例子

創(chuàng)建了一個循環(huán)存儲過程,重復向human插入5條記錄。下面調(diào)用看一下結果

2.repeat

基本語句:

Repeat ...until 條件...END? Repeat;

同樣操作,使用repeat執(zhí)行如下

新聞名稱:mysql怎么看存儲過程 mysql 存儲過程 查詢結果
轉(zhuǎn)載來于:http://muchs.cn/article32/doegcpc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、網(wǎng)站建設、外貿(mào)網(wǎng)站建設、面包屑導航、、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設