1. 程式人生 > >(2.16)Mysql之SQL基礎——函數

(2.16)Mysql之SQL基礎——函數

統計行數 最大 默認 插入 fun ike insert 一行 div

(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、聚合函數

1max:最大值,適用於任何類型
【2min:最小值,適用於任何類型
【3avg:平均值,適用於數字類型
【4sum:求和,適用於數字類型
【5count:統計行數
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基礎——函數