函數

函數:一組預先編譯好的SQL語句的集合,相當於批處理語句。
函數和存儲過程的區別:存儲過程可以有0個返回,也可以有多個返回,適合做批量插入、批量更新;函數有且僅有1個返回,適合處理數據後返回一個結果。
函數優點:
1、提高代碼的重要性。
2、簡化操作。
3、減少了編譯次數並且減少了和數據服務器的連接次數,提高了效率。
創建函數模板

DELIMITER $
create FUNCTION 函數名(參數列表) RETURNS 返回類型
BEGIN
	函數體
END $;

函數調用方式和存儲過程調用方式不一樣,函數調用直接用select。

函數樣例1:

DELIMITER $
create FUNCTION mycount() RETURNS INT
BEGIN
	DECLARE c INT DEFAULT 0;
	select count(*) INTO c from employees;
	RETURN c;
END $;

--調用
select mycount();

函數樣例2:

DELIMITER $
create FUNCTION myf2(ename VARCHAR(32)) RETURNS DOUBLE
BEGIN
	DECLARE c DOUBLE DEFAULT 0;
	select salary INTO c from employees where last_name=ename;
	RETURN c;
END $;

--調用
select myf2('Hunold')

函數樣例3:

DELIMITER $
create FUNCTION myf3(ename VARCHAR(32)) RETURNS DOUBLE
BEGIN
	DECLARE c DOUBLE DEFAULT 0;
	select AVG(b.salary) INTO c from departments a INNER JOIN employees b on a.department_id=b.department_id where a.department_name=ename;
	RETURN c;
END $;

select myf3('Adm')

 

發佈了9 篇原創文章 · 獲贊 0 · 訪問量 273
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章