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


    MySQL ——单行函数实例练习

    在这里插入图片描述


    每博一文案

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

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

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

    在这里插入图片描述


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

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

    在这里插入图片描述


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

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

    在这里插入图片描述


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

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

    在这里插入图片描述


    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; 
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述


    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';
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述


    使用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';
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述


    或者使用 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');
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述


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

    SELECT last_name, hire_date
    FROM employees
    WHERE DATEDIFF(CURDATE(),hire_date) >= 10000;
    
    • 1
    • 2
    • 3

    在这里插入图片描述


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

    earns morthry bur wants

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

    在这里插入图片描述


    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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述


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

    第一种方式模糊查询

    SELECT last_name
    FROM employees
    WHERE last_name LIKE 'A%';
    
    • 1
    • 2
    • 3

    在这里插入图片描述


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

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

    在这里插入图片描述


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

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

    在这里插入图片描述


    最后:

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

  • 相关阅读:
    如何批量给视频添加logo水印?
    华为研发工程师编程题
    Anaconda下 Prophet的安装,pystan和fbprophet的版本问题
    学习笔记6--决策与控制技术概述
    天天在公司刷招聘网站,我被老板发现了
    [NOIP1999 普及组] 导弹拦截
    vim配置
    【安全篇】Spring Boot 整合 Spring Authorization Server
    MySQL删库不跑路
    论文-分布式-拜占庭将军问题
  • 原文地址:https://blog.csdn.net/weixin_61635597/article/details/126091102