Oracle面试精华:表结构、索引与PL/SQL技巧

需积分: 9 9 下载量 132 浏览量 更新于2024-09-30 收藏 84KB DOC 举报
Oracle数据库是业界广泛使用的数据库管理系统,在面试中,对于Oracle的相关知识掌握至关重要。以下是一些面试中常见的Oracle知识点概述: 1. **Oracle自带表:** - `emp` 表:包含了员工的基本信息,如员工编号(empno)、姓名(ename)、工种(job)、上司(mgr)、入职日期(hiredate)、基本工资(sal)、补贴(comm)、部门编号(deptno)、部门名称(dname)、地理位置(loc)以及工资等级相关信息(salgrade、losal、hisal)。 - `dual` 表:这是一个系统内置的空表,常用于进行简单的算术运算或者测试PL/SQL语句,例如执行 `SELECT 2 * 3 FROM dual` 将返回6。 2. **SQL函数与操作:** - `lower(ename)`:此函数用于将字符串转换为小写,如 `SELECT lower(ename) FROM emp` 会返回所有员工的名字变为小写。 - `LIKE` 运算符结合 `lower(ename)`: `SELECT ename FROM emp WHERE lower(ename) LIKE '_a%'` 可筛选出名字以字母 'a' 开始但不包含 'a' 的员工。 - `substr(ename, 2, 3)`:截取字符串的子串,例如提取员工姓名的前三个字符。 - 数值与字符转换:`select cha(65) from dual` 将数字65转换为字符 'A',`select ascii('A') from dual` 则将字符 'A' 转换为对应的ASCII数值。`round()` 函数用于四舍五入,如 `round(23.652, 2)` 保留两位小数,`round(23.652, -1)` 向零取整。 - `to_char` 函数用于格式化输出,例如 `to_char(sal, '$99,999.9999')` 强制将金额转换为特定格式,`to_char(hiredate, 'YYYY-MM-DDHH:MI:SS')` 和 `to_char(sysdate, 'YYYY-MM-DDHH24:MI:SS')` 分别用于日期和时间格式化,前者12小时制,后者24小时制。 3. **数据完整性与关系模型:** - **第三范式(3NF)**:在数据库设计中,确保数据表满足3NF可以避免数据冗余和更新异常。Oracle设计时需要遵循这一原则,确保数据结构清晰。 4. **PL/SQL(Procedural Language/Structured Query Language):** - PL/SQL 是Oracle数据库中的编程语言,用于编写存储过程、函数和触发器等。面试时可能会询问到如何编写复杂的查询、数据处理逻辑,以及如何使用事务控制和异常处理。 以上这些知识点在Oracle面试中都是核心内容,了解并能够熟练运用它们对于求职者来说非常重要。在准备面试时,不仅要掌握基础语法,还要熟悉Oracle数据库的最佳实践和优化技巧。此外,实践经验、问题解决能力和性能调优能力也是面试官会关注的重要方面。