數據庫之MySQL函數(一)

1、數學函數

一、絕對值函數mysql

ABS(x) :返回 x 的絕對值sql

mysql> select ABS(2),ABS(-2.3),ABS(-22);

返回的結果以下:
數據庫之MySQL函數(一)
數學學得好的大佬應該知道(本人是個數學渣。。。。),負數的絕對值是正數,正數的絕對值仍是正數自己
二、 返回圓周率的函數數據庫

PI() :返回圓周率值ide

mysql> select PI();

返回結果以下:
數據庫之MySQL函數(一)
本應該是3.1415926.......,可是他將6給四捨五入了,因此返回結果爲3.141593
三、平方根函數函數

SQRT(x) :能夠返回非負數 x 的二次方根編碼

mysql> select SQRT(9),SQRT(40),SQRT(-49);

數據庫之MySQL函數(一)
四、求餘函數
MOD(x,y)
返回 x 被 y 除後的餘數,對於帶有小數部分的數值也起做用3d

mysql> select MOD(31,8),MOD(234,10),MOD(45.5,6);

數據庫之MySQL函數(一)
五、 獲取整數的函數code

CEIL(x) :返回不小於 x 的小整數值
CEILING(x) :返回不小於 x 的小整數
FLOOR(x) :返回不大於 x 的大整數值blog

mysql> select CEIL(-3.35),CEIL(3.35),CEILING(-3.35),CEILING(3.35),FLOOR(-3.35),FLOOR(3.35);

數據庫之MySQL函數(一)
六、獲取隨機數的函數字符串

RAND() :返回一個隨機浮點值,範圍在 0 ~ 1 之間
RAND(x) :返回一個隨機浮點值,範圍在 0~1 之間,x 被用做種子值,用來產生重複序列

mysql> mysql> select RAND(),RAND(),RAND(5),RAND(5),RAND(8);

返回的結果以下:
數據庫之MySQL函數(一)
七、 四捨五入的函數:

ROUND(x) : 用於對 x 進行四捨五入
ROUND(x,y):用於對 x 進行四捨五入,並保留小數點後 y 位

mysql> select ROUND(-1.14),ROUND(1.14),ROUND(1.38,1),ROUND(1.38,0),ROUND(232.38,-1),ROUND(232.38,-2);

數據庫之MySQL函數(一)
八、截取數值的函數

TRUNCATE(x,y) 用於對 x 進行截取,結果保留小數點後 y 位

mysql> select TRUNCATE(1.31,1),TRUNCATE(1.99,1),TRUNCATE(1.99,0);

數據庫之MySQL函數(一)
九、符號函數

SIGN(x) :用於返回參數 x 的符號,當 x 爲負數時返回 -1 ,當 x 爲正數時返回 1 , 當 x 爲 零時返回 0

mysql> select SIGN(-21),SIGN(0),SIGN(21);

數據庫之MySQL函數(一)
十、冪運算函數

POW(x,y) :用於返回 x 的 y 次方的結果
POWER(x,y) :和pow用法同樣,只是多了個er
EXP(x) :返回e的值(天然對數的底數),升爲X的冪(我看這段話也是看的一頭霧水,本人數學渣)

mysql> select POW(2,4),POWER(2,-4),EXP(3);

數據庫之MySQL函數(一)
十一、對數運算函數

LOG(x) :返回 x 的天然對數,x爲負數則返回爲空
LOG10(x): 計算以 10 爲基數的對數

mysql> select LOG(3),LOG(-3),LOG10(2),LOG10(100),LOG10(-100);

數據庫之MySQL函數(一)
十二、角度與弧度相互轉換的函數

RADIANS(x) :用於將參數 x 由角度轉化爲弧度
DEGREES(x) :用於將參數 x 由弧度轉化爲角度

mysql> select RADIANS(90),RADIANS(180),DEGREES(PI()),DEGREES(PI()/2);

數據庫之MySQL函數(一)
1三、正弦函數和反正弦函數

SIN(x) :用於返回 x 的正弦值,其中 x 爲弧度值
ASIN(x) :用於返回 x 的反正弦,即正弦爲 x 的值

mysql> select SIN(1),ROUND(SIN(PI())),ASIN(0.8414709848078965),ASIN(3);

數據庫之MySQL函數(一)
1四、餘弦函數和反餘弦函數

COS(x) :用於返回 x 的餘弦,其中 x 爲弧度值
ACOS(x) :用於返回 x 的反餘弦,即餘弦是 x 的值

mysql> select COS(0),COS(PI()),COS(1),ACOS(1),ACOS(0),ROUND(ACOS(0.5403023058681397));

數據庫之MySQL函數(一)
1五、正切函數、反正切函數、餘切函數

TAN(x) :返回 x 的正切,其中 x 爲給定的弧 度值
ATAN(x) :用於返回 x 的反正切,即正切爲 x 的值
COT(x) :用於返回 x 的餘切

mysql> select TAN(0.3), ROUND(TAN(PI()/4)),ATAN(0.30933624960962325), ATAN(1),COT(0.3), 1/TAN(0.3), COT(PI()/4);

數據庫之MySQL函數(一)

2、 字符串函數

一、 計算字符串長度的函數

CHAR_LENGTH(str) :用於統計 str 的字符個數
LENGTH(str) :用於統計 str 的字節長度,使用 utf8 編碼字符集時,一個漢字是3個字節,一個數字或字母是1個 字節

mysql> select CHAR_LENGTH('date'), CHAR_LENGTH('egg'),LENGTH('date'), LENGTH('egg'),LENGTH('漢字');

數據庫之MySQL函數(一)
二、合併字符串的函數

CONCAT(s1,s2,...) :用於合併字符串 s1, s2, ..... ,若是有一個參數爲 NULL,則結果爲 NULL
CONCAT_WS(x,s1,s2,...) :以 x 做爲分隔符,將 s1, s2, .... 合併,若是 分隔符爲 NULL ,則結果爲 NULL

mysql> select CONCAT('My','SQL','5.7'), CONCAT('My',NULL,'SQL');

數據庫之MySQL函數(一)

mysql> select  CONCAT_WS('-','1st','2nd','3rd'), CONCAT_WS(NULL,'1st','2nd','3rd');

數據庫之MySQL函數(一)
三、替換字符串的函數

INSERT(s1,x,len,s2)
(1) INSERT(s1,x,len,s2) 用於返回字符串 s1,其子字符串起始於 x 位 置和被字符串 s2 取代的 len 字符
(2) 若是 x 超過字符串長度,則返回值爲原始字符串,若是 len 的長度大於其 他字符串的長度則從位置 x 開始替換
(3) 若是任何一個參數爲 NULL ,則返回值爲 NULL

mysql> select INSERT('Quest', 2, 4, 'What') AS col1,INSERT('Quest', -1, 4, 'What') AS col2,INSERT('Quest', 3, 100, 'Wh') AS col3;

數據庫之MySQL函數(一)
四、轉換大小寫的函數

LOWER(str) :用於將字符串 str 中的 字母字符所有轉換成小寫字母
LCASE(str) :用於將字符串 str 中的字母字符所有轉換成小寫字母
UPPER(str) :用於將 str 中的小寫字母轉換成大寫字母
UCASE(str) :用於將 str 中的小寫字母轉換成大寫字母

mysql> select LOWER('BEAUTIFUL'), LOWER('Well'),LCASE('BEAUTIFUL'), LCASE('Well'), UPPER('black'), UPPER('BLacK'),UCASE('black'), UCASE('BLacK');

數據庫之MySQL函數(一)
五、獲取指定長度的字符串的函數

LEFT(s,n) :用於返回字符串 s 開始的左邊 n 個字符
RIGHT(s,n) :用於返回字符串 s 中右邊 n 個字符

mysql> select LEFT('football', 5),RIGHT('football',4);

數據庫之MySQL函數(一)
六、填充字符串的函數

LPAD(s1,len,s2) :返回字符串 s1 ,其左邊由字符串 s2 填充到 len 字符長度,若是 s1 的長度大於 len ,則返回值被縮短至 len 長度
RPAD(s1,len,s2) :返回字符串 s1 ,其右邊由字符串 s2 填充到 len 字符長度,若是 s1 的長度大於 len ,則返回值 被縮短至 len 長度

mysql> select LPAD('hello',4,'??'), LPAD('hello',10,'??'),RPAD('hello',4,'?'), RPAD('hello',10,'?');

數據庫之MySQL函數(一)
能夠看到上圖中字符串'hello'長度大於4,不須要填充,只被縮短。第二字符串'hello'長度小於10,所以被填充。
七、刪除空格的函數

LTRIM(s) :用於刪除字符串 s 左側的空格
RTRIM(s) :用於刪除字符串 s 右側的空格
TRIM(s) :用於刪除字符串 s 兩側的空格

mysql> select LTRIM('    book '),RTRIM(' book    '),TRIM(' book ');

數據庫之MySQL函數(一)
八、刪除指定字符串的函數

TRIM(s1 FROM s) 用於刪除字符串 s 中兩端全部的子字符串 s1 , 若是沒有指定 s1 ,則默認刪除字符串 s 兩側的空格

mysql> select TRIM('xy' FROM 'xyxyabcxy');

數據庫之MySQL函數(一)
九、重複生成字符串的函數

REPEAT(s,n) :用於重複字符串 s ,n 表示重複多少次

mysql> select REPEAT('mysql',3);

數據庫之MySQL函數(一)
十、空格函數

SPACE(n): 用於返回 n 個空格

mysql> select SPACE(10);
mysql> select SPACE(20);

數據庫之MySQL函數(一)
十一、替換函數

REPLACE(s,s1,s2) 表示使用字符串 s2 替換字符串 s 中全部的字符串 s1

mysql> select REPLACE('xxx.mysql.com', 'x', 'w');

數據庫之MySQL函數(一)
十二、比較字符串大小的函數

STRCMP(s1,s2) 用於比較字符串 s1 和 s2 的大小,若全部字符串相 同則返回 0 ,若第一個字符串大於第二個字符串則返回 1 ,若第一個字符串小於第二個字符串則返回 -1

mysql> select STRCMP('txt', 'txt2'), STRCMP('txt', 'txt');

數據庫之MySQL函數(一)
1三、獲取子字符串的函數

SUBSTRING(s,n,len) :用於獲取指定位置的子字符 串
MID(s,n,len):用於獲取指定位置的子字符串

mysql> select SUBSTRING('breakfast',5) AS col1,                   # 從第5個字符串開始獲取 
    -> SUBSTRING('breakfast',5,3) AS col2,               # 從第5個字符串開始,獲取3個 
    -> SUBSTRING('breakfast',-5) AS col3,                  # (倒向)從第5個字符串開始獲取 
    -> SUBSTRING('breakfast',-5,3) AS col4;              # (倒向)從第5個字符串開始獲取,獲取 3個

數據庫之MySQL函數(一)

mysql> select MID('breakfast',5) AS col1,           #同上
    ->  MID('breakfast',5,3) AS col2, 
    -> MID('breakfast',-5) AS col3, 
    -> MID('breakfast',-5,3) AS col4;

數據庫之MySQL函數(一)
1四、匹配子字符串開始位置的函數

LOCATE(str1,str) :用於返回字符串 str1 在字符串 str 中的開始位置
POSITION(str1 IN str): 用於返回字符串 str1 在字符串 str 中的開始位置
INSTR(str, str1) :用於返回子字符串 str1 在字符串 str 中的開始位置

mysql> select LOCATE('ball', 'football'),POSITION('ball' IN 'football'),INSTR('football', 'ball');

數據庫之MySQL函數(一)
1五、反轉字符串的函數

REVERSE(s) 用於將字符串 s 反轉

mysql> select REVERSE('abcd');

數據庫之MySQL函數(一)
1六、返回指定位置的字符串的函數

ELT(n, s1, s2, s3, .....) 用於返回第 n 個字符串,若是 n 超出範圍則返回 NULL

mysql> select ELT(3, 'a', 'b', 'c', 'd'), ELT(5, 'a', 'b', 'c', 'd');

數據庫之MySQL函數(一)
1七、返回指定字符串位置的函數

FIELD(s, s1, s2, .....) 用於返回字符串 s 在列表 s1, s2, .... 中 的位置,若是不存在字符串 s 則返回 0 ,若是字符串 s 是 NULL 也返回 0

mysql> select FIELD('hi', 'hihi', 'hey', 'hi', 'bas');

數據庫之MySQL函數(一)
1八、返回子字符串位置的函數

FIND_IN_SET(s1, s2) 用於返回字符串 s1 在字符串列表 s2 中的位置

mysql> select FIND_IN_SET('hi', 'hihi,hey,hi,bas');         # 注意s2是一個列表

數據庫之MySQL函數(一)

相關文章
相關標籤/搜索