(2.16)Mysql之SQL基礎——函數
(2.16)Mysql之SQL基礎——函數
關鍵詞:mysql函數,mysql自定義函數,mysql聚合函數,mysql字符串函數,mysql日期函數
1、自定義函數
-- (1)一般形式 create function 函數名(參數類型 數據類型) returns 返回類型 begin sql 語句 return 返回的數據值 end
-- (2)舉例
delimiter //
create function fn_test()
retrurn varchar(20)
begin
return ‘hello,world‘;
end //delimiter ;
-- (3)調用
【1】直接select fn_test();
【2】在存儲過程,或者任何表達式中都可以運用它
-- (4)函數的查看
【1】mysql.proc:select * from mysql.proc where db=‘db_name‘ and type=‘function‘;
【2】show function status like ‘fn_name‘;
【3】show create function fn_test();
【4】information_schema.`routines`:
select * from information.`routines`
where routine_schema=‘db_name‘ and routine_type=‘function‘;
-- (5)函數的刪除
【1】drop function fn_test();
2、聚合函數
【1】max:最大值,適用於任何類型 【2】min:最小值,適用於任何類型 【3】avg:平均值,適用於數字類型 【4】sum:求和,適用於數字類型 【5】count:統計行數 【6】group_concat:將字符串從分組中連接成具有各種選項(如distinct,order by和separator)的字符串(sql server中的for xml path(),oracle中的wmsys.wm_concat)
(1)概念 ,即實現分組後,其他值默認以逗號為分隔符連接到一行(2)最大長度參數:默認為1024,group_concat_max_len
使用實例;
【1】distinct:去重 【2】order by :排序 【3】設定分割字符
3、常用字符串函數
【1】concat(st1,str2,‘test_str‘):將括號內的多個字符串組連成一個字符串(就是類似於oracle中的||,sql server中的+,拼接)
【2】length(str)、char_length(str):以字節或者字符獲取字符串的長度(英文下是一樣的,但是UTF8中文一個字符是3個字節,比如 ‘你好呀‘,用char_length就是3,用length就是9)
【3】left(str,N)函數:獲取左邊N個字符
【4】replace(str,需要替換的值,被替換成的值)函數:替換
【5】trim(str):刪除str字符串中左右兩邊的空格,中間不會刪除
【6】find_in_set():在逗號分隔符的字符串列表中找到一個字符串
【7】format():格式化
【8】instr(str,find_str):返回字符串在字符串中第一次出現的位置
【9】concat_ws(‘connect_str‘,‘str1‘,‘str2‘,‘str3‘):意思是,str1和st2之間用connect_str字符串連接起來,str2與str3之間也是。忽略字符串中的所有Null(但不忽略空格)
6、內置函數
6.1、LAST_INSERT_ID():獲取自增長的最後插入值ID
6.2、instr:返回字符串在字符串中第一次出現的位置
使用方法:instr(‘hello_world‘,‘wo‘),結果為7,即返回後面字符串在前面字符串第一次出現的位置
(2.16)Mysql之SQL基礎——函數