1.使用两种方式查询所有员工(EMP)信息
SELECT * from emp;
SELECT empno,ename,job,mgr,sal,hiredate,comm,deptno from emp;
2.查询(EMP)员工编号、员工姓名、员工职位、员工月薪、工作部门编号。
SELECT empno,ename,job,sal,deptno from emp;
3.员工转正后,月薪上调20%,请查询出所有员工转正后的月薪。
SELECT sal*1.2 FROM emp;
4.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的年薪所得(不考虑奖金部分,年薪的试用期6个月的月薪+转正后6个月的月薪)
SELECT sal*13.2 FROM emp;
5.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的所有收入(需考虑奖金部分),要求显示列标题为员工姓名,工资收入,奖金收入,总收入。
SELECT ename AS '员工姓名',(sal*1)*6 + (sal*1.2)*6 AS '工资收入',IFNULL(comm,0) AS '奖金收入',(sal*2.2)*6 + IFNULL(comm,0) AS '总收入' FROM emp;
6.查询员工表中一共有哪几种岗位类型。
SELECT DISTINCT JOB FROM emp;
7.分别查看员工表、部门表、薪资等级表的表结构。
DESCRIBE emp;
DESCRIBE dept;
DESCRIBE salgrade;
8.查询职位为SALESMAN的员工编号、职位、入职日期。
SELECT ename,hiredate,emp.EMPNO,emp.JOB FROM emp WHERE JOB = 'SALESMAN';
9.查询1985年12月31日之前入职的员工姓名及入职日期。
SELECT ename,hiredate,emp.EMPNO,emp.JOB FROM emp WHERE hiredate < '1985-12-31';
10.查询部门编号不在10部门的员工姓名、部门编号。
SELECT ename,emp.DEPTNO FROM emp WHERE DEPTNO <> 10;
11.查询入职日期在82年至85年的员工姓名,入职日期。
SELECT ename,hiredate FROM emp
WHERE hiredate BETWEEN '1982-1-1' AND '1985-12-31';
12.查询月薪在3000到5000的员工姓名,月薪。
SELECT ename,sal FROM emp WHERE sal BETWEEN 3000 AND 5000;
13.查询部门编号为10或者20的员工姓名,部门编号。
SELECT ename,DEPTNO FROM emp WHERE DEPTNO in (10, 20);
14.查询经理编号为7902, 7566, 7788的员工姓名,经理编号。
SELECT ename,MGR FROM emp WHERE MGR in (7902, 7566, 7788);
15.查询员工姓名以W开头的员工姓名。
SELECT ENAME FROM emp WHERE emp.ENAME LIKE 'w%';
16.查询员工姓名倒数第2个字符为T的员工姓名。
SELECT ENAME FROM emp WHERE emp.ENAME LIKE '%T_';
17.查询奖金为空的员工姓名,奖金。
SELECT ENAME,COMM FROM emp WHERE emp.COMM IS NULL;
18.查询工资超过2000并且职位是MANAGER,或者职位是SALESMAN的员工姓名、职位、工资
SELECT ENAME,HIREDATE,SAL,JOB FROM emp WHERE emp.SAL > 2000 AND (emp.JOB = 'MANAGER' OR emp.JOB = 'SALESMAN') ;
19.查询工资超过2000并且职位是 MANAGER或SALESMAN的员工姓名、职位、工资。
SELECT ENAME,HIREDATE,SAL,JOB FROM emp WHERE emp.SAL > 2000 AND (emp.JOB = 'MANAGER' OR emp.JOB = 'SALESMAN') ;
20.查询部门在10或者20,并且工资在3000到5000之间的员工姓名、部门、工资。
select ename,deptno,sal from emp where sal >2000 and sal <5000 and deptno in (10,20);
21.查询入职日期在81年,并且职位不是SALES开头的员工姓名、入职日期、职位。
SELECT emp.ENAME, emp.HIREDATE, emp.JOB FROM emp WHERE emp.HIREDATE BETWEEN '1981-0-0' AND '1981-12-31' AND emp.JOB NOT LIKE 'SALES%';
22.查询职位为SALESMAN或MANAGER,部门编号为10或者20,姓名包含A的员工姓名、职位、部门编号。
SELECT emp.ENAME, emp.JOB, emp.DEPTNO FROM emp WHERE emp.ENAME LIKE '%A%' AND emp.JOB IN ('SALESMAN', 'MANAGER') AND emp.DEPTNO IN (10, 20);
23.查询部门在20或30的员工姓名,部门编号,并按照工资升序排序。
SELECT emp.ENAME, emp.DEPTNO, emp.SAL FROM emp WHERE emp.DEPTNO IN (10, 20) ORDER BY emp.SAL;
24.查询工资在2000-3000之间,部门不在10号的员工姓名,部门编号,工资,并按照部门升序,工资降序排序。
SELECT emp.ENAME, emp.DEPTNO, emp.SAL FROM emp WHERE emp.DEPTNO != 10 ORDER BY emp.DEPTNO, emp.SAL DESC;
25.查询入职日期在82年至83年之间,职位以SALES或者MAN开头的员工姓名,入职日期,职位,并按照入职日期降序排序。
SELECT emp.ENAME, emp.HIREDATE, emp.JOB FROM emp WHERE emp.HIREDATE BETWEEN '1982-0-0' AND '1983-0-0' AND emp.JOB LIKE 'SALES%' OR 'MAN' ORDER BY emp.HIREDATE DESC;
26.查询入职日期最早的前5名员工姓名,入职日期。
SELECT emp.ENAME, emp.HIREDATE FROM emp ORDER BY emp.HIREDATE LIMIT 0, 5;
27.查询工作在CHICAGO并且入职日期最早的前2名员工姓名,入职日期。
SELECT emp.ENAME, emp.HIREDATE FROM ((SELECT * FROM dept WHERE dept.LOC = 'CHICAGO') AS L JOIN emp ON L.DEPTNO = emp.DEPTNO
) ORDER BY emp.HIREDATE LIMIT 2;
28.按照每页显示5条记录,分别查询第1页,第2页,第3页信息,要求显示员工姓名、入职日期、部门名称。
SELECT emp.ENAME, emp.HIREDATE, dept.DNAME FROM emp JOIN dept ON emp.DEPTNO = dept.DEPTNO LIMIT 0, 5;
SELECT emp.ENAME, emp.HIREDATE, dept.DNAME FROM emp JOIN dept ON emp.DEPTNO = dept.DEPTNO LIMIT 5, 5;
SELECT emp.ENAME, emp.HIREDATE, dept.DNAME FROM emp JOIN dept ON emp.DEPTNO = dept.DEPTNO LIMIT 10, 5;
29.查询入职时间在1982-7-9之后,并且不从事SALESMAN工作的员工姓名、入职时间、职位。
SELECT emp.ENAME, emp.HIREDATE, emp.JOB FROM emp WHERE emp.JOB != 'SALESMAN';
30.查询员工姓名的第三个字母是a的员工姓名。
SELECT emp.ENAME FROM emp WHERE emp.ENAME LIKE '__a%';
31.查询除了10、20号部门以外的员工姓名、部门编号。
SELECT emp.ENAME, emp.DEPTNO FROM emp WHERE emp.DEPTNO NOT IN (10, 20);
32.查询部门号为30号员工的信息,先按工资降序排序,再按姓名升序排序。
SELECT * FROM emp WHERE emp.DEPTNO = 30 ORDER BY emp.SAL, emp.ENAME;
33.查询没有上级的员工(经理号为空)的员工姓名。
SELECT emp.ENAME FROM emp WHERE emp.MGR IS NULL;
34.查询工资大于等于4500并且部门为10或者20的员工的姓名、工资、部门编号。
SELECT emp.ENAME,emp.SAL, emp.DEPTNO FROM emp WHERE emp.SAL > 4500 AND emp.DEPTNO IN(10, 20);
文章评论