文章目录
sql拥有很多可用于计数和计算的内建函数
用在select里面、where中子查询的select里面、having子句里
- 语法
SELECT function(列) FROM 表
Aggregate(合计) 函数
面向一系列的值,并返回一个单一的值
AVG()
返回数值列的平均值,null不计入
- 语法
SELECT AVG(column_name) FROM table_name
COUNT()
返回指定条件的行数
- 语法
- 返回指定列的有值的行数,null不计入
SELECT COUNT(column_name) FROM table_name - 返回表中的记录数
SELECT COUNT(*) FROM table_name - 返回指定列的不同值得行数
SELECT COUNT(DISTINCT column_name) FROM table_name
- 返回指定列的有值的行数,null不计入
FIRST()
返回指定的字段第一个记录的值,可使用order by排序
- 语法
SELECT FIRST(column_name) FROM table_name
LAST()
返回指定字段的最后一个记录的值,可使用order by排序
- 语法
SELECT LAST(column_name) FROM table_name
MAX()
返回一列中的最大值,null不计入
- 语法
SELECT MAX(column_name) FROM table_name
MIN()
返回一列中的最小值,null不计入
- 语法
SELECT MAX(column_name) FROM table_name
SUM()
求行数返回值得总数
- 语法
SELECT SUM(column_name) FROM table_name
注意
求平均值、最大值、最小值、指定列有值得行数时,null不计入
求第一个值或最后一个值得时候,可以和order by一起使用
合计函数常常需要添加group by语句
Scalar 函数
面向单一值,返回单一值
UCASE()
把字段的值转换为大写
- 语法
SELECT ucase (column_name) FROM table_name
LCASE()
把字段的值转换为大写
- 语法
SELECT Lcase (column_name) FROM table_name
MID()
用于从文本字段中提取字符
- 语法
SELECT MID(column_name,start[,length]) FROM table_name
LEN()
返回文本字段中值得长度
- 语法
SELECT len (column_name) FROM table_name
ROUND()
把数值字段舍入为指定的小数位
- 语法
SELECT ROUND(column_name,decimals) FROM table_name
NOW()
返回当前的日期和时间
- 语法
SELECT now() FROM table_name - mysql内建日期函数
- NOW():返回当前的日期和时间。
- CURDATE():返回当前的日期。
- CURTIME():返回当前的时间。
- DATE():提取日期或日期/时间表达式的日期部分。
- EXTRACT():返回日期/时间的单独部分。(extract—提取)
- DATE_ADD():给日期添加指定的时间间隔。
- DATE_SUB():给日期添加指定的时间间隔。(sub—代替)
- DATEDIFF():返回两个日期之间的天数。(diff—差分)
- DATE_FORMAT():用不同的格式显示日期/时间。(format—格式)
- 时间戳
- 定义:将时间转化为以毫秒为单位的十位的数字组成的字符串显示的形式。
- 作用:方便存储、比较时间。
- 格式转换
FROM_UNIXTIME( unix_timestamp )
FROM_UNIXTIME( unix_timestamp ,format )
UNIX_TIMESTAMP()
UNIX_TIMESTAMP( date )
SUBSTR
含义:字符串截取函数
格式是:SUBSTR(<字符表达式>、<数值表达式1>,<数值表达式2>)
substr(字符串,截取开始位置,截取长度) //返回截取的字
函数功能:是从给定的字符表达式或备注字段中返回一个子字符串。
LEFT
含义:返回最左边指定的字符数
格式:left(<字符表达式>、<数值表达式> )
left(tbc.create_time,6)
函数功能:是从给定的字符表达式或备注字段中返回一个子字符串。
FORMAT()
对字段的显示进行格式化
- 语法
SELECT FORMAT(column_name,format) FROM table_name
例如可将日期换成YYYY-MM-DD格式
GROUP BY
用于结合合计函数,根据一个或多个列对结果集进行分组
- 语法
SELECT 合计函数(使用函数的列) FROM 表 where 条件 group by 需要分组的列
可以对多个列分组,中间用逗号分隔
HAVING子句
WHERE 关键字无法与合计函数一起使用,所以增加having子句
- 语法
SELECT 合计函数(使用函数的列) FROM 表 where 条件 group by 需要分组的列 having 合计函数(使用函数的列) 运算符 值