MySQL--存儲(chǔ)過(guò)程-創(chuàng)新互聯(lián)

定義 一個(gè)復(fù)雜邏輯對(duì)SQL語(yǔ)句的批量處理, 通過(guò)一個(gè)名字存儲(chǔ) 創(chuàng)建 delimiter // 修改終止符 -- 存儲(chǔ)過(guò)程沒(méi)有返回值 delimiter //    ---- 把終止符;修改成// create procedure porc2() begin -- 可執(zhí)行語(yǔ)句 insert into mm_users values (0,'xiaownag','xxx'); select * from mm_users; end //       ---- 填寫(xiě)終止符 delimiter ;   ---- 還原原來(lái)的終止符以執(zhí)行 查看 -- 查看 mysql.proc    select db,name,type from mysql.proc; 調(diào)用 -- 調(diào)用 如果存儲(chǔ)過(guò)程沒(méi)有參數(shù) 小括號(hào)可以省略 call proc(); --在pymysql中執(zhí)行存儲(chǔ)過(guò)程     cursor.callproc('存儲(chǔ)對(duì)象名') 刪除 -- 刪除 drop procedure proc_stu; delete from mysql.proc where name = 'porc1'; - 存儲(chǔ)過(guò)程和函數(shù)的區(qū)別 - 課件 -- 函數(shù)在使用時(shí)候有哪些限制  -- select 語(yǔ)句不能夠在函數(shù)中執(zhí)行  -- 函數(shù)中除 select into之外其他的 select 語(yǔ)句都不能夠執(zhí)行  -- select into 是將查詢的結(jié)果賦值給某一個(gè)變量  delimiter //  create function f4(in a int,in b int) returns int  begin  -- 定義一個(gè)變量 res  declare res int default 0;  -- 將 a + b的結(jié)果賦值給 res  select count(*) from mm_users into res;  -- set res = a + b;  -- 返回 res  return res;  end  //  delimiter ;  -- 通過(guò)存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn)函數(shù)中不能夠調(diào)用 select 語(yǔ)句的弊端  -- 但是存儲(chǔ)過(guò)程沒(méi)有返回值  -- 可以通過(guò) out 類(lèi)型的參數(shù)來(lái)給存儲(chǔ)過(guò)程實(shí)現(xiàn)多個(gè)返回值的功能 - 相同點(diǎn) 相同點(diǎn) 存儲(chǔ)過(guò)程和函數(shù)都是為了可重復(fù)的執(zhí)行操作數(shù)據(jù)庫(kù)的 sql 語(yǔ)句的集合. 存儲(chǔ)過(guò)程和函數(shù)都是一次編譯,就會(huì)被緩存起來(lái), 下次使用就直接命中緩存中已經(jīng)編譯好的 sql, 不需要重復(fù)編譯 減少網(wǎng)絡(luò)交互,減少網(wǎng)絡(luò)訪問(wèn)流量 - 不同點(diǎn) 不同點(diǎn) 標(biāo)識(shí)符不同,函數(shù)的標(biāo)識(shí)符是 function, 過(guò)程:procedure 函數(shù)中有返回值,且必須有返回值,而過(guò)程沒(méi)有返回值, 但是可以通過(guò)設(shè)置參數(shù)類(lèi)型(in,out)來(lái)實(shí)現(xiàn)多個(gè)參數(shù)或者返回值 函數(shù)使用 select 調(diào)用,存儲(chǔ)過(guò)程需要使用 call 調(diào)用 select 語(yǔ)句可以在存儲(chǔ)過(guò)中調(diào)用, 但是除了 select ... into 之外的 select 語(yǔ)句都不能再函數(shù)中調(diào)用 通過(guò) in out 參數(shù),過(guò)程相關(guān)函數(shù)更加靈活,可以返回多個(gè)結(jié)果 在實(shí)際開(kāi)發(fā)中根據(jù)個(gè)人喜好選擇使用函數(shù)或者存儲(chǔ)過(guò)程 - 參數(shù)/返回值 -- 參數(shù)的類(lèi)型 -- in 傳入類(lèi)型的參數(shù),函數(shù)或者存儲(chǔ)過(guò)程的參數(shù) 默認(rèn)就是傳入類(lèi)型的參數(shù) -- out 傳出類(lèi)型的參數(shù), 給存儲(chǔ)過(guò)程實(shí)現(xiàn)多個(gè)返回值的功能 -- inout  既可以傳入又可以傳出 一般不用 一個(gè)參數(shù)要表達(dá)多個(gè)意思, 造成參數(shù)的語(yǔ)義不夠清晰 函數(shù)的參數(shù)的大個(gè)數(shù): 1024 procedure p1(     in arg1 int,   # 讓存儲(chǔ)過(guò)程內(nèi)部使用     out arg2 varchar(50)     inout arg3 int ) begin     ... end @i1 = "alex" # @il 引用 call p1(1, @i1, @i2)  # @設(shè)置一個(gè)變量@i1= null

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

創(chuàng)新互聯(lián)自2013年創(chuàng)立以來(lái),先為開(kāi)化等服務(wù)建站,開(kāi)化等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為開(kāi)化企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

當(dāng)前文章:MySQL--存儲(chǔ)過(guò)程-創(chuàng)新互聯(lián)
文章起源:http://bm7419.com/article4/cdgeoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站改版、網(wǎng)站排名品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃

廣告

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

綿陽(yáng)服務(wù)器托管