2022.3.19学习总结

sql单行函数剩下部分

#三、日期函数
/*
now
curdate
curtime
year
month
monthname
day
hour
minute
second
str_to_date
date_format
*/

#now 返回系统当前日期+时间
SELECT NOW();

#curdate ,返回系统当前日期不包含时间
SELECT CURDATE();

#curtime,返回系统当前时间不包含日期
SELECT CURTIME();

#可以获取指定部分,年,月,日,小时,分钟,秒
SELECT YEAR(NOW());
SELECT YEAR('102-1-1');
SELECT YEAR(hiredate) AS 年 FROM employees;
SELECT MONTH(NOW());
SELECT MONTHNAME(NOW());

#str_to_date 将字符通过指定格式转化为日期,前面的合适是乱的,后面的按前面的格式走,用格式付替代前面的数字,输出后为年月日标准排序
/*
%Y 四位的年份
%y 2位的年份
%m 月份(01,02)
%c 月份(1,2)
%d 日(01,02)
%H 小时(24小时制)
%h 小时(12小时制)
%i 分钟(00,01..59)
%s 秒(00,01..59)
*/
 
SELECT STR_TO_DATE ('2-333-2','%c-%Y-%d');

#案例:查询入职日期为1992-4-3的员工信息
SELECT * FROM employees WHERE hiredate ='1992-4-3';

SELECT * FROM employees WHERE hiredate = STR_TO_DATE('3o4,1992','%do%c,%Y');
 
#date_format 将日期转化成字符,前面是标准的,后面可以添加自定义的东西

SELECT DATE_FORMAT('2033-10-4','%Y年%m月%d日');

#案例:查询有奖金的员工名和入职日期(xx月/xx日/xx年)
SELECT CONCAT(first_name,last_name),DATE_FORMAT(hiredate,'%c月%d日%Y年') AS 入职日期 FROM employees
WHERE commission_pct IS NOT NULL;

#四、其他函数
/*
version
database
user
*/

SELECT VERSION();
SELECT DATABASE();
SELECT USER();

#五,流程控制函数
/*
if
case
*/
#1.if函数,实现 if else 的效果,if(条件,成立输出,不成立输出)

SELECT IF(10>5,'大','小');

SELECT last_name,commission_pct,IF(commission_pct IS NULL,'没奖金','有奖金') AS 备注
FROM employees;

#2.case函数使用一,等于一个表达式,放在要查询的东西那个位置(语句要加分号,值不用加)
/*
适用于等值判断
case 要判断的字段或表达式
when 常量1 then 要显示的值1或语句1;
when 常量2 then 要显示的值2或语句2;
......
else 要显示的值N或语句N;
end;
*/
/*案例,查询员工的公司,要求
部门号=30,显示为原工资的1.1倍
部门号=40,显示为原工资的1.2倍
部门号=50,显示为原工资的1.3倍
其他,显示原工资
*/

SELECT department_id,salary AS 原始工资,
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;

#case函数的使用2,case后面不加东西,适用于区间判断
/*
case when 条件1 then 要显示的值1或语句1
     when 条件2 then 要显示的值2或语句2
     ...
     else 要显示的值n或语句n
     end
*/
#案例:查询员工的工资情况
/*
如果工资>20000,显示A级别
如果工资>15000,显示B级别
如果工资>1P000,显示c级别
否则,显示D级别
*/
SELECT first_name,salary,
CASE 
WHEN salary >20000 THEN 'A级别'
WHEN salary >15000 THEN 'B级别'
WHEN salary >10000 THEN 'C级别'
ELSE 'D级别' 
END AS 级别
FROM employees
ORDER BY 级别,salary DESC;

2.明日计划,单行函数复习总结,分组函数学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值