Oracle面试题解析:SQL与函数应用
版权申诉
52 浏览量
更新于2024-07-07
收藏 869KB PDF 举报
"Oracle面试测试题,包括SQL题目和Oracle函数的应用,主要涉及数据库设计、主外键约束、数据插入、查询操作以及Oracle特定函数的使用。"
在Oracle面试中,掌握SQL语句和数据库设计是至关重要的。以下是对题目中涉及的知识点的详细解释:
1. **数据库设计与建表**:
- **主外键关系**:在数据库设计中,主键用于唯一标识一个记录,外键则引用另一个表的主键,确保数据的一致性和完整性。在给定的班级表class和学生表student中,`classid`是class表的主键,同时也是student表的外键,用于关联学生和班级。
- **自动增长值**:在Oracle中,可以使用`序列(SEQUENCE)`来生成自动增长的编号,例如在系表中,可以创建一个序列来自动填充`departmentid`。
- **约束条件**:在建表时可以设置约束,如`NOT NULL`(非空约束)、`UNIQUE`(唯一约束)和`CHECK`(检查约束)。例如,`deptname`不能重复,`name`不能为空,`age`在15到30之间,`num`不超过30。
2. **数据插入**:
- 题目给出了department、class和student表的部分测试数据,插入数据时需要满足前面提到的约束条件。
3. **SQL查询**:
- **查询A**:使用`WHERE`子句和聚合函数`COUNT()`,找出人数大于等于28的系,即查询`class`表,按`deptname`分组,筛选`COUNT(*) >= 28`的记录。
- **查询B**:找出开设超过两个专业的系,需要联接`class`和`department`表,按`deptname`分组,筛选`COUNT(DISTINCT subject) > 2`的记录。
- **查询C**:展示学生全信息,使用`SELECT * FROM student JOIN class ON student.classid = class.classid JOIN department ON class.deptname = department.deptname`。
4. **Oracle函数应用**:
- **查询1**:使用`CONCAT()`函数和`'--'`连接员工姓名和工作。
- **查询2**:使用`SUBSTR()`函数获取姓名的前三个字符和第四个字符后的部分。
- **查询3**:使用`INSTR()`函数查找字母'T'的位置,找出第一次和第二次出现的位置。
- **查询4**:使用`ADD_MONTHS()`函数减去12个月,找出12年前参加工作的员工。
- **查询5**:利用`LAST_DAY()`和`ADD_MONTHS()`找到当月倒数第三天,然后匹配员工入职日期。
- **查询6**:计算工作天数,可以使用`DATEDIFF()`或自定义方法。
- **查询7**:根据日薪计算公式,先确定每日工资,再除以每月天数(30天)。
- **查询8**:使用`TO_CHAR()`函数格式化日期,展示为`YYYY-MM`格式。
- **查询9**:使用`BETWEEN`操作符查询1987年2月到5月入职的员工。
了解并熟练运用这些知识点对于准备Oracle相关的面试至关重要,它们涵盖了数据库基础、SQL高级查询以及Oracle特有的函数操作。
2022-07-14 上传
468 浏览量
2022-07-14 上传
2021-10-08 上传
2024-03-17 上传
945 浏览量
228 浏览量
124 浏览量
640 浏览量

苦茶子12138
- 粉丝: 1w+
最新资源
- 示波器基础与应用:理解示波器的工作原理和功能
- Linux系统中RPM与非RPM软件的安装与卸载指南
- Linux系统操作实用技巧精选33例
- Linux新手入门:常用命令详解与操作指南
- Linux网络命令速览:基础到高级操作指南
- InstallShield 10-11 教程:快速入门安装包制作
- JSTL核心标签与应用全面解析
- OMG空间领域任务 force与XTCE:XML遥测和命令交换标准
- 提升NIT-Pro客观题案例考试技巧:实战与编译要点解析
- 掌握Spring架构:模式驱动的Java开发指南
- SQL应用教程详解:基础到高级操作
- 基于块方向的指纹图像增强与新型匹配技术
- Django快速搭建待办事项列表:30分钟入门教程
- 掌握AJAX实战:信息获取与技术详解
- JBoss Seam教程:理解上下文组件
- Subversion快速搭建与入门教程