詳解數(shù)據(jù)庫_MySQL: mysql函數(shù)
一.內(nèi)置函數(shù)
1.數(shù)學(xué)函數(shù)
| rand() | round(num) | ceil(num) | floor(num) |
|---|---|---|---|
| 隨機(jī) | 四舍五入 | 向上取整 | 向下取整 |
2.字符串函數(shù)
length() 字節(jié)長度
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.日期函數(shù)
| now() | unix_timestamp() | from_unixtime() |
|---|---|---|
| 當(dāng)前時(shí)間 | 時(shí)間戳 | 格式化時(shí)間戳 |
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() |
|---|---|---|---|---|---|
| 年 | 月 | 日 | 時(shí) | 分 | 秒 |
mysql> select -> year(now()) as '年', -> month(now()) as '月', -> day(now()) as '日', -> hour(now()) as '時(shí)', -> minute(now()) as '分', -> second(now()) as '秒'; +------+------+------+------+------+------+ | 年 | 月 | 日 | 時(shí) | 分 | 秒 | +------+------+------+------+------+------+ | 2019 | 3 | 16 | 14 | 59 | 12 | +------+------+------+------+------+------+
4.加密函數(shù)
md5(數(shù)據(jù))
password(數(shù)據(jù))
5.條件判斷函數(shù)
1).語法: if(數(shù)據(jù),值1,值2) #判斷指定數(shù)據(jù)是否為真:真-值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(數(shù)據(jù),值2) #判斷指定數(shù)據(jù)是否為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)
二.自定義函數(shù)
語法:
#修改結(jié)束符 delimiter // create function 函數(shù)名(參數(shù)名 類型,...,參數(shù)名n 類型n) returns 返回?cái)?shù)據(jù)類型 begin #SQL語句 return 返回值; end // delimiter ; #調(diào)用 select 函數(shù)名();
輸出"hello world"(不帶參數(shù)的函數(shù))
#判斷函數(shù)是否存在,存在就刪除 drop function if exists f1; delimiter // create function f1() returns varchar(30) begin return 'hello world'; end // delimiter ; select f1(); +-------------+ | f1() | +-------------+ | hello world | +-------------+
傳遞兩個(gè)整型求和(帶參數(shù)的函數(shù))
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 | +----------+
三.自定義函數(shù)相關(guān)語法
顯示所有的函數(shù):show function status\G #輸出的內(nèi)容很多
刪除函數(shù):drop function [if exists] 函數(shù)名;
四.存儲(chǔ)過程和函數(shù)的區(qū)別
存儲(chǔ)過程可以返回多個(gè)值,而自定義函數(shù)只能返回一個(gè)值
存儲(chǔ)過程一般獨(dú)立執(zhí)行,而函數(shù)往往作為其他SQL語句的一部分來使用
以上所述是小編給大家介紹的數(shù)據(jù)庫_MySQL: mysql函數(shù)詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- sql與各個(gè)nosql數(shù)據(jù)庫使用場(chǎng)景的講解
- 數(shù)據(jù)庫語言分類DDL、DCL、DML詳解
- MySQL數(shù)據(jù)庫中CAST與CONVERT函數(shù)實(shí)現(xiàn)類型轉(zhuǎn)換的講解
- mysql 8.0.15 安裝圖文教程及數(shù)據(jù)庫基礎(chǔ)
- SQL SERVER 數(shù)據(jù)庫備份代碼實(shí)例
- PostgreSQL數(shù)據(jù)庫中窗口函數(shù)的語法與使用
- 如何合理使用數(shù)據(jù)庫冗余字段的方法
- Mysql主從數(shù)據(jù)庫(Master/Slave)同步配置與常見錯(cuò)誤
- PHP單例模式數(shù)據(jù)庫連接類與頁面靜態(tài)化實(shí)現(xiàn)方法
- 如何在一個(gè)千萬級(jí)的數(shù)據(jù)庫查詢中提高查詢的效率?
相關(guān)文章
在IDEA的maven項(xiàng)目中連接并使用MySQL8.0的方法教程
這篇文章主要介紹了如何在IDEA的maven項(xiàng)目中連接并使用MySQL8.0,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02
mysql如何實(shí)現(xiàn)多行查詢結(jié)果合并成一行
利用函數(shù):group_concat(),實(shí)現(xiàn)一個(gè)ID對(duì)應(yīng)多個(gè)名稱時(shí),原本為多行數(shù)據(jù),把名稱合并成一行2013-12-12
通過實(shí)例認(rèn)識(shí)MySQL中前綴索引的用法
這篇文章主要通過實(shí)例來介紹MySQL中的前綴索引,包括前綴在實(shí)際使用中需要考慮到的長度問題等,需要的朋友可以參考下2015-05-05
MySQ登錄提示ERROR 1045 (28000)錯(cuò)誤的解決方法
這篇文章主要為大家詳細(xì)介紹了MySQ登錄提示ERROR 1045 (28000)錯(cuò)誤的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07

