常见函数
类似于java的方法,讲一组逻辑语句封装在方法体中,对外暴露方法名
好处:1、隐藏了实现细节
2、提高代码的重用性、
调用:select 函数名(实参列表) 【from 表】;
特点:1、注意函数名(叫什么
2、干什么(函数功能)
常见函数分类:
**一、单行函数:**concat length ifnull等(肯定有返回执,做处理)
单行函数又包括:
字符函数:length 获取参数值的字节个数
eg:select length (‘join);
concat 拼接字符串
eg:select concat(last_name,’’,first_name) 姓名 from employee;
upper ,lower
eg:将姓变大写,名变小写,然后拼接
select concat(upper(last_name),llower(first_name)) 姓名 from employees;
substr,substring(注意索引从1开始)截取从指定索引后面所有字符
eg:姓名中能够首字符大写,其他字符小写然后用_拼接,显示
select concat (upper(substr(last_name,1,1)),’’,lower(substr(last_name,2))) out_put
from employees;
instr 用于返回子串第一次出现的起止索引(没有就是0)
trim除去前后空格
lpad指定字符左填充指定长度
rpad指定字符右填充指定长度
replace替换
数学函数:
round 四舍五入(也可选择性保留小数位)
ceil 向上取整
floor向下取整
truncate截断
mod取余
日期函数:now 返回当前系统日期+时间
curdate 返回当前系统日期,不包含时间
curtime 返回系统当前时间,不包含日期
获取指定部分,年,月,日,小时,分钟,秒
select year(now())年;
select year(’1998-1-1‘)年;
select month(now())月;
select monthname(now())月;
str_to_date:将日期格式的字符转成指定格式的日期
select str_to_date(‘1998-3-2’,’%Y-%c-%d’) AS out_put;
date_format 将日期转换成字符
eg:查询有奖金的员工名和入职日期(xx月xx日xx年)
select last_name,date_format(hiredate,’%m月/%d日 %y年’) 入职日期
其他函数:
version、
database
user
流程控制函数:
if函数 if else 效果
case函数:使用一: switch-case效果 (case -when,then)
case 要判断的字段或者表达式
when 常量1 then 要显示的值1或者语句;
when 常量2 then 要显示的值2或者语句;
。。。
else 要显示的值n或者语句n;
end
使用二: 类似于多重if
case
when 条件1 then 要显示的值1或者语句1
when 条件2 then 要显示的值2或者语句2
。。。
else 要显示的值n或者语句n
end
二、分组函数:做统计使用,又称为统计函数、聚合函数、组函数
sum 求和,avg平均值,max最大值,min最小值,count计算个数
特点:1、参数支持哪些类型?
sum,avg一般只处理数值型
max,min,count可以处理任何类型
2、是否忽略null?
都忽略null值
3、和distinct搭配实现去重
select count(distinct salary),count(salary) from employee;
4、count函数的详细介绍
select count(salary)from employee;
统计行数:select count(*) from employee;
select count(1) from employees;(统计多少个一,也就是统计多少行)相当于在表中加一列‘1’
效率问题;myisam存储引擎下 count(*)效率高
innob存储引擎下都差不多
5、和分组函数一同查询的字段有限制
一般要求是group by 后的字段