知乎上有这样一个问题,什么时候发现自己彻底失去一个人。
下面点赞最多的答案是,无论当我说什么,他(她)都只是沉默,
我就知道,这时候一切已经无法挽回了。人心是一天天变冷的,
树叶是一天天变黄的。故事是缓缓写到结局的,而爱是因为失望
太多才变成了不爱的。一切改变都不是毫无迹象,突然发生的,而是点滴
积累,慢慢产生的,就像汹涌澎湃的火山,是滴滴岩浆积蓄了很久的力量,
才出现的瞬间热烈,人的改变也是一个由浅到深的过程。
—————— 一禅心灵庙语
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. 做一个查询,产生下面的结果
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;
限于自身水平,其中存在的错误,希望大家给予指教,韩信点兵——多多益善,谢谢大家,后会有期,江湖再见!