Oracle数据库SQL专家考试(1z0-047):约束与分组查询解析

需积分: 9 7 下载量 103 浏览量 更新于2024-07-30 收藏 12.66MB PDF 举报
"Oracle Database SQL Expert (1z0-047) 考试相关的题目及答案" 在Oracle数据库的认证考试1z0-047中,涉及了SQL语句的使用和理解,包括约束、事务处理以及GROUP BY子句中的ROLLUP运算符。 1. 题目描述了一次对名为"CUST"表的操作,首先添加了一个名为"cust_id_pk"的主键约束,该约束是可延迟的,并初始设置为延迟。接着插入了四行数据,其中两行违反了主键约束(因为cust_id字段出现了重复)。随后,通过SET CONSTRAINT语句立即将该约束设置为立即执行。最后再次尝试插入两行数据。问题在于,哪几行数据会被永久性地保存在"CUST"表中? 答案:C. rows 3 and 4 解释:由于主键约束被设置为立即执行,插入"row 3"时,之前违反主键约束的"row 2"将被回滚,因此"row 3"是有效的。"row 4"的插入没有违反任何约束,所以也被保存。 2. 关于SQL语句的GROUP BY子句中ROLLUP运算符,哪个陈述是正确的? 答案:C. 它会产生从右到左的更高层次的子总计,遍历GROUP BY子句中指定的分组列列表。 解释:ROLLUP运算符用于生成汇总数据,它会创建一个层次结构的分组,从最具体的组合开始,然后逐步移除最右边的列,直到生成所有可能的组合(包括总的汇总)。 3. 最后一个问题涉及到查询与'Neena'具有相同经理且薪水等于或高于'Neena'的员工的"FIRST_NAME"和"SALARY"。需要编写一个SQL语句来实现这一目标。虽然没有给出完整的SQL语句,但可以推断出应该使用JOIN操作和WHERE子句来匹配条件,例如: ```sql SELECT e.FIRST_NAME, e.SALARY FROM EMPLOYEES e JOIN EMPLOYEES m ON e.MANAGER_ID = m.EMPLOYEE_ID WHERE m.FIRST_NAME = 'Neena' AND e.SALARY >= (SELECT SALARY FROM EMPLOYEES WHERE FIRST_NAME = 'Neena') ``` 这个查询将返回满足条件的员工的姓名和薪水。 这些题目和答案涵盖了Oracle数据库中的关键概念,包括表结构、数据完整性(主键约束)、事务处理以及复杂的SQL查询技巧,这些都是成为Oracle数据库SQL专家所需掌握的基础知识。