Oracle基础入门:SQL命令与查询实战指南(笔记03)

需积分: 9 7 下载量 58 浏览量 更新于2024-08-02 1 收藏 678KB PDF 举报
在《跟我学Java 26日通》的第1天学习笔记中,主要探讨了Oracle数据库的基本操作和简单查询。以下是一些关键知识点的详细解析: 1. SQL命令基础:章节开始介绍了使用SQL(结构化查询语言)的基本语法,如登录到Oracle数据库(使用scott/tiger账户),以及对emp表进行操作。emp表是示例数据库中的一个员工信息表,包含了字段如员工编号(EMPNO)、姓名(ENAME)、职位(JOB)、经理编号(MGR)、入职日期(HIREDATE)、薪水(SAL)、佣金(COMM)和部门编号(DEPTNO)。 2. 查询特定部门:通过`SELECT * FROM emp WHERE deptno = 30;`语句,可以获取所有部门编号为30的员工信息。 3. 大小写不敏感查询:`SELECT ename, empno, deptno FROM emp WHERE job = UPPER('clerk');`演示了如何使用UPPER函数进行大小写转换,以便不区分大小写地搜索"CLERK"职位。 4. 比较佣金与薪水:`SELECT * FROM emp WHERE comm > sal;`用于查找佣金超过薪水的员工。另一个查询`SELECT * FROM emp WHERE comm > sal * 0.6;`则表示查找佣金占薪水60%以上的员工。 5. 复合条件查询:`SELECT * FROM emp WHERE (deptno = 10 AND job = 'MANAGER') OR (deptno = 20 AND job = 'CLERK');`展示了如何使用逻辑运算符AND和OR进行多条件筛选。 6. 排除特定职位和薪水范围:`SELECT * FROM emp WHERE (deptno = 10 AND job = 'MANAGER') OR (deptno = 20 AND job = 'CLERK') OR (job NOT IN ('MANAGER', 'CLERK') AND sal >= 2000);`这一查询进一步扩展了条件,排除了非经理和非职员且薪水低于2000的员工。 7. 唯一值查询:`SELECT DISTINCT job FROM emp WHERE comm IS NOT NULL;`提取了佣金不为空的所有独特职位。 8. 逻辑运算与范围检查:`SELECT * FROM emp WHERE comm IS NULL OR comm < 100;`筛选出佣金为null或佣金小于100的记录。 9. 计算雇佣日期:`SELECT * FROM emp WHERE LAST_DAY(hiredate) - 2 = hiredate;`此查询找到入职日期在前两天的员工,可能是为了分析某些特定事件,如假期或招聘周期。 10. 计算工作年限:`SELECT * FROM emp WHERE MONTHS_BETWEEN(sysdate, hiredate) / 12 > 12;`这部分展示如何计算当前日期与入职日期之间的工作年数,用于衡量员工的资历。 11. 初始化变量(initc):这部分内容未在提供的文本中具体说明,可能是关于初始化Oracle数据库连接时可能涉及的初始化参数或者变量设置。 这些知识点涵盖了Oracle SQL的基本查询和数据筛选,对于学习和理解Java与Oracle数据库交互以及数据处理有重要作用。通过这些实例,学习者能够掌握如何在实际开发中使用SQL进行数据操作和分析。