MySQL ——单行处理函数实例练习

MySQL ——单行函数实例练习

在这里插入图片描述


每博一文案

知乎上有这样一个问题,什么时候发现自己彻底失去一个人。
下面点赞最多的答案是,无论当我说什么,他(她)都只是沉默,
我就知道,这时候一切已经无法挽回了。人心是一天天变冷的,
树叶是一天天变黄的。故事是缓缓写到结局的,而爱是因为失望
太多才变成了不爱的。一切改变都不是毫无迹象,突然发生的,而是点滴
积累,慢慢产生的,就像汹涌澎湃的火山,是滴滴岩浆积蓄了很久的力量,
才出现的瞬间热烈,人的改变也是一个由浅到深的过程。
                            ——————   一禅心灵庙语

1. 查询员工姓名,工资以及工资提高百分之 20%后的结果(new salary)

SELECT employee_id, last_name, salary, salary * 12 AS 'new salary'
FROM employees;

在这里插入图片描述


2.将员工的姓名,按首字母排序,并显示其姓名的长度(length)

SELECT last_name, LENGTH(last_name) AS 'name_length'
FROM employees
ORDER BY last_name ASC; /*ASC 升序*/

在这里插入图片描述


3. 查询员工 id, last_name,salary ,并作为一个列输出别名为 out_put

SELECT CONCAT_WS('-',employee_id,last_name, salary) AS 'out_rut'
FROM employees;

在这里插入图片描述


4.显示系统时间 ( 注 日期+ 时间)

SELECT NOW(), SYSDATE(), CURRENT_TIMESTAMP(), LOCALTIME(), LOCALTIMESTAMP()
FROM DUAL;

在这里插入图片描述


5.查询公司名,员工工作的年数,工作的天数,并按工作年数的降序排序

SELECT employee_id, DATEDIFF(CURDATE(),hire_date)/365 AS 'worked_years',
                    DATEDIFF(NOW(),hire_date) AS 'worked_days'
FROM employees
ORDER BY worked_years DESC; 

在这里插入图片描述


6. 查询员工姓名,hire_date, department_id 满足以下条件:雇佣时间1997年之后,deparment_id 为80 或90 ,110,commission_pct 不为空

使用字符串类型隐式转换为 日期时间类型

SELECT last_name,hire_date, department_id
FROM employees
WHERE department_id IN(80,90,110)
AND commission_pct IS NOT NULL
AND hire_date >= '1997-01-01';

在这里插入图片描述


使用DATE_FORMAT()函数显示转换

SELECT last_name,hire_date, department_id
FROM employees
WHERE department_id IN(80,90,110)
AND commission_pct IS NOT NULL
AND DATE_FORMAT(hire_date,'%Y-%m-%d') >= '1997';

在这里插入图片描述


或者使用 STR_TO_DATE

SELECT last_name,hire_date, department_id
FROM employees
WHERE department_id IN(80,90,110)
AND commission_pct IS NOT NULL
AND hire_date >= STR_TO_DATE('1997-01-01','%Y-%m-%d');

在这里插入图片描述


7. 查询公司中入职超过 10000 天的员工姓名,入职时间

SELECT last_name, hire_date
FROM employees
WHERE DATEDIFF(CURDATE(),hire_date) >= 10000;

在这里插入图片描述


8. 做一个查询,产生下面的结果

<last_name> earns<sarayr> morthry bur wants<salary *3>

SELECT CONCAT_WS('-',last_name , 'earn',TRUNCATE(salary,0),
       'monthly but wants', TRUNCATE (salary*3,0) )AS 'Drem salary'
FROM employees;

在这里插入图片描述


9.使用 Case -excp job id

AD_PRES

ST_MAN

IT_DROG

SA_REP

ST_CLEK

SELECT last_name, CASE job_id WHEN 'AD_PRES' THEN 'A'
                              WHEN 'ST_MAN' THEN 'B'
                              WHEN 'IT_DROG' THEN 'C'
                              WHEN 'SA_REP' THEN 'D'
                              WHEN 'ST_CLERK' THEN 'E'
                              END AS 'Grode'
FROM employees;

在这里插入图片描述


10. 找出员工名字第一个字母是 A 的员工信息

第一种方式模糊查询

SELECT last_name
FROM employees
WHERE last_name LIKE 'A%';

在这里插入图片描述


第二种方式:使用函数 substr() 函数

SELECT last_name
FROM employees
WHERE SUBSTR(last_name,1,1) = 'A';

在这里插入图片描述


11. 把员工姓名首字母大写

SELECT CONCAT(UPPER(SUBSTR(last_name,1,1) ), SUBSTR(last_name,2,LENGTH(last_name)-1))
FROM employees;

在这里插入图片描述


最后:

限于自身水平,其中存在的错误,希望大家给予指教,韩信点兵——多多益善,谢谢大家,后会有期,江湖再见!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值