Oracle 1Z0-071 Database SQL Practice Exam | PowerKram
Oracle · Practice Exam · Exam 1Z0-071

Oracle 1Z0-071 Database SQL Practice Exam

Prepare for the 1Z0-071 exam — the path to the Oracle Database SQL Certified Associate credential — with scenario questions across the full syllabus: SELECT and DML, transactions, joins and subqueries, set operators, single-row and group functions, and DDL for tables, views, and constraints. Each explanation links to the exact Oracle SQL documentation page, with full timed simulation in Exam mode.

Start 24-hour free trial →
700+
Practice questions
2
Study modes
100%
Source-linked
24h
Free trial

1Z0-071 exam at a glance

Vendor
Oracle
Exam code
1Z0-071
Exam title
Oracle Database SQL
Certification earned
Oracle Database SQL Certified Associate
Format
Multiple choice
Questions
~63–78 (confirm current count on Oracle’s exam page)
Duration
~100–120 minutes
Passing score
63%
Cost (USD)
$245
Validated against
Oracle Database 11g R2 through 19c
Delivery
Pearson VUE — test center or online proctored
Prerequisites
None; SQL and relational-database familiarity recommended

Sources: Oracle — official 1Z0-071 exam page. Reported question counts and durations vary across sources, so confirm the current numbers with Oracle and Pearson VUE before scheduling.

About the 1Z0-071 Oracle Database SQL exam

Passing 1Z0-071 earns the Oracle Database SQL Certified Associate credential — a foundational, widely recognized proof of SQL fluency against Oracle Database. It targets developers, database administrators, data analysts, and BI professionals who write, tune, and maintain SQL, and it confirms practical command of DDL, DML, query composition, built-in functions, joins, subqueries, set operators, and the relational concepts that underpin Oracle’s engine. It is also the usual first step toward Oracle’s more advanced database credentials.

The exam is validated against Oracle Database 11g Release 2 through 19c, so questions reflect long-stable SQL behavior rather than one specific release. It is scenario-driven: rather than asking you to recite syntax, it presents a situation — a report to build, a transaction to reason about, a constraint to enforce — and asks you to pick the correct statement or explain the outcome. Two behaviors are tested repeatedly and reward focused study: how NULL propagates through comparisons, arithmetic, and group functions (NVL, NVL2, COALESCE, and the difference between col IS NULL and col = NULL), and how implicit data-type conversion and the default date format mask affect results.

PowerKram’s 1Z0-071 practice questions mirror that scenario format and link every explanation to the exact Oracle SQL documentation page it derives from, so a wrong answer becomes a specific page to read. For where this credential fits in a broader path, see our IT certifications guide.

What the 1Z0-071 exam covers

Oracle publishes the 1Z0-071 syllabus as a list of topic areas rather than as weighted percentages, so we present the objective areas below without inventing precise weights — treat them all as testable. In practice, the query and data-manipulation topics are the most heavily represented, so start there, but every area appears on the exam. For the authoritative, current list, always check Oracle’s exam page.

Relational database concepts

The theoretical and physical aspects of a relational database; how SELECT clauses relate to the components of an ERD; the relationship between a database and SQL.

Retrieving, restricting, and sorting data

SELECT fundamentals; the DISTINCT keyword, concatenation, literals, and the alternative quote operator; arithmetic and NULL handling in SELECT; WHERE filtering, operator precedence, row-limiting, ORDER BY, and substitution variables (&, DEFINE, VERIFY).

Single-row functions and conversion

Character, numeric, and date functions; explicit and implicit data-type conversion with TO_CHAR, TO_NUMBER, and TO_DATE; conditional expressions (CASE, DECODE) and the NVL, NULLIF, and COALESCE functions.

Aggregating data with group functions

Aggregate functions such as COUNT, SUM, AVG, MIN, and MAX; grouping with GROUP BY; filtering groups with HAVING; nesting group functions.

Joins and displaying data from multiple tables

Inner joins, left/right/full outer joins, self-joins, cross joins, and natural joins; join conditions and non-equijoins; combining data across related tables.

Subqueries

Single-row and multiple-row subqueries; correlated and scalar subqueries; the EXISTS operator; subqueries in the WHERE, HAVING, and FROM (inline view) clauses.

Set operators

UNION and UNION ALL, INTERSECT, and MINUS; matching SELECT lists across queries; ordering combined results; behavior with NULLs and duplicates.

DML and transaction control

INSERT, UPDATE, DELETE, and MERGE; multi-table inserts; COMMIT, ROLLBACK, and SAVEPOINT; read consistency and Oracle’s handling of uncommitted data.

DDL: managing tables, views, and other objects

CREATE, ALTER, and DROP for tables, views, sequences, indexes, and synonyms; data types; constraints (PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK); privileges and the data dictionary.

These are the syllabus topic areas, not weighted percentages. For the current, authoritative topic list, see the official Oracle 1Z0-071 exam page.

Who the 1Z0-071 exam is for

SQL fluency is foundational across data and application work, so this credential suits a broad audience:

  • Database and SQL developers who write and tune queries against Oracle Database and want a recognized credential to prove it.
  • Aspiring and junior DBAs building the SQL foundation required before the Oracle Database Administration track.
  • Data analysts and BI professionals who query Oracle-backed systems and want to formalize their skills.
  • Application developers whose code embeds SQL and who need to reason about joins, subqueries, transactions, and NULL behavior correctly.

Once certified, the common next steps are the Oracle Database Administration and PL/SQL tracks — see 1Z0-082 Database Administration I, 1Z0-149 Program with PL/SQL, and 1Z0-116 Database Security Administration. For the roles this credential supports, with salary ranges and progression, see the data engineer career path in our Career Hub.

What this 1Z0-071 practice exam delivers

Learn mode

Get the correct answer, the reasoning, and why the other options fail — immediately after each question. Ideal for the NULL-handling and data-type-conversion traps the exam leans on.

Exam mode

A timed run in the real multiple-choice format, so you build the pacing and query-reading speed the actual exam demands.

Source-linked explanations

Every answer cites the exact Oracle SQL documentation page — so you learn from Oracle’s own SQL Language Reference on joins, functions, constraints, and set operators, not just a memorized letter.

Score by topic

Results break down by syllabus topic — queries, joins, subqueries, functions, DML, and DDL — so practice tells you exactly which areas to drill.

Sample 1Z0-071 practice questions

Ten free scenario questions across the syllabus, each with a full explanation and a source link to the Oracle documentation it derives from. The complete bank is available with the 24-hour trial.

Question 1 · Retrieving, restricting & sorting data

A retail analytics team needs unique city values from a CUSTOMERS table for members whose signup date is within the last 90 days, sorted alphabetically. Which single SELECT returns the correct result set?

  1. SELECT DISTINCT city FROM customers WHERE signup_date >= SYSDATE - 90 ORDER BY city;
  2. SELECT UNIQUE city FROM customers WHERE signup_date BETWEEN SYSDATE AND SYSDATE - 90;
  3. SELECT city FROM customers WHERE signup_date > SYSDATE - 90 ORDER BY city DISTINCT;
  4. SELECT city FROM customers WHERE signup_date >= SYSDATE - 90 GROUP BY city ORDER BY 1 DESC;
Show answer & explanation

Correct: A. It combines DISTINCT to remove duplicate cities, a correct SYSDATE - 90 predicate for the last 90 days, and ORDER BY city for alphabetical order.

Why not the others: B reverses the BETWEEN bounds so no rows match. C places DISTINCT inside ORDER BY, which is invalid syntax. D sorts descending and misuses GROUP BY (not alphabetical, and city is grouped rather than distinct-selected).

Source: Oracle — SELECT statement → Further reading: PowerKram — IT certifications guide →
Question 2 · DML & transaction control

An engineer runs an UPDATE in SQL Developer, then closes the session without COMMIT. Another session immediately queries the same rows. What does the second session see, and what happens to the uncommitted changes?

  1. The second session sees the new values immediately, because Oracle uses dirty reads by default.
  2. The second session sees the old values, and the uncommitted changes are rolled back when the first session ends.
  3. The second session sees the new values only if it sets ISOLATION LEVEL READ UNCOMMITTED.
  4. The second session is blocked until the first session commits or rolls back.
Show answer & explanation

Correct: B. Oracle enforces read consistency: readers never see uncommitted data and are never blocked by writers. When the first session closes without committing, Oracle rolls its changes back, so the second session sees the old values throughout.

Why not the others: A is wrong — Oracle does not permit dirty reads. D is wrong — a SELECT does not wait on row locks held by an UPDATE. C is wrong — READ UNCOMMITTED is not a supported Oracle isolation level.

Source: Oracle — Data concurrency and consistency →
Question 3 · Joins

A data engineer needs every subscriber together with their most recent payment, including subscribers who have never paid (free-trial users). SUBSCRIBERS and PAYMENTS join on subscriber_id. Which join keeps one row per subscriber, even with no matching payment?

  1. subscribers s RIGHT OUTER JOIN payments p ON s.subscriber_id = p.subscriber_id
  2. subscribers s INNER JOIN payments p ON s.subscriber_id = p.subscriber_id
  3. subscribers s LEFT OUTER JOIN payments p ON s.subscriber_id = p.subscriber_id
  4. subscribers s CROSS JOIN payments p WHERE s.subscriber_id = p.subscriber_id
Show answer & explanation

Correct: C — LEFT OUTER JOIN. It preserves every row from the left table (subscribers) and returns NULLs for payment columns when there is no match — exactly what free-trial users need.

Why not the others: B (inner) drops subscribers with no payment. A (right) preserves payments and can drop subscribers. D is a Cartesian product filtered back down, which also drops non-matching subscribers.

Source: Oracle — Joins → Further reading: PowerKram — IT certifications guide →
Question 4 · Aggregating data with group functions

An analyst needs the number of distinct, non-NULL provider specialties per hospital. PROVIDERS has hospital_id and specialty. Which expression is correct?

  1. SELECT hospital_id, COUNT(*) FROM providers WHERE specialty IS NULL GROUP BY hospital_id;
  2. SELECT hospital_id, COUNT(specialty) FROM providers GROUP BY hospital_id;
  3. SELECT hospital_id, DISTINCT COUNT(specialty) FROM providers GROUP BY hospital_id;
  4. SELECT hospital_id, COUNT(DISTINCT specialty) FROM providers GROUP BY hospital_id;
Show answer & explanation

Correct: D. COUNT(DISTINCT specialty) counts only non-NULL values and removes duplicates — distinct, non-NULL specialties per hospital.

Why not the others: B counts non-NULL specialties but includes duplicates. A inverts the filter and returns only NULL-specialty rows. C is invalid syntax — DISTINCT cannot precede an aggregate like that.

Source: Oracle — COUNT function →
Question 5 · DML & transaction control

An app inserts three rows into AUDIT_LOG, then a fourth INSERT raises ORA-02290 (check-constraint violation). The developer wants to revert only the failed statement without losing the earlier inserts in the same transaction. Which approach fits?

  1. Use a SAVEPOINT before each INSERT and ROLLBACK TO SAVEPOINT on failure.
  2. Issue ROLLBACK immediately after the exception.
  3. Run COMMIT after each INSERT so failures cannot roll back earlier rows.
  4. Wrap the INSERT in SET TRANSACTION READ ONLY before executing.
Show answer & explanation

Correct: A. SAVEPOINT marks a point in the transaction; ROLLBACK TO SAVEPOINT unwinds only changes after that marker while keeping earlier inserts in the same transaction.

Why not the others: B rolls back the entire transaction, losing the earlier inserts. C commits each row, destroying the batch’s atomicity. D makes the transaction read-only and would block the INSERTs outright.

Source: Oracle — SAVEPOINT → Further reading: PowerKram — IT certifications guide →
Question 6 · Subqueries

An HR analyst needs employees who earn more than the average salary within their own department. EMPLOYEES has employee_id, department_id, and salary. Which query is correct?

  1. SELECT employee_id FROM employees GROUP BY department_id HAVING salary > AVG(salary);
  2. SELECT employee_id FROM employees e1 WHERE salary > (SELECT AVG(salary) FROM employees e2 WHERE e1.department_id = e2.department_id);
  3. SELECT employee_id FROM employees WHERE salary > AVG(salary);
  4. SELECT employee_id FROM employees e1 JOIN employees e2 ON e1.salary > AVG(e2.salary);
Show answer & explanation

Correct: B — a correlated subquery. For each outer row, the inner query computes that employee’s department average and compares against it.

Why not the others: C is invalid — an aggregate cannot appear directly in WHERE. A fails because salary is neither grouped nor aggregated. D cannot use AVG in a join predicate that way.

Source: Oracle — About SQL expressions →
Question 7 · Single-row functions & conversion

A DATE column SHIP_DATE must be output as the exact text string ‘YYYY-MM-DD’ for an external partner. Which expression produces it?

  1. FORMAT(ship_date, 'YYYY-MM-DD')
  2. CAST(ship_date AS VARCHAR2(10))
  3. TO_CHAR(ship_date, 'YYYY-MM-DD')
  4. TO_DATE(ship_date, 'YYYY-MM-DD')
Show answer & explanation

Correct: C — TO_CHAR with a format mask. TO_CHAR converts a DATE into a formatted string using the supplied mask, guaranteeing the exact ‘YYYY-MM-DD’ output.

Why not the others: D (TO_DATE) is the inverse — it parses a string into a date. B relies on an implicit conversion using the session NLS_DATE_FORMAT, which is not guaranteed to match. A is not a valid Oracle function.

Source: Oracle — TO_CHAR (datetime) → Further reading: PowerKram — IT certifications guide →
Question 8 · DDL & constraints

A new ORDERS table’s ORDER_STATUS column must always contain one of a fixed list: ‘PENDING’, ‘SHIPPED’, ‘DELIVERED’, or ‘CANCELLED’. Which constraint enforces this at the table level?

  1. A PRIMARY KEY constraint on ORDER_STATUS.
  2. A UNIQUE constraint on ORDER_STATUS.
  3. A FOREIGN KEY constraint referencing ORDER_STATUS in another table.
  4. A CHECK constraint listing the four allowed values.
Show answer & explanation

Correct: D — a CHECK constraint. A CHECK enforces a boolean condition such as ORDER_STATUS IN ('PENDING','SHIPPED','DELIVERED','CANCELLED') — ideal for a small fixed list.

Why not the others: A (PRIMARY KEY) and B (UNIQUE) would forbid duplicate status values across rows, which is not the rule. C (FOREIGN KEY) works only if you maintain a separate master table — unnecessary here.

Source: Oracle — constraint clause →
Question 9 · Set operators

An engineer needs course IDs that exist in LEGACY_CATALOG but not in the current CATALOG. Both have the same course_id type. Which set operator returns the difference?

  1. SELECT course_id FROM legacy_catalog MINUS SELECT course_id FROM catalog;
  2. SELECT course_id FROM catalog MINUS SELECT course_id FROM legacy_catalog;
  3. SELECT course_id FROM legacy_catalog UNION SELECT course_id FROM catalog;
  4. SELECT course_id FROM legacy_catalog INTERSECT SELECT course_id FROM catalog;
Show answer & explanation

Correct: A — MINUS. MINUS returns rows from the first query that do not appear in the second — legacy course IDs not in the current catalog.

Why not the others: B reverses the direction (new IDs missing from legacy). C (UNION) returns all distinct IDs across both. D (INTERSECT) returns only those in both.

Source: Oracle — UNION, INTERSECT, MINUS operators →
Question 10 · Retrieving data — substitution variables

An analyst wants a SQL*Plus query to prompt the user for a country code at runtime and substitute it into the WHERE clause each time the script runs. Which construct does this?

  1. A sequence: WHERE country_code = country_seq.NEXTVAL
  2. DBMS_OUTPUT.PUT_LINE to request input.
  3. A substitution variable: WHERE country_code = '&country_code'
  4. A bind variable: WHERE country_code = :country_code
Show answer & explanation

Correct: C — a substitution variable. The & prefix causes SQL*Plus to prompt for a value and textually substitute it into the statement before execution.

Why not the others: D (bind variable) does not prompt — values are supplied programmatically. A calls a sequence, which generates numbers, not user input. B writes to server output and cannot read input.

Source: Oracle — SQL*Plus: Using substitution variables →

Keep going: Learning & Career resources

SQL is one of the most durable, transferable skills in tech, and an Oracle SQL credential is a recognized way to prove it. Two PowerKram hubs back this exam.

Deep dive: exam facts, high-leverage topics, the credential path, and study plan

Exam facts — and why they vary

Reported figures for 1Z0-071 differ across third-party sources: question counts of 63, 73, or 78, and durations of 100 to 120 minutes all appear, while the passing score (63%) and fee ($245) are consistent. That variation is exactly why the official Oracle exam page is the authority — check it for the current count, duration, and topic list before you schedule. The exam is validated from Oracle Database 11g R2 up to 19c, so it tests stable SQL behavior rather than a single release’s features. Read the IT certifications guide →

High-leverage topics

Two areas repay focused study because the exam tests them relentlessly. First, NULL behavior: how NULL propagates through comparisons and arithmetic, how group functions ignore NULLs, and the difference between col IS NULL and the always-false col = NULL — plus NVL, NVL2, and COALESCE. Second, data-type conversion: when Oracle converts implicitly, why that is risky, and how TO_CHAR, TO_NUMBER, and TO_DATE make it explicit, along with the default date format mask. Correlated subqueries, outer-join semantics, and set-operator behavior with NULLs round out the common testers. See the PL/SQL exam →

The credential path

1Z0-071 earns the Oracle Database SQL Certified Associate credential and is the usual foundation for Oracle’s database tracks. From here, the common next steps are Database Administration — 1Z0-082 Administration I — and PL/SQL programming, with specialized paths such as 1Z0-116 Database Security Administration for those moving toward security roles.

Realistic study plan

Practice hands-on against a real Oracle instance: use Oracle’s free learning environments or an OCI Always Free Autonomous Database, load a sample schema (such as HR), and rewrite every example from scratch. Work topic by topic — start with queries and DML, then joins and subqueries, then functions, then set operators and DDL. Read the linked Oracle SQL Language Reference pages for each explanation above, then run timed practice until you consistently clear 63% across full-length attempts. Data & database career paths →

Frequently asked questions about the 1Z0-071 exam

What certification does passing 1Z0-071 earn?
Passing 1Z0-071 (exam title “Oracle Database SQL”) earns the Oracle Database SQL Certified Associate credential — a foundational proof of SQL fluency against Oracle Database and a common first step toward Oracle’s database administration and PL/SQL tracks.
What is the exam format and passing score?
It is a multiple-choice exam delivered through Pearson VUE, at a test center or online proctored. The passing score is 63% and the fee is $245 USD. Reported question counts (around 63–78) and durations (about 100–120 minutes) vary across sources, so confirm the current numbers on Oracle’s official exam page.
Which Oracle Database versions does it cover?
The exam is validated against Oracle Database 11g Release 2 through 19c. It focuses on stable, standard SQL behavior across those releases rather than features unique to one version, so preparation transfers well across environments.
Does Oracle publish topic weightings for 1Z0-071?
Oracle publishes the syllabus as a list of topic areas rather than as weighted percentages. We present the objective areas without inventing percentages; treat them all as testable. In practice the query and data-manipulation topics are the most heavily represented.
Are there prerequisites?
There are no formal prerequisites. Oracle recommends familiarity with relational databases, SQL statements, and general computing concepts, and prior hands-on experience running queries in a SQL editor or command line. Because the exam is scenario-based, practical SQL practice matters more than memorization.

Start your free 24-hour 1Z0-071 practice trial

Full access to 700+ questions across the whole syllabus, both study modes, and source-linked explanations. No credit card required.

Start free trial →