Oracle 11g 实践考试:SQL基础题库

5星 · 超过95%的资源 需积分: 0 26 下载量 176 浏览量 更新于2024-07-28 收藏 3.11MB PDF 举报
"Oracle 11g 题库之 051-1,包含了Oracle Database 11g: SQL Fundamentals I的实践测试题目,适用于OCP认证备考。" 在Oracle 11g的数据库管理中,SQL(Structured Query Language)是用于处理关系数据库的强大工具。这篇题库摘录涉及了两个关于SQL查询的问题,主要考察了如何通过SQL语句从数据表中筛选特定信息。 问题一: 问题要求显示所有没有包含子类别'discount'的促销类别。这涉及到SQL中的集合操作,如`MINUS`和`INTERSECT`。选项A和D提供了两种不同的方法来达到这个目的: A. `SELECT promo_category FROM promotions MINUS SELECT promo_category FROM promotions WHERE promo_subcategory='discount'` 这个语句首先选取所有的促销类别,然后从结果中减去那些子类别为'discount'的类别,因此会得到所需的结果。 D. `SELECT promo_category FROM promotions INTERSECT SELECT promo_category FROM promotions WHERE promo_subcategory<>'discount'` 这个语句尝试找出促销类别列表与子类别不等于'discount'的类别列表的交集。但由于交集操作寻找的是两个集合共有的元素,所以这个选项实际上并不会返回任何结果,因为它试图找出同时属于两个互斥集合的类别(一个是所有类别,另一个是除'discount'外的类别),因此选项D并不正确。 正确答案是A。 问题二: 此问题考察了SQL的更新(UPDATE)语句以及日期处理函数。选项A和B如下: A. `UPDATE promotions SET promo_cost=promo_cost+100 WHERE TO_CHAR(promo_end_date,'yyyy')>'2000'` 这个语句尝试将结束日期在2000年之后的所有促销的成本增加100。`TO_CHAR()`函数被用来提取促销结束日期的年份部分,并进行比较。 B. `SELECT "Promotions with end date after 2000"` FROM dual` 这是一个无效的SQL语句,因为它尝试在一个SELECT语句中直接写入文本,而不是从表中选择数据。`FROM dual`通常用于在Oracle中执行单行、单列的查询,但这里没有提供有效的查询条件。 正确答案是A,因为它是有效的SQL更新语句,可以成功执行并按要求修改数据。 这两个问题展示了在Oracle 11g中处理SQL查询时的一些基本概念和技巧,包括集合操作、条件过滤以及日期处理,这些都是数据库管理和认证考试中的重要知识点。对于备考OCP认证的考生来说,熟练掌握这些内容至关重要。