資料庫學習筆記和小練習(14)函式
阿新 • • 發佈:2018-12-30
函式分為系統函式和自定義函式。
一、系統函式
1 文字處理函式
select lower(Sdept) as Sdept_lower
from student
order by Sdept;
常用舉例:
lower() 函式將文字轉化為小寫。
upper() -> 將文字轉化為大寫
left() -> 返回串左邊的字元
length() -> 返回串的長度
locate() -> 找出串的一個子串
ltrim() -> 去掉串左邊的空格
rtrim() -> 去掉串右邊的空格
right() -> 返回串右邊的字元
substring() -> 返回子串的字元
set @cn = '你好';
set @en = 'hello';
select substring(@cn,1,2);
select substring(@en,1,5);
@cn 從角標1開始擷取兩個,顯示你好。
@en 從角標1開始擷取五個,顯示hello。
2 日期時間函式
常用舉例:
CurDate(); 返回當前日期
curtime(); 返回當前時間
Date(); 返回日期時間的日期部分
Date_format() 返回一個格式化的日期或時間串
Day() 返回一個日期的天數部分
dayofweek() 返回日期是星期幾
now() 返回當前日期和時間
select id from orders where date(order_date) between '2015-01-01' and '2016-03-12';
order_date是datetime型別,year()可以取出它的年,month()可以取出它的月
3 數值處理函式
abs() 返回絕對值
mod() 返回除操作的餘數
rand() 返回一個隨機數
二、自定義函式
函式和儲存過程類似,都是永續性模組,函式的定義和儲存過程類似,不同之處在於函式必須指定返回的型別
建立函式:
create function 函式名([引數列表])returns 資料型別
begin
函式體
返回值(指定的資料型別)
end;
create function display1() returns int
return 100;
執行:select 函式名(引數);
select display1();
檢視函式:
show function status\G;
發現函式是屬於建立時所在資料庫的。
檢視函式建立:
show create function display1\G;
函式可以修改,但是隻能修改函式名,對於函式本身,只能先刪除,再新建。
drop function display1;
注意這裡是函式名,不加括號。
帶引數的函式:求1到n的和
delimiter //
create function sum1(n int)returns int
begin
set @i = 1;
set @res = 0;
while @i <= n
do
set @res = @res + @i;
set @i = @i + 1;
end//
delimiter ;
select sum1();