1、查询EMP表中部门号为20的员工的姓名、职位、参加工作时间、工资
select ename, job, hiredate, sal from emp where deptno=20;
2、计算每个员工的年薪,要求输出员工姓名,年薪
select ename as 姓名,(sal+ifnull(comm,0))*12 as 年薪 from emp;
3、查询每个员工每个月拿到的总金额(sal为工资,comm为补助)
select ename姓名, sal+ifnull(comm,0) as 月薪 from emp;
4.显示职位是主管(manager)的员工的姓名,工资。
SELECT ename, sal FROM emp WHERE job = 'MANAGER';
5.显示第 3 个字任为大写 R 的所有员工的姓名及工资。 SELECT ename, sal FROM emp WHERE ename LIKE '__R%';
6.显示职为销售员(SALESMAN)或主管(MANAGER)的员工的姓名,工资,职位。 SELECT ename, sal, job FROM emp WHERE job IN ('SALESMAN', 'MANAGER');
7.显示所有没有补助的员工的姓名。
SELECT ename FROM emp WHERE comm IS NULL;
8.显示有补助的员工的姓名、工资、补助。 SELECT ename, sal, comm FROM emp WHERE comm IS NOT NULL;
9.查询出部门编号 30 的所有员工。
SELECT * FROM emp WHERE deptno = 30;
10.所有销售员的姓名、编号和部门编号。 SELECT ename, empno, deptno FROM emp WHERE job = 'SALESMAN';
11.找出奖金高于工资的员工。
SELECT * FROM emp WHERE comm > sal;
12.找出奖金高于工资 60%的员工。
SELECT * FROM emp WHERE comm > sal * 0.6; 13. 找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细信息
SELECT * FROM emp WHERE (deptno = 10 AND job = 'manager') OR (deptno = 20 AND job = 'salman');
14、找出部门编号为10中所有经理,部门编号为20中所有销售员,还有即不是经理又不是销售员 但其工资大于或等于2000的所有员工详细资料。 SELECT *FROM emp
WHERE (deptno = 10 AND job = 'manager')
OR (deptno = 20 AND job = 'salman')
OR (job NOT IN ('manager', 'salman') AND sal>= 200);
15、无奖金或奖金低于1000的员工。
SELECT * FROM emp WHERE comm IS NULL OR comm < 1000;
16、查询名字由三个字组成的员工。
SELECT * FROM emp WHERE ename like’___’; 17、查询2000年入职的员工。
SELECT *
FROM emp
WHERE hiredate like '2000%';
18、查询所有员工详细信息,用编号升序排序。 SELECT * FROM emp ORDER BY empno ASC; 19、查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排列。
SELECT * FROM emp ORDER BY sal DESC, hiredate ASC;
20.查询姓名不包含M,且工资大于1500,或年薪不低于30000的雇员编号、姓名、工资、年薪,按雇员姓名降序排列。
SELECT empno, ename, sal, (sal * 12 + IFNULL(comm, 0))
FROM emp
WHERE (ename NOT LIKE '%M%' AND sal > 1500)
OR (sal * 12 + IFNULL(comm, 0)) >= 30000 ORDER BY ename DESC;