sql05

-- #--1.查询员工表所有数据
SELECT * FROM employees;
-- #--2.打印公司里所有的manager_id
SELECT manager_id FROM employees;
-- #--3.查询所员工的email全名,公司email 统一以 "@zpark.cn" 结尾
SELECT CONCAT(LOWER(EMAIL),'@zpark.cn') as email FROM employees ;
-- #--4.按照入职日期由新到旧 排列员工信息
DESC  employees;
SELECT  * FROM employees ORDER BY CAST(HIRE_DATE AS DATE) DESC;
-- #--5.查询80号部门的所有员工
SELECT * FROM employees WHERE DEPARTMENT_ID=80;

-- #--6.查询50号部门每人增长1000元工资之后的人员姓名及工资
SELECT FIRST_NAME,LAST_NAME,SALARY+1000 as SALARY FROM employees WHERE DEPARTMENT_ID =50;

-- #--7.查询80号部门工资大于7000的员工的全名与工资

select  CONCAT(FIRST_NAME,LAST_NAME),SALARY FROM employees WHERE SALARY>=7000 and DEPARTMENT_ID=80;
-- #--8.查询80号部门工资大于8000并且提成高于0.3的员工姓名,工资以及提成

SELECT CONCAT(FIRST_NAME,LAST_NAME),SALARY,COMMISSION_PCT FROM employees WHERE SALARY >=8000 anD COMMISSION_PCT > 0.3;
-- #--9.查询职位(job_id)为'AD_PRES'的员工的工资

SELECT CONCAT(FIRST_NAME,LAST_NAME),SALARY FROM employees WHERE job_id='AD_PRES';

-- #--10.查询佣金(commission_pct)为0或为NULL的员工信息
SELECT * FROM employees WHERE commission_pct=0 or commission_pct is NULL;
-- #--11.查询入职日期在1997-5-1到1997-12-31之间的所有员工信息
SELECT EMPLOYEE_ID,STR_TO_DATE(HIRE_DATE,'%d-%b-%y') FROM employees 
WHERE STR_TO_DATE(HIRE_DATE,'%d-%b-%y') 
> STR_TO_DATE(1997-5-1,'%d-%b-%y');
 
-- #--12.显示姓名中没有'L'字的员工的详细信息或含有'SM'字的员工信息
SELECT * FROM employees 
WHERE  CONCAT(FIRST_NAME,LAST_NAME) not LIKE '%L%' or 
CONCAT(FIRST_NAME,LAST_NAME)  LIKE  '%SM%';

-- #--13.查询电话号码以5开头的所有员工信息
SELECT * FROM employees WHERE PHONE_NUMBER LIKE '5%'
-- #--14.查询80号部门中last_name以n结尾的所有员工信息
SELECT * FROM employees WHERE DEPARTMENT_ID=80 AND LAST_NAME LIKE '%n';
-- #--15.查询所有last_name 由六个以上字母组成的员工信息且包含字母D
SELECT * FROM employees WHERE CHAR_LENGTH(LAST_NAME)>=6 and LAST_NAME LIKE '%D%';

-- #--1.把hiredate列看做是员工的生日,查询本月过生日的员工
SELECT *  FROM employees WHERE  mid(STR_TO_DATE(HIRE_DATE,'%d-%b-%y'),6,2)=12;





-- #--3.查询1997年下半年入职的员工

SELECT * FROM employees WHERE mid(STR_TO_DATE(HIRE_DATE,'%d-%b-%y'),6,2)>6 
AND  mid(STR_TO_DATE(HIRE_DATE,'%d-%b-%y'),1,4) BETWEEN 1997 and 1997
-- #--4.打印自己出生了多少天

SELECT DATEDIFF(2019/12/9,1996/4/21) FROM employees 
-- #--5.打印入职时间超过10年的员工信息

-- #--1.显示各种职位的最低工资
SELECT JOB_ID,min(SALARY) FROM employees GROUP BY JOB_ID;
-- #--2.求1997年各个月入职的的员工个数
SELECT mid(STR_TO_DATE(HIRE_DATE,'%d-%b-%y'),6,2),COUNT(START_DATE) 
FROM  employees LEFT JOIN job_history 
on  employees.EMPLOYEE_ID=job_history.EMPLOYEE_ID  
WHERE LEFT(STR_TO_DATE(HIRE_DATE,'%d-%b-%y'),4)=1997 
GROUP BY  mid(STR_TO_DATE(START_DATE,'%d-%b-%y'),6,2);
-- #--3.查询每个部门,每种职位的最高工资
SELECT DEPARTMENT_ID,JOB_ID,MAX(SALARY) FROM employees  GROUP BY DEPARTMENT_ID,JOB_ID;


-- #--4.查询各部门的总工资 

SELECT DEPARTMENT_ID,sun(SALARY) FROM employees GROUP BY DEPARTMENT_ID;
-- #--5.查询50号部门,60号部门,70号部门的平均工资
SELECT DEPARTMENT_ID,AVG(SALARY) FROM employees WHERE DEPARTMENT_ID in (60,50,70) GROUP BY DEPARTMENT_ID;
-- #--6.查询各部门的最高工资,最低工资
SELECT DEPARTMENT_ID,MAX(SALARY),min(SALARY) FROM employees  GROUP BY DEPARTMENT_ID;

-- #--7.查询各岗位的员工总数
SELECT JOB_ID,COUNT(JOB_ID) FROM employees GROUP BY JOB_ID;

-- #--8.查询各部门中各个岗位的平均工资
SELECT DEPARTMENT_ID,JOB_ID,SUM(SALARY)/COUNT(JOB_ID) 平均工资 FROM employees GROUP BY DEPARTMENT_ID,JOB_ID;

-- #--9.查询平均工资高于8000元的部门的最高工资
 SELECT DEPARTMENT_ID,MAX(SALARY) 最高工资,SUM(SALARY)/COUNT(DEPARTMENT_ID) 平均工资 
FROM employees GROUP BY DEPARTMENT_ID HAVING SUM(SALARY)/COUNT(DEPARTMENT_ID)>8000;



-- #--10.统计公司里经理的人数
SELECT COUNT(employees.JOB_ID) FROM 
employees 
LEFT JOIN jobs on employees.JOB_ID=jobs.JOB_ID WHERE jobs.JOB_TITLE LIKE '%manager%';


-- 1. 查询每个月倒数第2 天入职的员工的信息. 

-- 
-- 2. 查询出last_name 为 'Chen' 的 manager 的信息.

SELECT *  FROM employees LEFT JOIN jobs on employees.JOB_ID=jobs.JOB_ID 
WHERE last_name LIKE '%chen%' and jobs.JOB_TITLE LIKE '%manager%';
-- 
-- 3. 查询平均工资高于8000 的部门 id 和它的平均工资. 
 SELECT DEPARTMENT_ID,AVG(SALARY) 平均工资 FROM employees GROUP BY DEPARTMENT_ID HAVING 平均工资>=8000;
-- 4. 查询工资最低的员工信息:last_name, salary 
SELECT LAST_NAME,SALARY  FROM employees ORDER BY SALARY asc LIMIT 1;
-- 5. 查询平均工资最低的部门信息 
SELECT departments.*,sum(SALARY)/COUNT(SALARY) 平均工资  FROM employees 
LEFT JOIN departments on employees.DEPARTMENT_ID=departments.DEPARTMENT_ID
GROUP BY employees.DEPARTMENT_ID ORDER BY 平均工资 LIMIT 1;
-- 6. 查询平均工资最低的部门信息和该部门的平均工资 
SELECT departments.*,sum(SALARY)/COUNT(SALARY) 平均工资  FROM employees 
LEFT JOIN departments on employees.DEPARTMENT_ID=departments.DEPARTMENT_ID
GROUP BY employees.DEPARTMENT_ID ORDER BY 平均工资 LIMIT 1;
-- 7. 查询平均工资最高的job 信息 
SELECT jobs.*,sum(SALARY)/COUNT(SALARY) 平均工资 FROM employees 
LEFT JOIN jobs on employees.JOB_ID=jobs.JOB_ID 
GROUP BY employees.JOB_ID ORDER BY 平均工资 DESC LIMIT 1;
-- 8. 查询平均工资高于公司平均工资的部门有哪些? 
SELECT departments.*,sum(SALARY)/COUNT(SALARY) 部门平均工资,(SELECT SUM(SALARY)/COUNT(SALARY) FROM employees) as 公司平均工资
  FROM employees 
LEFT JOIN departments on employees.DEPARTMENT_ID=departments.DEPARTMENT_ID
GROUP BY employees.DEPARTMENT_ID HAVING 部门平均工资 > 公司平均工资;


-- 9. 查询出公司中所有manager 的详细信息.

SELECT * FROM employees LEFT JOIN jobs on employees.JOB_ID=jobs.JOB_ID WHERE jobs.JOB_TITLE LIKE '%manager%' ; 
-- 
-- 10. 各个部门中 最高工资中最低的那个部门的 最低工资是多少 
SELECT DEPARTMENT_ID,min(SALARY) FROM employees WHERE DEPARTMENT_ID=
(SELECT DEPARTMENT_ID FROM employees 

GROUP BY DEPARTMENT_ID ORDER BY max(SALARY) DESC LIMIT 1);

-- 
-- 11. 查询平均工资最高的部门的manager 的详细信息: last_name,department_id, email, salary 
SELECT last_name,department_id, email, salary FROM employees 
LEFT JOIN jobs on employees.JOB_ID=jobs.JOB_ID
WHERE department_id=
(SELECT department_id   FROM employees
GROUP BY DEPARTMENT_ID  ORDER BY sum(SALARY)/COUNT(SALARY)  desc LIMIT 1)

and jobs.JOB_TITLE LIKE "%manager%";

-- 12. 查询1999 年来公司的人所有员工的最高工资的那个员工的信息. 
SELECT * FROM employees WHERE SALARY =(SELECT MAX(SALARY)  FROM employees AND LEFT(str,len)) AND 
-- 13. 返回其它部门中比job_id 为‘IT_PROG’部门所有工资都低的员工的员工号、姓名、job_id 以及salary 

SELECT EMPLOYEE_ID,CONCAT(FIRST_NAME,LAST_NAME),job_id,salary  FROM employees
WHERE JOB_ID not in
(SELECT DEPARTMENT_ID FROM employees WHERE JOB_ID='IT_PROG')
AND SALARY >
(SELECT min(SALARY) FROM employees WHERE JOB_ID='IT_PROG');
发布了70 篇原创文章 · 获赞 14 · 访问量 2628

猜你喜欢

转载自blog.csdn.net/Captain_DUDU/article/details/103467949
今日推荐