MySQL#进阶4 常见函数--学习视频笔记

#进阶4 常见函数
/*
功能:将一组逻辑语句封装在方法体重,对外暴露方法名
好处:1.隐藏 了实现细节,2.提高代码的冲用心
调用 select 函数名(实参列表) 【from 表】
特点 :
			1.叫什么(函数名)
			2.干什么(函数功能)
分类:
			1.单行函数
			如concat 、length 、 ifnull等
			2.分组函数
			功能:做统计使用、又称为统计函数、聚合函数、组函数
*/


#一 、字符函数
#length  获取参数值的字节个数
SELECT LENGTH('王');

#2.concat 拼接字符串
SELECT CONCAT (last_name,'_',first_name)  姓名 FROM employees;

#upper\lower
SELECT UPPER('john');
selsect LOWER('hoHN');

#substr、substring
SELECT SUBSTR('王治敏',2) AS outout;
SELECT SUBSTR('王治敏',1,2) AS outout;
#instr 返回子串第一次出现的索引,如果找不到返回0
SELECT INSTR('王治敏','敏') AS outout;
#trim
SELECT LENGTH(TRIM('     王治敏     '))AS outout;
SELECT TRIM('aa'FROM 'aaaaaaaaaaaaaaaaaa王治敏aaaaaaaaaaaaaaaaa') output;
#lpad 左填充
SELECT LPAD('王治敏','10','*') output;
#rpad 右填充
SELECT rPAD('王治敏','10','*') output;
REPLACE
SELECT REPLACE ('王治敏','王','方') output;

#二、数学函数
#round 四舍五入
SELECT ROUND(1.45);
#ceil 向上取整返回大于等于该参数的最小整数
SELECT CEIL(1.23)#floor 向下取整返回小于等于该参数的最小整数
SELECT FLOOR(-9.9999);
#truncate 截断
SELECT TRUNCATE(1.6999,1);
#mod 取余 mod(a,b)  :a-a/b*b
SELECT MOD(-10,3);
SELECT 10%3;


#三日期函数
#now 返回当前系统日期与实践
SELECT NOW();
#curdate 返回当前系统日期,不包含时间
SELECT CURDATE();
#curtime 返回当前实践,不包含日期
SELECT CURtime();
#可以获取指定的部分,年月日小时分钟秒
select YEAR(NOW());
select month(NOW());
select day(NOW());
select minute(NOW());
#str_to_date 将字符通过指定的格式转换日期
SELECT STR_TO_DATE('2020-3-6','%Y-%c-%d') output;
SELECT STR_TO_DATE(hiredate,'%m-%d %Y') FROM employees;
#date_format 将日期转换成字符
SELECT date_format(hiredate,'%m月-%d日 %Y年') FROM employees;
#四、其他函数
SELECT VERSION();
SELECT DATABASE();
SELECT USER();

#五 流程控制函数 
#1.if 函数 :if else的效果
SELECT last_name,commission_pct,if(commission_pct IS NULL,'没奖金','有奖金') 是否有奖金 FROM employees;
#case 函数的使用 :switch case 的效果
/*

#mysql 
case 要判断的字段或表达式
when 常量1 then 要显示的值1或语句1;
when 常量2 then 要显示的值2或语句2;
...
else 要显示的值n 或语句N
end
*/

/*
案例
当id为30 ,工资为1.1倍
当id为40 ,工资为1.2倍
当id为50 ,工资为1.3倍
*/
SELECT department_id ,salary,
case department_id 
when 30 then salary*1.1
when 40 then salary*1.2
when 50 then salary*1.3
ELSE salary
END AS 新工资
FROM employees;

#3.case函数的使用二:类似于 多重if(区间)
/*
case
when 条件1 then 要显示的值1或语句1
when 条件2 then 要显示的值2或语句2
。。。
else 要显示的值n或语句
end
*/
#案例:查询员工的工资情况
/*
如果工资>4000,显示A等级
如果工资>3000,显示B等级
如果工资>2000,显示C等级
否则,显示D等级
*/
SELECT  salary,
case 
when salary>4000 then 'a'
when salary>3000 then 'B'
when salary>2000 then 'C'
ELSE 'D'
END AS 工资等级
FROM employees;

你可能感兴趣的:(MySQL,mysql)