溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql函數的示例分析

發布時間:2021-07-29 10:22:33 來源:億速云 閱讀:229 作者:小新 欄目:MySQL數據庫

這篇文章將為大家詳細講解有關mysql函數的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一.內置函數

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函數的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女