Oracle面试精华:函数、DDL/DCL、连接与存储过程详解

需积分: 46 81 下载量 148 浏览量 更新于2024-09-08 4 收藏 8KB TXT 举报
Oracle面试中常见的问题涉及到数据库的基础概念和技术细节,以下是对部分题目及答案的详细解析: 1. **Oracle常用函数**: - 长度函数(Length)用于获取字符串的长度。 - lower()和upper()分别用于将字符串转换为小写和大写。 - to_date()函数用于将字符串转换为日期类型,to_char()反之,将日期转换为字符格式。 - Ltrim()去除字符串左边的空格,Rtrim()去除右边的空格。 - substr()用于提取字符串的子串。 - add_month()用于在日期上增加或减少指定的月份。 - to_number()函数将字符串转换为数值类型。 2. **DML, DDL, DCL的区分**: - DML (Data Manipulation Language)处理数据,包括SELECT、UPDATE、DELETE和INSERT等操作,主要涉及数据的读取和修改。 - DDL (Data Definition Language)定义数据结构,如CREATE TABLE、DROP TABLE等,用来创建、修改或删除数据库对象。 - DCL (Data Control Language)管理数据库权限,如COMMIT、ROLLBACK、GRANT(授权)和INVOKE(调用存储过程)等,控制对数据的访问和操作流程。 3. **连接类型**: - 内连接(INNER JOIN)只显示满足连接条件的记录。 - 左连接(LEFT JOIN)保留左表的所有记录,即使没有匹配的右表记录也会显示NULL。 - 右连接(RIGHT JOIN)与左连接相反,保留右表的所有记录。 4. **Function与Procedure的区别**: - 函数更像存储过程的一种特殊形式,通常有返回值,而存储过程可能无返回值。 - 函数必须有返回值,通常不接受输入参数,存储过程可以无返回值或通过OUT参数传递。 - 函数调用在SQL语句中,而存储过程一般不在查询中直接调用。 5. **存储过程的作用**: - 执行批量操作,提高效率。 - 控制事务,确保数据的一致性。 - 分解应用服务器压力,代码复用,降低重复开发的工作量。 6. **存储过程的优点**: - 预编译提高执行速度。 - 封装多条SQL,便于维护数据完整性和一致性。 - 实现代码复用,增强程序的模块化。 7. **rownum分页**: Oracle使用rownum伪列进行高效分页,如`SELECT * FROM (SELECT rownum r, ... WHERE ... AND rownum <= 20) WHERE r > 10`,这是一种行级偏移的分页方式。 8. **Oracle文件存储**: Oracle支持多种二进制大对象存储: - CLOB (Character Large Object):可变长度的字符型数据,主要用于存储文本内容。 - NCLOB (National Character Large Object):同CLOB,但支持非ASCII字符。 - BLOB (Binary Large Object):二进制数据,适用于存储图片、文件等二进制内容。 - BFILE (Block File):外部文件存储,将文件存储在操作系统文件系统中,与数据库直接关联。 在Oracle面试中,求职者应掌握这些核心知识点,并能灵活运用到实际场景中。同时,熟悉Oracle的SQL语法、数据库设计、性能优化以及高级特性(如触发器、索引、分区等)也是不可或缺的部分。