oracle经典习题(一)

oracle经典习题(一)

1.显示与BLAKE在同一部门工作的雇员的姓名、工作和入职日期,但是BLAKE不包含在内

1.1 示例sql语句

SELECT ename,job,hiredate
FROM emp
WHERE deptno=(SELECT deptno FROM emp WHERE ename='BLAKE')
AND ename <> 'BLAKE'

1.2 运行截图

在这里插入图片描述

2.显示位置在DALLAS的部门内的雇员姓名以及工作

2.1 示例sql语句

SELECT ename,job
FROM emp
WHERE deptno=(SELECT deptno FROM dept WHERE loc='DALLAS')

2.2 运行截图

在这里插入图片描述

3 显示被King直接管理的雇员的姓名以及工资

3.1 示例sql语句

SELECT ename,sal
FROM emp
WHERE mgr=(SELECT empno FROM emp WHERE ename='KING')

3.2 运行截图

在这里插入图片描述

4 显示工资不在1500到2850美元之间的雇员的姓名及工资

4.1 示例sql语句

SELECT ename,sal
FROM emp
WHERE sal NOT BETWEEN 1500 AND 2850

4.2 运行截图

在这里插入图片描述

5 显示姓名中第三个字母为A的雇员的姓名

5.1 示例sql语句

SELECT ename
FROM emp
WHERE ename like '__A%'

5.2 运行截图

在这里插入图片描述

6 显示所有受雇于1982年的雇员的姓名和受雇时间

6.1 示例sql语句

SELECT ename
FROM emp
WHERE substr(to_char(hiredate,'yyyy-mm-dd'),1,4)='1982'

6.2 运行截图

在这里插入图片描述

7 查询工资高于本部门平均工资的员工

7.1 示例sql语句

SELECT e1.ename,e1.deptno,e1.sal,e2.a_sal
FROM emp e1
INNER JOIN 
(SELECT deptno,AVG(sal) a_sal
FROM emp
GROUP BY deptno)e2
ON e1.deptno=e2.deptno
WHERE e1.sal>e2.a_sal;

7.2 运行截图

在这里插入图片描述

8 显示正好为5个字符的员工的姓名

8.1 示例sql语句

SELECT ename
FROM emp
WHERE length(ename)=5;

8.2 运行截图

在这里插入图片描述

9 显示所有员工姓名的前三个字符

9.1 示例sql语句

SELECT substr(ename,1,3)
FROM emp

9.2 运行截图

在这里插入图片描述

10 显示所有部门的人数(没人的显示0)

10.1 示例sql语句

SELECT d.deptno,decode(count(d.deptno),1,0,count(d.deptno))
FROM dept d
LEFT JOIN emp e
ON d.deptno=e.deptno
GROUP BY d.deptno

10.2 运行截图

在这里插入图片描述

11 查询所有员工的姓名及其直接上级的姓名

11.1 示例sql语句

SELECT e1.ename "员工姓名",e2.ename "上级领导姓名"
FROM emp e1
LEFT JOIN emp e2
ON e1.mgr=e2.empno

11.2 运行截图

在这里插入图片描述

12 查询入职日期比直接上级早的所有员工(比领导先入职的)

12.1 示例sql语句

SELECT e1.ename "员工姓名",e1.hiredate "员工入职日期",e2.ename "领导姓名",e2.hiredate "领导入职日期"
FROM emp e1
INNER JOIN emp e2
ON e1.mgr=e2.empno
WHERE e1.hiredate<e2.hiredate

12.2 运行截图

在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,我会尽力回答你的问题。以下是经典Oracle数据库练习题: 1. 创建一个名为employees的表,包含以下列:员工ID、姓名、职位、薪水、入职日期。 答案:CREATE TABLE employees ( employee_id NUMBER(6), first_name VARCHAR2(20), last_name VARCHAR2(25), job_title VARCHAR2(35), salary NUMBER(8,2), hire_date DATE); 2. 向employees表中插入一些数据。 答案:INSERT INTO employees (employee_id, first_name, last_name, job_title, salary, hire_date) VALUES (1, 'John', 'Doe', 'Manager', 5000.00, '01-JAN-2000'); INSERT INTO employees (employee_id, first_name, last_name, job_title, salary, hire_date) VALUES (2, 'Jane', 'Smith', 'Salesperson', 3000.00, '15-FEB-2005'); INSERT INTO employees (employee_id, first_name, last_name, job_title, salary, hire_date) VALUES (3, 'Bob', 'Johnson', 'Clerk', 2000.00, '30-APR-2010'); 3. 查询employees表中所有员工的信息。 答案:SELECT * FROM employees; 4. 查询employees表中薪水大于4000的员工信息。 答案:SELECT * FROM employees WHERE salary > 4000; 5. 查询employees表中入职日期在2005年之后的员工信息。 答案:SELECT * FROM employees WHERE hire_date > '01-JAN-2005'; 6. 查询employees表中职位为Manager的员工信息。 答案:SELECT * FROM employees WHERE job_title = 'Manager'; 7. 查询employees表中员工ID为2的员工信息。 答案:SELECT * FROM employees WHERE employee_id = 2; 8. 更新employees表中员工ID为3的薪水为2500。 答案:UPDATE employees SET salary = 2500 WHERE employee_id = 3; 9. 删除employees表中员工ID为1的记录。 答案:DELETE FROM employees WHERE employee_id = 1;

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSS4362

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值