MySQL常用函數學習

MySQL 鏡音雙子 技術 AiryData 2017-04-02

MySQL常用函數學習

前言

MySQL函數是MySQL數據庫提供的內置函數,這些內置函數可以更方便處理表中的數據。下面簡單介紹一下MySQL中包含的幾類常用函數。

聚合函數

聚合函數可實現根據一組數據求出一個值,聚合函數的結果值只根據選定數據行中非NULL值進行計算,NULL值被忽略。

COUNT()函數

COUNT()函數,對於除“*”以外的任何參數,返回所選擇集合中非NULL值的行的數目;對於參數“*”,則返回所選擇集合中所有行的數目,包含NULL值的行。沒有WHERE子句的COUNT(*)是經過內部優化的,能夠快速地返回表中所有的記錄總數。

SUM()函數

SUM()函數可以求出表中某個字段取值的總和。

AVG函數

AVG()函數可以求出表中某個字段取值的平均值。

MAX()函數

MAX()函數可以求出表中某個字段值的最大值。

MIN()函數

MIN()函數可以求出表中某個字段值的最小值。

大家都是從學生時代過來的,下面使用學生信息表和成績表來演示上面的SQL函數。

#統計學生表記錄

SELECT COUNT(*) FROM tb_student;

#求學生分數總和

SELECT SUM(score) FROM tb_score;

#求學生的平均分

SELECT AVG(score) FROM tb_score;

#求成績的最高分

SELECT MAX(score) FROM tb_score;

#求成績的最低分

SELECT MIN(score) FROM tb_score;

數學函數

數學函數主要用於處理數字,包括整型和浮點數。下面介紹一下常用的幾個數學函數。

ABS()函數

ABS()可以求出某字段值的絕對值。

FLOOR()函數

FLOOR()函數用於返回小於或等於參數x的最大整數。

RAND()函數

RAND()函數用於返回0~1之間的隨機數。

TRUNCATE(x, y)函數

TRUNCATE(x, y)函數返回x保留到小數點後y位的值。

SQRT(x)函數

SQRT(x)函數用於求參數x的平方根。

下面看一下示例語句:

#求絕對值

SELECT ABS(5), ABS(-5);

#向下取整

SELECT FLOOR(1.5), FLOOR(-2);

#求隨機數

SELECT RAND(), RAND();

#求小數點後幾位

SELECT TRUNCATE(3.141592653, 3);

#求16,25的平方根

SELECT SQRT(16), SQRT(25);

字符串函數

字符串函數主要用來處理數據表中的字符串。下面介紹一下常用的幾個字符串函數。

UPPER(s)和UCASE(s)函數

UPPER(s)和UCASE(s)函數均可用於將字符串s中的所有哦字母變成大寫字母。

LEFT(s, n)函數

LEFT(s, n)函數返回字符串s的前n個字符。

SUBSTRING(s, n, len)函數

SUBSTRING(s, n, len)函數用於將字符串s的第n個位置開始獲取長度len的字符串。

下面看一下示例語句:

#轉換大寫

SELECT UPPER(‘hello’), UCASE(‘hello’);

#返回字符串的前n個字符

SELECT LEFT(‘hello’, 2);

#截取字符串

SELECT SUBSTRING(‘hello’, 2, 4);

日期和時間函數

日期和時間函數是MySQL中最常用的函數之一,主要用於對錶中的日期和時間數據進行處理。下面介紹一下幾個常用的日期和時間函數。

CURDATE()和CURRENT_DATE()函數

CURDATE()和CURRENT_DATE()函數獲取當前日期。

CURTIME()和CURRENT_TIME()函數

CURTIME()和CURRENT_TIME()函數獲取當前時間。

NOW()函數

NOW()函數可以獲取當前日期和時間,有同樣功能的還有CURRENT_TIMESTAMP()、LOCALTIME() 、SYSDATE()和LOCALTIMESTAMP()。

下面看一下示例語句:

#獲取當前日期

SELECT CURDATE(), CURRENT_DATE();

#獲取當前時間

SELECT CURTIME(), CURRENT_TIME();

#獲取當前日期和時間

SELECT NOW(), CURRENT_TIMESTAMP(), LOCALTIME(), SYSDATE(), LOCALTIMESTAMP();

其他函數

MySQL中除了上述介紹的幾類內置函數之外,還有很多其他函數,比如條件判斷函數,系統信息函數。下面列舉幾個常用的函數。

IF(expr, v1, v2)函數

IF(expr, v1, v2)函數是一種條件判斷函數,表示的如果表達式expr成立,則執行v1,否則執行v2。

IFNULL(v1, v2)函數

IFNULL(expr, v1, v2)函數也是一種條件判斷函數,表示的如果表達式v1不為空,則顯示v1的值,否則顯示v2的值。

VERSION()函數

VERSION()函數是一種系統信息函數,獲取數據庫的版本號。

下面看一下示(注意引號是英文狀態下):

#查詢分數的優秀情況

SELECT studentNo, courseNo, score, IF(score>85, ‘優秀’, ‘一般’) level FROM tb_score;

#判斷是否為空

SELECT IFNULL(1/0, '空');

#查看數據庫版本號

SELECT VERSION();

希望通過上面的操作能幫助大家學習到更多的MySQL知識。如果你有什麼好的意見,建議,或者有不同的看法,我都希望你留言和我們進行交流、討論。

如果想快速聯繫我,歡迎關注微信公眾號:AiryData。

相關推薦

推薦中...