mysql自定義函數:有且只有一個返回,適合做處理數據后,返回一個查詢結果
1.創建函數
1 create function 函數名(參數里列表) returns 返回類型 2 begin 3 函數體 4 end
1.參數列表的格式為:參數名 類型 例如:name varchar(20),age int
2.函數體里一定要有一條return 語句;推薦放在最后;
3.只有一條執行語句時,begin 和end 可以省略;
4.函數返回的是一個值;
2.查詢函數
select 函數名();
select 函數名(參數);
3.刪除函數
drop function IF EXISTS 函數名;
4.查看函數
show function 函數名
************************************************************************************************************************************************************************************************************
# 案例:根據商品名稱返回商品價格
1 create function getPrice(name varchar(20)) returns double 2 3 begin 4 5 set @price=0; 6 7 select table_sal .price into @price from table_sal where table_sal .name=name; 8 9 return @price; 10 11 end; 12 13 select getPrice('相冊');
查詢時會報錯:
原因:
在存儲過程或者函數,傳人參數是中文的時候,那么就需要將參數的類型VARCHAR
改成NVARCHAR
;
#案例:求兩個結果的和
CREATE FUNCTION test_fun(num1 FLOAT,num2 FLOAT) RETURNS float BEGIN DECLARE SUM FLOAT DEFAULT 0; SET SUM=num1+num2; RETURN SUM; END SELECT test_fun(1,2)