存儲(chǔ)過(guò)程顧名思義,相當(dāng)于一組為了完成特定功能的sql語(yǔ)句集,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中。用戶通過(guò)指定存儲(chǔ)過(guò)程的名字并給出參數(shù)(如果該存儲(chǔ)過(guò)程帶有參數(shù))來(lái)執(zhí)行它。存儲(chǔ)過(guò)程是數(shù)據(jù)庫(kù)中的一個(gè)重要對(duì)象,任何一個(gè)設(shè)計(jì)良好的數(shù)據(jù)庫(kù)應(yīng)用程序都應(yīng)該用到存儲(chǔ)過(guò)程。
創(chuàng)新互聯(lián)公司致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷,提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)站開(kāi)發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營(yíng)銷、微信小程序、公眾號(hào)商城、等建站開(kāi)發(fā),創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢(shì)。 存儲(chǔ)過(guò)程的書(shū)寫(xiě)格式:
CREATE PROCEDURE [擁有者.]存儲(chǔ)過(guò)程名[;程序編號(hào)]
[(參數(shù)#1,…參數(shù)#1024)]
[WITH
{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}
]
[FOR REPLICATION]
AS 程序行
其中存儲(chǔ)過(guò)程名不能超過(guò)128個(gè)字。每個(gè)存儲(chǔ)過(guò)程中最多設(shè)定1024個(gè)參數(shù)
(SQL Server 7.0以上版本),參數(shù)的使用方法如下:
@參數(shù)名數(shù)據(jù)類型 [VARYING] [=內(nèi)定值] [OUTPUT]
每個(gè)參數(shù)名前要有一個(gè)“@”符號(hào),每一個(gè)存儲(chǔ)過(guò)程的參數(shù)僅為該程序內(nèi)部使用,參數(shù)的類型除了IMAGE外,其他SQL Server所支持的數(shù)據(jù)類型都可使用。
output:表示此參數(shù)是可傳回的
with {recompile|encryption}
recompile:表示每次執(zhí)行此存儲(chǔ)過(guò)程時(shí)都重新編譯一次
encryption:所創(chuàng)建的存儲(chǔ)過(guò)程的內(nèi)容會(huì)被加密
使用存儲(chǔ)過(guò)程有以下的優(yōu)點(diǎn):
* 存儲(chǔ)過(guò)程的能力大大增強(qiáng)了SQL語(yǔ)言的功能和靈活性。存儲(chǔ)過(guò)程可以用流控制語(yǔ)句編寫(xiě),有很強(qiáng)的靈活性,可以完成復(fù)雜的判斷和較復(fù)雜的運(yùn)算。
* 可保證數(shù)據(jù)的安全性和完整性。
# 通過(guò)存儲(chǔ)過(guò)程可以使沒(méi)有權(quán)限的用戶在控制之下間接地存取數(shù)據(jù)庫(kù),從而保證數(shù)據(jù)的安全。
# 通過(guò)存儲(chǔ)過(guò)程可以使相關(guān)的動(dòng)作在一起發(fā)生,從而可以維護(hù)數(shù)據(jù)庫(kù)的完整性。
* 再運(yùn)行存儲(chǔ)過(guò)程前,數(shù)據(jù)庫(kù)已對(duì)其進(jìn)行了語(yǔ)法和句法分析,并給出了優(yōu)化執(zhí)行方案。這種已經(jīng)編譯好的過(guò)程可極大地改善SQL語(yǔ)句的性能。由于執(zhí)行SQL語(yǔ)句的大部分工作已經(jīng)完成,所以存儲(chǔ)過(guò)程能以極快的速度執(zhí)行。
* 可以降低網(wǎng)絡(luò)的通信量。
* 使體現(xiàn)企業(yè)規(guī)則的運(yùn)算程序放入數(shù)據(jù)庫(kù)服務(wù)器中,以便:
# 集中控制。
# 當(dāng)
企業(yè)規(guī)則發(fā)生變化時(shí)在服務(wù)器中改變存儲(chǔ)過(guò)程即可,無(wú)須修改任何應(yīng)用程序。企業(yè)規(guī)則的特點(diǎn)是要經(jīng)常變化,如果把體現(xiàn)企業(yè)規(guī)則的運(yùn)算程序放入應(yīng)用程序中,則當(dāng)
企業(yè)規(guī)則發(fā)生變化時(shí),就需要修改應(yīng)用程序工作量非常之大(修改、發(fā)行和安裝應(yīng)用程序)。如果把體現(xiàn)企業(yè)規(guī)則的運(yùn)算放入存儲(chǔ)過(guò)程中,則當(dāng)企業(yè)規(guī)則發(fā)生變化
時(shí),只要修改存儲(chǔ)過(guò)程就可以了,應(yīng)用程序無(wú)須任何變化。
php操作方法
mysql_query("call 存儲(chǔ)過(guò)程名稱")
觸發(fā)器
是mysql內(nèi)部進(jìn)行執(zhí)行的,觸發(fā)器是與表有關(guān)的命名數(shù)據(jù)庫(kù)對(duì)象,當(dāng)表上出現(xiàn)特定事件時(shí),將激活該對(duì)象。例如當(dāng)我們向某表插入一行數(shù)據(jù)時(shí)發(fā)生一個(gè)事件或者刪除某個(gè)記錄時(shí)觸發(fā)某個(gè)事件。
語(yǔ)法:
CREATE TRIGGER trigger_Name trigger_time trigger_event
ON tbl_Name FOR EACHROW trigger_stmt
trigger_time 是觸發(fā)器的動(dòng)作時(shí)間。它可以是 BEFORE 或 AFTER ,以指明觸發(fā)器是在激活它的
語(yǔ)句之前或之后觸發(fā)。
trigger_event 指明了激活觸發(fā)器的語(yǔ)句的類型。trigger_event 可以是下述值之一:
INSERT:將新行插入表時(shí)激活觸發(fā)器,例如,通過(guò) INSERT、LOADDATA 和 REPLACE 語(yǔ)句;
UPDATE:更改某一行時(shí)激活觸發(fā)器,例如,通過(guò)UPDATE語(yǔ)句;
DELETE:從表中刪除某一行時(shí)激活觸發(fā)器,例如,通過(guò) DELETE 和 REPLACE 語(yǔ)句。
另外有需要云服務(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ì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
本文標(biāo)題:mysql的存儲(chǔ)過(guò)程和觸發(fā)器的使用以及php中的調(diào)用方法-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://jinyejixie.com/article22/isijc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、App設(shè)計(jì)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站收錄、外貿(mào)建站
聲明:本網(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)
猜你還喜歡下面的內(nèi)容