SQL---语句练习(二)

SELECT*FROM EMP;

–01.查询每个员工的编号、姓名、职位。
SELECT EMPNO ,ENAME,JOB FROM EMP;

–02.查询每个员工的职位,使用 DISTINCT 消除掉重复行记录。
SELECT DISTINCT(JOB) FROM EMP ;

–03.计算每个员工的编号、姓名、基本年薪。年薪=(基本工资+奖金)*12,
SELECT EMPNO,ENAME,(SAL+NVL(COMM, 0))*12 年薪 FROM EMP;

–04.每个员工每个月公司会补贴饭食 200 元,交通补助 300 元,计算年薪
SELECT EMPNO,ENAME,((SAL+NVL(COMM, 0))+200+300)*12 年薪 FROM EMP;

–05.查询基本工资高于 2000 的全部员工信息。
SELECT *FROM EMP WHERE SAL>2000;

–06.查询出除了smith以外的员工信息。
SELECT * FROM EMP WHERE NOT ENAME=‘SMITH’;

–07.查询出所有不是办事员( CLERK)的员工详细信息。
SELECT *FROM EMP WHERE NOT JOB=‘CLERK’;

–08.查询出所有销售员(SALESMAN)的基本信息,并且要求销售人员的工资高于 1300。
SELECT *FROM EMP WHERE JOB=‘SALESMAN’ AND SAL>1300;

–09.查询出工资范围在 1500~3000 之间的全部员工信息(包含 1500 和 3000)
SELECT *FROM EMP WHERE SAL BETWEEN 1500 AND 3000;

–10.查询出所有经理或者是销售人员的信息,并且要求这些人的基本工资高于 1500。
SELECT *FROM EMP WHERE JOB=‘MANAGER’ or JOB=‘SALESMAN’ AND sal>1500;

–11.要求查询出所有在 1981 年入职的员工信息(使用日期函数)。
SELECT *FROM EMP WHERE EXTRACT(YEAR FROM HIREDATE)=1981;

–12.查询所有领取奖金的员工信息(comm 不为空)。
SELECT *FROM EMP WHERE COMM is NOT NULL;

–13.查询所有领取奖金高于100的员工信息。
SELECT *FROM EMP WHERE COMM >100;

–14.查询出员工编号是 7369、7566、9999 的员工信息。
SELECT *FROM EMP WHERE EMPNO=7369 OR EMPNO=7566 OR EMPNO=9999

–15.查询出所有姓名是以 A 开头的全部员工信息。
SELECT *FROM EMP WHERE ENAME like ‘A%’;

–16.查询出员工姓名第二个字母是 M 的全部员工信息。
SELECT *FROM EMP WHERE ENAME like ‘_M%’;

–17.查询出员工姓名任意位置上包含字母 A 的全部员工信息。
SELECT*FROM EMP WHERE ENAME like ‘%A%’

–18.查询出所有员工的信息,要求按照工资排序。
SELECT *FROM EMP ORDER BY SAL DESC;

–19.要求查询所有员工的信息,按照雇佣日期由先后排序。
SELECT *FROM EMP ORDER BY HIREDATE ASC;

–20.查询全部员工信息,按照工资由高到低排序,如果工资相同,则按照雇佣日期由先到后排序
SELECT *FROM EMP ORDER BY SAL DESC , HIREDATE ASC;

–21.查询部门编号30 中的所有员工的编号,姓名,工资,职位,部门编号,部门名称。
SELECT EMPNO,ENAME,SAL,JOB,EMP.DEPTNO,DNAME FROM EMP,DEPT WHERE EMP.DEPTNO=DEPT.DEPTNO and EMP.DEPTNO=30;

–22.查询出所有办事员(CLERK)的姓名,编号和部门编号。
SELECT ENAME,EMPNO ,EMP.DEPTNO FROM EMP,DEPT WHERE EMP.DEPTNO=DEPT.DEPTNO AND JOB=‘CLERK’;

–23.查询出奖金高于薪金的员工。
SELECT*FROM EMP where sal<COMM;

–24.查询出奖金高于薪金的 60%的员工。
SELECTFROM EMP WHERE COMM>(SAL0.6);

–25.查询出领取奖金的员工的不同职位,显示员工编号,姓名,职位。
SELECT EMPNO,ENAME,JOB FROM EMP WHERE COMM>=0;

–26.查询出名字不带有“R”的员工的姓名。
SELECT ENAME FROM EMP WHERE ENAME NOT like ‘%R%’;

–27.查询出每个员工的姓名、职位、领导姓名。
SELECT m1.ENAME 员工姓名,m1.JOB 员工职位,m2.ENAME 领导姓名 FROM EMP m1,EMP m2 WHERE m1.MGR=m2.EMPNO

–28.查询出所有员工的编号、姓名及其领导的编号、姓名,显示的结果按其领导年工资的降序排列。
SELECT m1.EMPNO 员工标号,m1.ENAME 员工姓名,m2.EMPNO 领导编号,m2.ENAME 领导姓名 FROM EMP m1,EMP m2 ORDER BY m2.SAL*12 ASC;

–29.查询出在销售部(SALES)工作的员工姓名、基本工资、雇佣日期、部门名称。
SELECT ENAME,SAL,HIREDATE,DNAME FROM EMP,DEPT where EMP.DEPTNO=DEPT.DEPTNO and JOB=‘SALESMAN’;

–30.查询出所有员工的姓名、部门名称和工资。
SELECT ENAME,DNAME,SAL FROM EMP,DEPT where EMP.DEPTNO=DEPT.DEPTNO

–31.查询出所有员工的姓名,年薪,所在部门名称,按年薪从低到高排序。
SELECT ENAME,(SAL+NVL(COMM, 0))*12 年薪,DNAME FROM EMP,DEPT where EMP.DEPTNO=DEPT.DEPTNO ORDER BY (SAL+NVL(COMM, 0))*12 DESC;

–32.查询出员工的最高和最低工资。
SELECT MAX(SAL) 最高工资,MIN(SAL) 最低工资 FROM EMP;

–33.查询出每个部门的人数、平均工资,显示部门编号,人数及平均工资
SELECT DEPTNO,COUNT(DEPTNO),AVG(SAl) FROM EMP GROUP BY DEPTNO;

–34.查询出每种职位的最高和最低工资。
SELECT JOB,MAX(SAL),MIN(SAL) FROM EMP GROUP BY JOB;

–35.查询平均工资高于 2000 的职位,以及从事此职位的员工总人数、平均工资。
SELECT JOB,COUNT(JOB) AVG(SAL) FROM EMP GROUP BY JOB
HAVING AVG(SAL)>2000;

–36.查询员工编号大于其领导编号的每个员工的姓名、职位、领导名称。
SELECT
t1.ename, t1.job, t2.ename, t1.deptno ,t2.deptno
FROM
emp t1,emp t2
WHERE t1.empno>t1.mgr AND t1.mgr = t2.empno;

–37.查询出至少有一个员工的所有部门的名称,并统计出这些部门的平均工资、最低工资、最高工资。
SELECT
t1.DEPTNO, t2.DNAME, AVG(sal),MIN(sal),MAX(sal)
FROM
emp t1,dept t2
WHERE
t1.DEPTNO = t2.DEPTNO
GROUP BY
t2.DNAME;

–38…查询工资比 smith 更高的全部员工信息。
SELECT * FROM emp,dept
WHERE
emp.DEPTNO = dept.DEPTNO AND
sal>(SELECT SAL FROM emp WHERE ename = ‘smith’);

–39.查询工资和职位和 smith 相同的所有员工信息。
SELECT * FROM emp,dept
WHERE
emp.DEPTNO = dept.DEPTNO AND
job=(SELECT job FROM emp WHERE ename = ‘SMITH’);

–40.显示人数最少的部门的部门号,该部门下的所有员工的编号,姓名,总收入(工资+奖金)

数据库查询案例

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值