共計 3075 個字符,預計需要花費 8 分鐘才能閱讀完成。
這篇文章將為大家詳細講解有關 mysql 函數的示例分析,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
一. 內置函數
1. 數學函數
rand()round(num)ceil(num)floor(num) 隨機四舍五入向上取整向下取整
2. 字符串函數
length() 字節長度
char_length() 字符長度
ucase() 大寫
lcase() 小寫
concat(字符,…, 字符 n)連接字符串
replace(字符串,舊字符,新字符)字符串替換
截取字符串
left(字符串,截取長度)
right(字符串,截取長度)
substring(字符串,開始位置,截取長度)#包含開始位置
mysql select left(123456 ,4);
+------------------+
| left(123456 ,4) |
+------------------+
| 1234 |
+------------------+
1 row in set (0.00 sec)
mysql select right(123456 ,4);
+-------------------+
| right(123456 ,4) |
+-------------------+
| 3456 |
+-------------------+
1 row in set (0.00 sec)
mysql select substring(123456 ,2,4);
+-------------------------+
| substring(123456 ,2,4) |
+-------------------------+
| 2345 |
+-------------------------+
1 row in set (0.00 sec)
3. 日期函數
now()unix_timestamp()from_unixtime() 當前時間時間戳格式化時間戳
mysql select now();
+---------------------+
| now() |
+---------------------+
| 2019-03-16 14:55:42 |
+---------------------+
1 row in set (0.00 sec)
mysql select unix_timestamp();
+------------------+
| unix_timestamp() |
+------------------+
| 1552719356 |
+------------------+
1 row in set (0.00 sec)
mysql select from_unixtime(1552719356);
+---------------------------+
| from_unixtime(1552719356) |
+---------------------------+
| 2019-03-16 14:55:56 |
+---------------------------+
1 row in set (0.00 sec)
year()month()day()hour()minute()second() 年月日時分秒
mysql select
- year(now()) as 年 ,
- month(now()) as 月 ,
- day(now()) as 日 ,
- hour(now()) as 時 ,
- minute(now()) as 分 ,
- second(now()) as 秒
+------+------+------+------+------+------+
| 年 | 月 | 日 | 時 | 分 | 秒 |
+------+------+------+------+------+------+
| 2019 | 3 | 16 | 14 | 59 | 12 |
+------+------+------+------+------+------+
4. 加密函數
md5(數據)
password(數據)
5. 條件判斷函數
1). 語法: if(數據,值 1,值 2)#判斷指定數據是否為真:真 - 值 1,假 - 值 2
mysql select if(null,1,2);
+--------------+
| if(null,1,2) |
+--------------+
| 2 |
+--------------+
1 row in set (0.00 sec)
mysql select if(1,0,2);
+-----------+
| if(1,0,2) |
+-----------+
| 0 |
+-----------+
1 row in set (0.00 sec)
2). 語法: IFNULL(數據,值 2)#判斷指定數據是否為 null:null- 值 2,非 null- 本身
mysql select ifnull(0,123);
+---------------+
| ifnull(0,123) |
+---------------+
| 0 |
+---------------+
1 row in set (0.00 sec)
mysql select ifnull(a ,123);
+-----------------+
| ifnull(a ,123) |
+-----------------+
| a |
+-----------------+
1 row in set (0.00 sec)
二. 自定義函數
語法:
# 修改結束符
delimiter //
create function 函數名(參數名 類型,..., 參數名 n 類型 n) returns 返回數據類型
begin
#SQL 語句
return 返回值;
end //
delimiter ;
select 函數名 ();
輸出 hello world (不帶參數的函數)
# 判斷函數是否存在,存在就刪除
drop function if exists f1;
delimiter //
create function f1() returns varchar(30)
begin
return hello world
end //
delimiter ;
select f1();
+-------------+
| f1() |
+-------------+
| hello world |
+-------------+
傳遞兩個整型求和(帶參數的函數)
drop function if exists f2;
delimiter //
create function f2(num1 int, num2 int) returns int
begin
return num1 + num2;
end //
delimiter ;
select f2(8, 2);
+----------+
| f2(8, 2) |
+----------+
| 10 |
+----------+
三. 自定義函數相關語法
顯示所有的函數:show function status\G #輸出的內容很多
刪除函數:drop function [if exists] 函數名;
四. 存儲過程和函數的區別
存儲過程可以返回多個值,而自定義函數只能返回一個值
存儲過程一般獨立執行,而函數往往作為其他 SQL 語句的一部分來使用
關于“mysql 函數的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。