功能: 用作统计使用,又称为聚合函数或统计函数或组函数
- sum() 求和、avg() 平均值、max() 最大值 、min() 最小值 、count() 计算个数 例:SELECT COUNT(salary) FROM employees; - 可以和distinct搭配实现去重的运算 例:SELECT SUM(DISTINCT salary),SUM(salary) FROM employees; - count函数的详细介绍,都可以计算数量 SELECT COUNT(salary) FROM employees; SELECT COUNT(*) FROM employees; SELECT COUNT(1) FROM employees;
- length() : 获取字节个数 - concat( , ) : 拼接字符串 - upper()、lower() :小写转大写,大写转小写 - substr、substring : substr('指定字段',3) 截取第三个字符后面所有的字符,substr('指定字段',1,3) : 截取从第一个到第三个字符 - instr('指定字符串或字段名','') : 返回子串第一次出现的索引,如果找不到返回0 例:select instr('abcdef','e') as out_put; - trim( , ) 删除字符串两侧的空格。 SELECT TRIM(' abc ') AS out_put; - lpad 用指定的字符实现左填充指定长度, SELECT RPAD('殷素素',12,'ab') AS out_put; - rpad 用指定的字符实现右填充指定长度 SELECT RPAD('殷素素',12,'ab') AS out_put; - replace 替换 SELECT REPLACE('aaaaabbbbcccc','a','d') AS out_put;
- round 四舍五入 SELECT ROUND(-1.55); - ceil 向上取整,返回>=该参数的最小整数 SELECT CEIL(-1.02); - floor 向下取整,返回<=该参数的最大整数 SELECT FLOOR(2.09); - truncate 截断 SELECT TRUNCATE(1.69999,1); - mod取余 SELECT MOD(100,98);
- now 返回当前系统日期+时间 SELECT NOW(); - curdate 返回当前系统日期,不包含时间 SELECT CURDATE(); - curtime 返回当前时间,不包含日期 SELECT CURTIME(); - 可以获取指定的部分,年、月、日、小时、分钟、秒 SELECT YEAR(NOW()) 年; - date_format 将日期转换成字符 SELECT DATE_FORMAT(NOW(),'%y年%m月%d日') AS out_put;
SELECT VERSION(); 查看数据库版本 SELECT DATABASE(); 查看正在使用的数据库 SELECT USER(); 查看使用的主机
1. if函数: if else 的效果 SELECT IF(10<5,'大','小'); 2. case 函数的使用: ①: case 要判断的字段或表达式 when 常量1 then 要显示的值1或语句1; when 常量2 then 要显示的值2或语句2; ... else 要显示的值n或语句n; end 例:SELECT salary 原始工资,department_id, CASE department_id WHEN 30 THEN salary*1.1 (部门号=30,显示的工资为1.1倍) WHEN 40 THEN salary*1.2 WHEN 50 THEN salary*1.3 ELSE salary END AS 新工资 FROM employees; ②:case 函数的使用二:类似于 多重if when 条件1 then 要显示的值1或语句1 when 条件2 then 要显示的值2或语句2 。。。 else 要显示的值n或语句n end 例:SELECT salary, CASE WHEN salary>20000 THEN 'A' (如果工资>20000,显示A级别) WHEN salary>15000 THEN 'B' WHEN salary>10000 THEN 'C' ELSE 'D' END AS 工资级别 FROM employees;