SQL练习题

文章详细介绍了如何使用SQL查询数据库DEPT和EMP表中的各种信息,包括全选、特定字段、条件筛选、分组计数等操作,展示了基本的SQL查询技巧。
摘要由CSDN通过智能技术生成

1、请查询表DEPT中所有部门的情况。

SELECT * FROM DEPT
2、查询表DEPT中的部门号、部门名称两个字段的所有信息。

SELECT DEPTNO,DNAME FROM DEPT
3、请从表EMP中查询10号部门工作的雇员姓名和工资。

SELECT ENAME,SAL FROM EMP WHERE DEPTNO=10
4、请从表EMP中查找工种是职员CLERK或经理MANAGER的雇员姓名、工资。

SELECT ENAME,SAL FROM EMP WHERE JOB='CLERK'OR JOB='MANAGER'

SLECT ENAME,SAL FROM EMP WHERE JOB IN('CLERK','MANAGER')
5、请在EMP表中查找部门号在10-30之间的雇员的姓名、部门号、工资、工作。

SELECT ENAME,DEPTNO,SAL,JOB FROM EMP WHERE DEPTNO BETWEEN 10 AND 30
6、请从表EMP中查找姓名以J开头所有雇员的姓名、工资、职位。

SELECT ENAME,SAL,JOB FROM EMP WHERE ENAME LIKE'J%'
7、请从表EMP中查找工资低于2000的雇员的姓名、工作、工资,并按工资降序排列。

SELECT ENAME,JOB,SAL FROM EMP WHERE SAL<2000 ORDER BY SAL DESC
8、请从表中查询工作是CLERK的所有人的姓名、工资、部门号、

SELECT ENAME,SAL,DEPTNO FROM EMP WHERE JOB='CLERK'
12、查找工资在1000~3000之间的雇员所在部门的所有人员信息

SELECT * FROM EMP WHERE SAL BETWEEN 1000 AND 3000
13、雇员中谁的工资最高。

SELECT * FROM (SELECT * FROM EMP ORDER BY SAL DESC) WHERE ROWNUM=1 
15、选择部门30中的雇员 

SELECT * FROM EMP WHERE DEPTNO=30
16、列出所有办事员(job为CLERK)的姓名、编号和部门

SELECT ENAME,EMPNO,JOB FROM EMP WHERE JOB='CLERK'
17、找出佣金高于薪金(comm)的雇员

SELECT * FROM EMP WHERE SAL>COMM
18、找出佣金高于薪金60%的雇员

SELECT *
FROM emp
WHERE comm > sal * 0.6;
19、找出部门10中所有经理和部门20中的所有办事员的详细资料

SELECT * FROM EMP WHERE JOB='MANAGER'AND DEPTNO=10 OR JOB='CLERK' AND DEPTNO=20
20、找出收取佣金的雇员的工作

SELECT JOB FROM EMP WHERE COMM IS NOT NULL 
21、找出不收取佣金或收取的佣金低于100的雇员

SELECT * FROM EMP WHERE COMM IS NULL OR COMM<100
22、显示不带有'R'的雇员姓名

SELECT ENAME FROM EMP WHERE ENAME NOT LIKE'%R%'
23、显示雇员的详细资料,按姓名排序

SELECT * FROM EMP ORDER BY ENAME
24、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面

SELECT ENAME,HIREDATE FROM EMP ORDER BY HIREDATE
25、显示所有雇员的姓名、工作和薪金,按工作的降序顺序排序,而工作相同时按薪金升序

SELECT ENAME,JOB,SAL FROM EMP ORDER BY JOB DESC,SAL 
26、显示在一个月为30天的情况下所有雇员的日薪金

SELECT ename, sal / 30  日薪 FROM emp
27.   查询所有员工的年薪、所在部门的名称,查询结果按年薪从低往高排序

SELECT SAL*12 年薪,JOB FROM EMP ORDER BY 年薪
28.   查询至少有4个员工的部门的部门名称

  • SELECT DNAME FROM DEPT WHERE DEPTNO IN
  • (SELECT DEPTNO FROM EMP GROUP BY DEPTNO HAVING COUNT(EMPNO)>4)

  • SELECT d.DNAME, COUNT(e.EMPNO) AS EMPLOYEE_COUNT
  • FROM DEPT d
  • JOIN EMP e ON d.DEPTNO = e.DEPTNO
  • GROUP BY d.DNAME
  • HAVING COUNT(e.EMPNO) >= 4;


29. 查询所有部门的详细信息(部门编号、部门名称)和部门人数

  • SELECT d.DEPTNO, d.DNAME, COUNT(e.EMPNO) AS EMPLOYEE_COUNT
  • FROM DEPT d
  • LEFT JOIN EMP e ON d.DEPTNO = e.DEPTNO
  • GROUP BY d.DEPTNO, d.DNAME;
     
  • SELECT deptno,dname,(SELECT COUNT(*) FROM emp t2 WHERE t1.deptno=t2.deptno) 部门人数 FROM dept t1
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值