mysql 觸發(fā)器 函數(shù) 存儲(chǔ)過程之(函數(shù))

因?yàn)橐郧皼]有寫blog的習(xí)慣取董,之前的mysql知識(shí)也就沒記錄,正好現(xiàn)在又用到mysql的函數(shù),所以就立即記錄下吧!

區(qū)別

觸發(fā)器 是在insert update之后執(zhí)行sql命令潦蝇,不需要任何參數(shù)和返回值

函數(shù)和存儲(chǔ)過程類似,
區(qū)別:

  • 一般來說函數(shù)都是返回一個(gè)值或者表對象喘漏,返回多個(gè)值最好用存儲(chǔ)過程
  • 存儲(chǔ)過程一般是作為一個(gè)獨(dú)立的部分來執(zhí)行( EXECUTE 語句執(zhí)行)护蝶,而函數(shù)可以作為查詢語句的一個(gè)部分來調(diào)用(SELECT調(diào)用),由于函數(shù)可以返回一個(gè)表對象翩迈,因此它可以在查詢語句中位于FROM關(guān)鍵字的后面持灰。 SQL語句中不可用存儲(chǔ)過程,而可以使用函數(shù)负饲。
  • 一般來說堤魁,存儲(chǔ)過程實(shí)現(xiàn)的功能要復(fù)雜一點(diǎn),而函數(shù)的實(shí)現(xiàn)的功能針對性比較強(qiáng)返十。存儲(chǔ)過程妥泉,功能強(qiáng)大,可以執(zhí)行包括修改表等一系列數(shù)據(jù)庫操作洞坑;用戶定義函數(shù)不能用于執(zhí)行一組修改全局?jǐn)?shù)據(jù)庫狀態(tài)的操作盲链。
查看數(shù)據(jù)庫中的存儲(chǔ)過程和函數(shù)
show procedure status; //存儲(chǔ)過程
show function status;     //函數(shù)
查看存儲(chǔ)過程或函數(shù)的創(chuàng)建代碼
show create procedure proc_name;
show create function func_name;
查看視圖
SELECT * from information_schema.VIEWS   //視圖

SELECT * from information_schema.TABLES   //表
刪除自定義方法
drop function isRead

isRead是方法名

自己寫的一個(gè)demo

目的是查詢我的房間在某年某個(gè)月份是否已經(jīng)交過電費(fèi),返回結(jié)果0/1,
寫法有點(diǎn)類似js的function

delimiter $$
CREATE FUNCTION isRead(in_meterTime INT,in_year Varchar(255),in_roomId INT) RETURNS int(1)  
BEGIN  
DECLARE i INT ; 
    select count(1) INTO i from (
        select distinct id from t_room where id in (select room_table_id from t_electric_meter where dfsjd_code =  in_meterTime and year = in_year and deleted = 0 )
    )t where id = in_roomId;
RETURN i;
END$$
說明

“DELIMITER $$”語句的作用是將MYSQL的結(jié)束符設(shè)置為$$,因?yàn)镸YSQL默認(rèn)的語句結(jié)束符為分號(hào);所以這樣設(shè)置才不會(huì)沖突

  • 1刽沾、定義變量

DECLARE var_name[,varname]...date_type[DEFAULT VALUE];

var_name為局部變量的名稱
本慕。DEFAULT VALUE子句給變量提供一個(gè)默認(rèn)值。值除了可以被聲明為一個(gè)常數(shù)外侧漓,還可以被指定為一個(gè)表達(dá)式锅尘。
如果沒有DEFAULT子句,初始值為NULL

DECLARE MYPARAM INT DEFAULT 100;
  • 2布蔗、為變量賦值

定義變量之后藤违,為變量賦值可以改變變量的默認(rèn)值,MYSQL中使用SET語句為變量賦值

SET var_name=expr[,var_name=expr]...

聲明3個(gè)變量纵揍,分別為var1顿乒,var2和var3

DECLARE var1,var2,var3 INT;
SET var1=10,var2=20;
SET var3=var1+var2;

MYSQL中還可以通過SELECT...INTO為一個(gè)或多個(gè)變量賦值(我的例子中就是用的這個(gè))
eg:

DECLARE NAME CHAR(50);
DECLARE id DECIMAL(8,2);
SELECT id,NAME INTO id ,NAME FROM t3 WHERE id=2;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市骡男,隨后出現(xiàn)的幾起案子淆游,更是在濱河造成了極大的恐慌,老刑警劉巖隔盛,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件犹菱,死亡現(xiàn)場離奇詭異,居然都是意外死亡吮炕,警方通過查閱死者的電腦和手機(jī)腊脱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來龙亲,“玉大人陕凹,你說我怎么就攤上這事■” “怎么了杜耙?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拂盯。 經(jīng)常有香客問我佑女,道長,這世上最難降的妖魔是什么谈竿? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任团驱,我火速辦了婚禮,結(jié)果婚禮上空凸,老公的妹妹穿的比我還像新娘嚎花。我一直安慰自己,他們只是感情好呀洲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布紊选。 她就那樣靜靜地躺著啼止,像睡著了一般。 火紅的嫁衣襯著肌膚如雪丛楚。 梳的紋絲不亂的頭發(fā)上族壳,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機(jī)與錄音趣些,去河邊找鬼。 笑死贰您,一個(gè)胖子當(dāng)著我的面吹牛坏平,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锦亦,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼舶替,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了杠园?” 一聲冷哼從身側(cè)響起顾瞪,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎抛蚁,沒想到半個(gè)月后陈醒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瞧甩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年钉跷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肚逸。...
    茶點(diǎn)故事閱讀 39,965評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡爷辙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出朦促,到底是詐尸還是另有隱情膝晾,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布务冕,位于F島的核電站血当,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏洒疚。R本人自食惡果不足惜歹颓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望油湖。 院中可真熱鬧巍扛,春花似錦、人聲如沸乏德。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至胧瓜,卻和暖如春矢棚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背府喳。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工蒲肋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人钝满。 一個(gè)月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓兜粘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親弯蚜。 傳聞我的和親對象是個(gè)殘疾皇子孔轴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 《ijs》速成開發(fā)手冊3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 5,144評論 0 7
  • 轉(zhuǎn)載自這里 存儲(chǔ)過程簡介 我們常用的操作數(shù)據(jù)庫語言SQL語句在執(zhí)行的時(shí)候需要要先編譯,然后執(zhí)行碎捺,而存儲(chǔ)過程(Sto...
    杜七閱讀 2,395評論 4 27
  • 原文鏈接 MySQL存儲(chǔ)過程詳解 1.存儲(chǔ)過程簡介 我們常用的操作數(shù)據(jù)庫語言SQL語句在執(zhí)行的時(shí)候需要要先編譯路鹰,然...
    亞斯咪妮閱讀 2,673評論 1 30
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法收厨,內(nèi)部類的語法晋柱,繼承相關(guān)的語法,異常的語法帽氓,線程的語...
    子非魚_t_閱讀 31,631評論 18 399
  • wanggs閱讀 236評論 0 0