一、計算字段
1、Concat() 拼接字段
把多個串鏈接起來形成一個較長的串,需要一個或多個指定的串,各個串之間用逗號隔開。
例如:SELECT Concat(vend_name,'(',vend_country,')') FROM vendors;
2、去掉返回的值中的空格 RTrim()、LTrim()、Trim()
(a) RTrim()去掉右側多余的空格來整理數據。
(b) LTrim()去掉左側多余的空格來整理數據。
(c) Trim()去掉左右兩邊多余的空格來整理數據。
3、執(zhí)行算數運算(MySQL支持加減乘除運算和圓括號改變運算優(yōu)先級)
計算字段另一個用途就是對檢索出的數據進行算術計算。
例如:SELECT prod_id, quantity, item_price, quantity * item_price AS expanded_price FROM orderitems WHERE order_num = 20005;
二、事件處理函數
函數一般是在數據上執(zhí)行的,它給數據的轉換和處理提供了方便。大多數SQL實現支持用于處理1)文本串的函數、2)用于在數值數據上進行算術運算操作的函數、3)用于處理日期和時間并提取特定成分的日期和時間函數、4)返回DBMS正使用的特殊信息的函數
1、常見的文本處理函數
Upper(str):將文本str轉換為大寫。
例:SELECT Upper(vend_name) AS vend_name_upcase FROM vendors;
Left(str, len):返回串str左邊的len個字符。
例:SELECT Left(vend_name, 3) AS vend_name_upcase FROM vendors;
Length(str):返回串str的長度。
例:SELECT Length(vend_name) AS vend_name_upcase FROM vendors;
Locate(substr, str):返回串str的一個substr子串的第一個字符出現的位置,如果substr不再str中則返回0。該函數的另一個版本是Locate(substr,str,pos),表示從pos位置開始在str中尋找substr。
例:SELECT Locate('ACM', vend_name) FROM vendors;
2)用于在數值數據上進行算術運算操作的函數
Abs():返回一個數的絕對值
Cos():返回一個角度的余弦
Exp():返回一個數的指數值
Mod():返回除操作的余數
Pi():返回圓周率
Rand():返回一個隨機數
Sin():返回一個角度的正弦
Sqrt():返回一個數的平方根
Tan():返回一個角度的正切
3)用于處理日期和時間并提取特定成分的日期和時間函數
AddDate():增加一個日期(天、周等)
AddTime():增加一個時間(時、分等)
CurDate():返回當前日期
CurTime():返回當前時間
Date():返回日期時間的日期部分
DateDiff():計算兩個日期之差
Date_Add():高度靈活的日期運算函數
Date_Format():返回一個格式化的日期或時間串
Day():返回一個日期的天數部分
DayOfWeek():對于一個日期,返回對應的星期幾
Hour():返回一個時間的小時部分
Minute():返回一個時間的分鐘部分
Month():返回一個日期的月份部分
Now():返回當前日期和時間
Second():返回一個時間的秒部分
Time():返回一個日期時間的時間部分
Year():返回一個日期的年份部分
三、聚集函數:
運行在行組上,計算和返回單個值的函數(需要匯總數據而不需要檢索出來)
ACG(column):返回某列的平均值。
MIN(column):返回某列的最小值。
MAX(column):返回某列的最大值。
SUM(column):返回某列的和。
DISTINCT:只包含不同值
COUNT(column):返回某列的行數,COUNT(*):返回所有列的和。
使用COUNT(*)對表中行的數目進行計數,不管表列中包含的是空值(NULL)還是非空值。使用COUNT(column)對特定列中具有值的行進行計數,忽略NULL值。