Mysql中存儲(chǔ)過程和函數(shù)的區(qū)別是什么

這篇文章主要介紹了MySQL中存儲(chǔ)過程和函數(shù)的區(qū)別是什么,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

昆都侖網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,昆都侖網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為昆都侖上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的昆都侖做網(wǎng)站的公司定做!

數(shù)據(jù)庫設(shè)計(jì)三范式:

第一范式:數(shù)據(jù)庫表的每一列都是不可分割的原子數(shù)據(jù)項(xiàng),即列不可拆分。第二范式:建立在第一范式的基礎(chǔ)上,要求數(shù)據(jù)庫表中的每個(gè)實(shí)例或記錄必須是可以唯一被區(qū)分的,即唯一標(biāo)識(shí)。第三范式:建立在第二范式的基礎(chǔ)上,任何非主屬性不依賴與其他非主屬性,即引用主鍵。(相關(guān)推薦:MySQL教程)

視圖

視圖是虛擬表,并不儲(chǔ)存數(shù)據(jù),只包含定義時(shí)的語句的動(dòng)態(tài)數(shù)據(jù)。

create view view_name as sql查詢語句

存儲(chǔ)過程

一條或多條sql語句集合,其優(yōu)點(diǎn)為(濃縮:簡單/安全/高性能):
 1、存儲(chǔ)過程能實(shí)現(xiàn)較快的執(zhí)行速度
 2、存儲(chǔ)過程允許標(biāo)準(zhǔn)組件是編程。
 3、存儲(chǔ)過程可以用流程控制語句編寫,有很強(qiáng)的靈活性,可以完成復(fù)雜的判斷和較復(fù)雜的運(yùn)算。
 4、存儲(chǔ)過程可被作為一種安全機(jī)制來充分利用。
 5、存儲(chǔ)過程能夠減少網(wǎng)絡(luò)流量

delimiter 分隔符
create procedure|proc proc_name()
begin
    sql語句
end 分隔符
delimiter ;    --還原分隔符,為了不影響后面的語句的使用
默認(rèn)的分隔符是;但是為了能在整個(gè)存儲(chǔ)過程中重用,因此一般需要自定義分隔符(除\外)

存儲(chǔ)過程和函數(shù)的區(qū)別?

相同點(diǎn):存儲(chǔ)過程和函數(shù)都是為了可重復(fù)的執(zhí)行操作數(shù)據(jù)庫的 sql 語句的集合。
1)存儲(chǔ)過程和函數(shù)都是一次編譯,就會(huì)被緩存起來,下次使用就直接命中已經(jīng)編譯好的 sql 語句,不需要重復(fù)使用。減少網(wǎng)絡(luò)交互,減少網(wǎng)絡(luò)訪問流量。
不同點(diǎn):標(biāo)識(shí)符不同,函數(shù)的標(biāo)識(shí)符是 function,存儲(chǔ)過程是 proceduce。
1)函數(shù)中有返回值,且必須有返回值,而過程沒有返回值,但是可以通過設(shè)置參數(shù)類型(in,out)來實(shí)現(xiàn)多個(gè)參數(shù)或者返回值。
2)存儲(chǔ)函數(shù)使用 select 調(diào)用,存儲(chǔ)過程需要使用 call 調(diào)用。
3)select 語句可以在存儲(chǔ)過程中調(diào)用,但是除了 select..into 之外的 select 語句都不能在函數(shù)中使用。
4)通過 in out 參數(shù),過程相關(guān)函數(shù)更加靈活,可以返回多個(gè)結(jié)果。

觸發(fā)器

在對(duì)表數(shù)據(jù)進(jìn)行變動(dòng)的時(shí)候進(jìn)行具體的操作,有六種,分別為增刪改的前后操作。

create trigger trigger_name 
ALTER|BEFORE select|update|delete
on 表
for each row
trigger_stmt

重點(diǎn):

只有表才支持觸發(fā)器,視圖和臨時(shí)表都不支持觸發(fā)器不支持更新和覆蓋,修改必須先刪除然后創(chuàng)建

日志

Mysql主要有四種日志文件:

錯(cuò)誤日志:記錄啟動(dòng),運(yùn)行或者停止 mysql 時(shí)出現(xiàn)的問題;
查詢?nèi)罩荆河涗浰衜syql的活動(dòng)
二進(jìn)制日志:記錄更新過數(shù)據(jù)的所有語句
緩慢查詢?nèi)罩荆河涗洸樵兙徛娜魏尾樵?/p>

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Mysql中存儲(chǔ)過程和函數(shù)的區(qū)別是什么內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!

分享文章:Mysql中存儲(chǔ)過程和函數(shù)的區(qū)別是什么
網(wǎng)站地址:http://muchs.cn/article20/ihpico.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、App開發(fā)、軟件開發(fā)、網(wǎng)站策劃、虛擬主機(jī)靜態(tài)網(wǎng)站

廣告

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

成都網(wǎng)站建設(shè)公司