Oracle面试必备:SQL题目与函数应用解析

版权申诉
0 下载量 77 浏览量 更新于2024-07-01 收藏 37KB PDF 举报
"Oracle面试测试题包含了SQL题目和Oracle函数的使用。" 首先,我们来详细讲解SQL题目中的知识点: 1. 数据库表的设计与约束: - 在创建表时,需要考虑主键和外键的关系。例如,在班级表中,`classid`是主键,而在学生表中,`classid`作为外键引用班级表,这样可以确保数据的一致性和完整性。 - 自动增长的编号字段可以通过设置序列(Sequence)并结合触发器(Trigger)在插入新记录时自动获取下一个序列值,例如在系表中`departmentid`的生成。 - 约束条件用于限制数据的范围,如`class`表中的`num`字段限制班级人数不超过30,学生表中`age`字段限制年龄在15到30之间,`name`字段不允许为空,`deptname`字段在系表中不能重复。 2. 数据的插入: - 测试数据的插入展示了如何向各个表中添加记录,确保满足之前设定的约束条件。 3. SQL查询: - A:使用`WHERE`子句和聚合函数`COUNT()`查询人数大于等于28的系的编号和名称。 - B:通过`GROUP BY`和`HAVING`子句找出开设超过两个专业的系的名字。 - C:使用`JOIN`操作将`student`、`class`和`department`表连接起来,展示学生的信息。 接下来,我们分析Oracle函数使用的题目: 1. 字符串操作: - 结合`CONCAT()`或`||`操作符和`SUBSTR()`函数,可以实现员工姓名和工作之间的连接,中间用特定字符分隔。 - `SUBSTR()`函数可以用来截取字符串的特定部分,例如显示姓名的前三个字符和第四个字符后的内容。 - 使用正则表达式`REGEXP_INSTR()`函数找到字母'T'在姓名中第一次和第二次出现的位置。 2. 时间和日期操作: - 通过`ADD_MONTHS()`函数减去指定月数,可以找出12年前参加工作的员工。 - `LAST_DAY()`函数可以获取月份的最后一天,结合`TRUNC()`函数查询当月倒数第三天参加工作的员工。 - 计算工作天数通常涉及日期差运算,可以使用`NUMTODSINTERVAL()`函数。 - 日薪金的计算涉及到工资除以一年的天数,可能需要考虑闰年。 - `TO_CHAR()`函数配合日期格式模型可以按年月格式显示员工的入职时间。 3. 其他: - 显示员工的工作天数可能需要结合`SYSDATE`系统日期和入职日期进行计算。 - 计算日薪金可能需要知道员工的薪水和入职日期,然后根据工作日计算。 以上是基于题目内容的SQL和Oracle函数的解析,这些问题覆盖了数据库设计、数据操作以及日期和字符串处理等多个核心概念,是Oracle数据库管理员和开发人员面试中常见的问题类型。