Mysql中的常用函數:

Mysql中的常用函數:
1.字符串函數:
(1).合併字符串

concat()😕/ concat(‘M’,‘y’,“SQL”,‘5.5’);== MySQL5.5//當傳入的參數有一個值爲NULL,返回的結果值爲NULL
concat_ws();// 指定分隔符插入到字符串中:concat_ws(":",‘2017’,‘09’);==2017:09,但如果分隔符是NULL的話,結果就爲NULL,參數是NULL,不影響結果

(2).比較字符串大小的函數:
select strcmp(字符串1,字符串2);大於返回1,小於返回-1,等於返回0
(3).獲取字符串長度的函數:
length(); // 計算空格,指的是傳入參數的長度(字節長度),一個漢字是兩個字節.
char_length();// 傳入參數的字符數(字符長度)
(4).字母大小寫轉換函數:
UPPER();或者是UCASE()轉化爲大寫
LOWER();
(5).查找字符串:
select FIND_IN_SET(查找字符串,目標字符串集合);// 返回字符串位置的函數,目標字符串是以逗號分割的字符串集合,下標從1開始
select FIELD(查找字符串,目標字符串1,目標字符串2,…);// 返回字符串位置的函數
LOCATE(str1,str);// 返回str中字符串str1的開始位置
POSITION(str1 IN str);// 返回str中字符串str1的開始位置
INSTR(str,str1); // 返回str中字符串str1的開始位置
ELT(n,str1,str2…,strn);// 返回第n個字符串
MAKE_SET(num,str1,str2,…strn) ;// 先將數值num轉化爲二進制,然後按照二進制數從參數str1,str2,…,strn中選取相應的字符串
例子:select BIN(5) as 二進制數,MAKE_SET(5,‘MYSQL’,‘ORACLE’,‘SQL SERVER’,‘POSTGRESQL’) as 選取後的字符串;// 結果爲MYSQL,SQL SERVER
(6).截取字符串函數:
LEFT(str,num);// 從左邊截取,字符串是str,長度是num
RIGHT(str,num);// 從右邊截取,字符串是str,長度是num
SUBSTRING(str,num,len);// 字符串是str,從num位置開始,長度是len,包含num位置
MID(str,num,len);// 字符串是str,從num位置開始,長度是len,包含num位置
(7),去除字符串的首尾空格:
LTRIM(str);// 去除字符串開始處空格
RTRIM(str);// 去除字符串結束處空格
TRIM(str);// 去除字符串首尾空格
(8).替換字符串函數:
INSERT(str,pos,len,newstr);// str是原字符串,pos是需要替換的開始位置,len是替換的長度(根據需要來定),newstr是替換的新字符串
REPLACE(str,substr,newstr);// str是原字符串,substr是需要替換的字符串,newstr是替換substr的字符串,替換所有匹配的字符串
注意:比較以下兩個結果:
select replace(“THIS IS TEST STRING”,“IS”,“IS NOT”);// THIS NOT IS NOT TEST STRING,不區分單詞,切記
select replace(“THIS IS TEST STRING”," IS “,” IS NOT ");//THIS IS NOT TEST STRING
2.數值函數:
(1).獲取隨機數:
RAND(); // 返回的數完全隨機
RAND(x); // x表示數字,返回的隨機數值是相同的(確定的)
(2).獲取整數的函數:
CEIL(x);// 上取整
FLOOR(x);// 下取整
(3).截取數值函數:
TRUNCATE(x,y);// x表示要截取的數值,y表示小數點後幾位,也就是保留幾位小數,是直接捨去,而不是四捨五入.
(4).四捨五入函數:
ROUND(x);
ROUND(x,y);// 返回數值x保留到小數點後y位
3.日期函數:
(1).獲取當前日期和時間函數:
now();// 當前日期和時間
locatime();// 當前日期和時間
current_timestamp();// 當前日期和時間
SYSDTAE();// 當前日期和時間
(2).當前日期:
curdate();// 當前日期
current_date();// 當前日期
(3).當前時間:
curtime();
current_time();
(4).各種方式顯示日期和時間:
unix_timestamp(日期類型的字符串);// 將日期類型的字符串轉化爲整形(秒數),UNIX格式
from_unixtime(“整形”);// 將整形字符串轉化爲日期,普通格式
UTC_DATE();// utc日期,只有日期
UTC_TIME();// utc時間 ,只有時間
(5).獲取日期和時間各部分值:
SELECT NOW() 當前日期和時間,
YEAR(NOW()) 年,
QUARTER(NOW()) 季度,
MONTH(NOW()) 月,
WEEK(NOW())星期,
DAYOFMONTH(NOW()) 天,
HOUR(NOW()) 小時,
MINUTE(NOW()) 分,
SECOND(NOW()) 秒;
(6).月(參數都是日期類型的字符串):
MONTH(date);
MONTHNAME(date);
(7).星期:
week(date);// 年中第幾個星期
weekofyear(date);// 年中第幾個星期
dayname(date);// 星期,英文顯示
dayofweek(date);// 星期(不理解,用下面的)
weekday(date);// 星期,數字表示
(8).天
dayofyear(date);// 年中的第幾天
dayofmonth(date);// 月中的第幾天
(9).EXTRACT函數
EXTRACT(YEAR from NOW()); // 年
EXTRACT(month from NOW()); // 月
EXTRACT(day from NOW()); // 日
EXTRACT(hour from NOW()); // 時
EXTRACT(minutefrom NOW()); // 分
EXTRACT(second from NOW()); // 秒
(10).計算日期和時間的函數:
SELECT NOW() 當前日期和時間,
TO_DAYS(NOW()) 相隔天數, // 距離0000年1月1日
FROM_DAYS(TO_DAYS(NOW())) 一段時間後日期和時間,
DATEDIFF(NOW(),‘2000-12-01’) 相隔天數;
(11).與指定日期和時間操作:
ADDDATE(date,n); // 計算date加上n天后的日期
SUBDATE(date,n); // 計算date減去n天后的日期
ADDDATE(d,INTERVAL expr type);// type的類型查看http://www.w3school.com.cn/sql/func_date_add.asp
SUBDATE(d,INTERVAL expr type);
例子:
select adddate(now(),interval ‘2,3’ year_month ) ‘2年3個月後的日期’;
4.系統信息函數
(1).獲取MySQL系統信息: 使用\h
SELECT
VERSION() 版本號,
DATABASE() 數據庫名,
USER() 用戶名;
(2).獲取自增長約束的最後ID值
SELECT LAST_INSERT_ID();
(3).其他函數:

IF(value,t f)

如果value是真,返回t,否則返回f

IFNULL(value1,value2)

如果value1不爲空返回value1,否則返回value2

CASE WHEN [value1] THEN[result1]…ELSE[default]

END

如果value1是真,返回result1,否則返回default

CASE [expr]WHEN[value1] THEN[result1]…ELSE[default]

END

如果expr等於value1,返回result1,否則返回default

函 數

作 用

PASSWORD(str)

實現對字符串str進行加密

FORMAT(x,n)

實現將數字x進行格式化,保留n位小數

INET_ATON(ip)

實現將IP地址轉換成數字

INET_NTOA(x)

實現將數字轉換成IP

GET_LOCT(name,time)

創建一個持續時間爲time的名爲name的鎖

RELEASE_LOCT(name)

爲名爲name的鎖進行解鎖

BENCHMARK(count,expr)

實現將表達式重複執行count次

CONVERT(s USING cs)

實現將字符串s的字符集變成cs

CONVERT(x,type)

實現將x變成type類型

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章