一、计算字段
1、Concat() 拼接字段
把多个串链接起来形成一个较长的串,需要一个或多个指定的串,各个串之间用逗号隔开。
例如:SELECT Concat(vend_name,'(',vend_country,')') FROM vendors;
2、去掉返回的值中的空格 RTrim()、LTrim()、Trim()
(a) RTrim()去掉右侧多余的空格来整理数据。
(b) LTrim()去掉左侧多余的空格来整理数据。
(c) Trim()去掉左右两边多余的空格来整理数据。
3、执行算数运算(MySQL支持加减乘除运算和圆括号改变运算优先级)
计算字段另一个用途就是对检索出的数据进行算术计算。
例如:SELECT prod_id, quantity, item_price, quantity * item_price AS expanded_price FROM orderitems WHERE order_num = 20005;
二、事件处理函数
函数一般是在数据上执行的,它给数据的转换和处理提供了方便。大多数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值。