MySQL基础知识(三)——函数

#常见函数
/*
将一组逻辑语句封装在方法体中,对外暴露方法名
使用:select  函数名(实参列表)【from表】

分类:1、单行函数 concat、length、ifnull
	2、分组函数:统计使用(聚合函数)
	
*/
#1.length
SELECT LENGTH('张馨怡hahaha');
#2.concat
SELECT CONCAT(last_name,'_',first_name)  姓名 FROM employees;

#3.upper\lower(大小写转换)
SELECT UPPER('join');

#4.截取字符串
SELECT SUBSTR('李煜会考上研究生',1,2) out_put;

#5.instr(字串在原字符串的第一次索引)返回第一个
SELECT INSTR('李煜考上了研究生','研究生') AS out_put;

#6.trim 去空格
SELECT TRIM('                    李煜                   ') AS out_put;

SELECT TRIM('a' FROM'aaaaaaaaaaaaaaaaaaaaaaaaa李煜aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa') AS out_put;

#7.lpad 用指定的字符实现左填充

SELECT LPAD('李煜',10,'*') AS out_put;

SELECT RPAD('李煜',10,'*') AS out_put;

#8.replace替换(全部替换)
SELECT REPLACE('王牌对王牌','王牌','李煜') AS out_put;
#数学函数
#round 四舍五入

SELECT ROUND(1.78);

#ceil向上取整
SELECT CEIL(-1.02);

#floor向下取整
SELECT FLOOR(9.99);

#truncate 截断
SELECT TRUNCATE(1.6999,1);

#mod取余
SELECT MOD(-10,3);

#三、日期函数

#now 返回当前日期+时间
SELECT NOW();
#curdate返回当前日期
SELECT CURDATE();
#curtime返回当前时间
SELECT CURTIME();

#str_to_date 将字符通过指定格式转化为日期

SELECT STR_TO_DATE('1998-6-1','%Y-%c-%d') AS out_put; 


SELECT STR_TO_DATE('6-1 1998','%c-%d %Y') AS out_put; 

#date_format 将日期转化为字符

SELECT DATE_FORMAT(NOW(),'%y年%m月%d日') AS out_put;

#四、其他函数
SELECT VERSION();
SELECT DATABASE();
SELECT USER();


#五、流程控制函数
SELECT IF(10<5,'大','小');

#case结构
/*
case 要判断的字段或者表达式
when 常量1 then 要显示的值1或语句
when 常量2 then 要显示的值2或语句
……
else 要显示的值n或语句n
end
*/

SELECT salary 原始工资,department_id,
CASE department_id
WHEN 30 THEN salary*1.1
WHEN 40 THEN salary*2.1
WHEN 50 THEN salary*3.1
ELSE salary
END
AS 新工资
FROM employees;

/*
case 
when 条件1 then 要显示的值1或语句1
when 条件2 then 要显示的值2或语句2
……
else 要显示的值n或语句n
end
*/
SELECT salary ,
CASE 
WHEN salary>20000 THEN 'A'
WHEN salary>15000 THEN 'B'
WHEN salary>10000 THEN 'C'
ELSE 'D'
END
AS gongzijibie
FROM employees;



#分组函数

/*
功能:统计使用

分类:
sum 求和、avg平均值、max最大值、min最小值、count计算个数


特点:
1、sum、avg一般处理数值型
	max、min、count可以处理任何类型
2、以上分组函数都忽略null值
3、可以和distinct搭配


*/

#1、
SELECT SUM(salary) FROM employees;
SELECT AVG(salary) FROM employees;
SELECT MAX(salary) FROM employees;
SELECT MIN(salary) FROM employees;
SELECT COUNT(salary) FROM employees;

SELECT SUM(salary),AVG(salary) 平均,MAX(salary)  最大,MIN(salary) 最小 ,COUNT(salary)  个数
FROM employees;

#3、
SELECT COUNT(DISTINCT salary),COUNT(salary) FROM employees;

#4、count函数
SELECT COUNT(1) FROM employees;  #在最前面加一列,全部都是1

SELECT COUNT(*) FROM employees;

SELECT COUNT(salary) FROM employees;


#查询最大入职时间和最小入职时间的差值

SELECT DATEDIFF(MAX(hiredate),MIN(hiredate)) 差值
FROM employees;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值