MySQL------ 函数
常见函数
字符函数、数字函数、日期函数、流程控制函数
一、字符函数
1、concat 拼接字符
SELECT CONCAT ('hello',first_name,last_name) 备注
FROM employees;
2、length 获取字节长度
select length(‘hello’);
3、char_length 获取字符长度
select char_length(‘hello’);
4、substring 截取子串
// 注意:起始索引从1开始,不是0
select substr (str,起始索引,截取的字符长度);
5、instr 获取字符第一次出现的索引,并显示第一次出现时所在的位置
6、trim 去前后指定的字符,默认是去空格
select trim(‘ 虚 竹 ’) as a;
select trim( 'x' from 'xxxxx 虚xxxx竹xxxxxxxx') as a;
7、lpad/rpad 左填充 / 右填充
select lpad('木婉清',10,'a');
8、upper / lower 变大写 / 变小写
9、strcmp 比较两个字符大小
10、left / right (左/ 右)截取子串
二、数学函数
1、abs 绝对值
select abs (-2.4);
2、ceil 向上取整 返回 >= 该参数的最小整数
select ceil (-1.09);
3、floor 向下取整,返回 <= 该含参数的最大整数
4、round 四舍五入
select round(1.871234,2);
5、truncate 截断 不同于四舍五入,他不进行四舍五入,而是直接取选中的数
6、mod 取余 <余数的正负数取决于被除数的正负>
select mod(-10 ,3);
三、日期函数
1、now 获取当前日期与时间
select now();
2、curdate 获取当前日期
select curdate();
3、curtime 获取当前时间
select curtime();
4、datediff 获取两个日期之差
select datediff(‘1998-7-16’,‘2019-7-13’);
5、date_format
select date_format('1998-7-16','%Y年%m月%d日 %H小时%i分钟%s秒') 出生日期;
6、str_to_date 按指定格式解析字符串为日期类型
select * from employees
where hiredate < str_to_date('3/15 1998','%m/%d %Y');
四、流程控制函数
1、if 函数
select if( 100>9, '好','坏');
2、case 函数
情况1:
case 表达式
when 值1 then 结果1
when 值2 then 结果2
.....
else 结果n
end
情况2:类似于多重 if 语句,实现区间判断
五、分组函数
说明:分组函数往往用于实现将一组数据进行统计计算,最终得到一个值,又称为聚合函数或统计函数
分组函数清单:sum(字段名); 求和
avg(字段名);求平均数
max(字段名);求最大值
min(字段名);求最小值
count(字段名);计算非空字段值得个数
六、分组查询
语法:
select 查询列表
from 表名
where 筛选条件
group by 分组列表
having 分组后筛选
order by 排序列表
执行顺序:from 子句 → where 子句 → group by 子句 → having 子句 → select 子句 → order by 子句
特点:
1、查询列表往往是:分组函数和被分组的字段
2、分组查询中的筛选分为两类
筛选的基表 使用的关键字
分组前筛选 原始表 where
分组后筛选 分组后的结果集 having
where —— group —— having
重点:分组函数做条件时,只可能放在 having 后面 !