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 →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.
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.
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).
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.
Aggregate functions such as COUNT, SUM, AVG, MIN, and MAX; grouping with GROUP BY; filtering groups with HAVING; nesting group functions.
Inner joins, left/right/full outer joins, self-joins, cross joins, and natural joins; join conditions and non-equijoins; combining data across related tables.
Single-row and multiple-row subqueries; correlated and scalar subqueries; the EXISTS operator; subqueries in the WHERE, HAVING, and FROM (inline view) clauses.
UNION and UNION ALL, INTERSECT, and MINUS; matching SELECT lists across queries; ordering combined results; behavior with NULLs and duplicates.
INSERT, UPDATE, DELETE, and MERGE; multi-table inserts; COMMIT, ROLLBACK, and SAVEPOINT; read consistency and Oracle’s handling of uncommitted data.
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.
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?
SELECT DISTINCT city FROM customers WHERE signup_date >= SYSDATE - 90 ORDER BY city;SELECT UNIQUE city FROM customers WHERE signup_date BETWEEN SYSDATE AND SYSDATE - 90;SELECT city FROM customers WHERE signup_date > SYSDATE - 90 ORDER BY city DISTINCT;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 →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?
- The second session sees the new values immediately, because Oracle uses dirty reads by default.
- The second session sees the old values, and the uncommitted changes are rolled back when the first session ends.
- The second session sees the new values only if it sets ISOLATION LEVEL READ UNCOMMITTED.
- 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 →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?
subscribers s RIGHT OUTER JOIN payments p ON s.subscriber_id = p.subscriber_idsubscribers s INNER JOIN payments p ON s.subscriber_id = p.subscriber_idsubscribers s LEFT OUTER JOIN payments p ON s.subscriber_id = p.subscriber_idsubscribers 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 →An analyst needs the number of distinct, non-NULL provider specialties per hospital. PROVIDERS has hospital_id and specialty. Which expression is correct?
SELECT hospital_id, COUNT(*) FROM providers WHERE specialty IS NULL GROUP BY hospital_id;SELECT hospital_id, COUNT(specialty) FROM providers GROUP BY hospital_id;SELECT hospital_id, DISTINCT COUNT(specialty) FROM providers GROUP BY hospital_id;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 →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?
- Use a SAVEPOINT before each INSERT and ROLLBACK TO SAVEPOINT on failure.
- Issue ROLLBACK immediately after the exception.
- Run COMMIT after each INSERT so failures cannot roll back earlier rows.
- 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 →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?
SELECT employee_id FROM employees GROUP BY department_id HAVING salary > AVG(salary);SELECT employee_id FROM employees e1 WHERE salary > (SELECT AVG(salary) FROM employees e2 WHERE e1.department_id = e2.department_id);SELECT employee_id FROM employees WHERE salary > AVG(salary);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 →A DATE column SHIP_DATE must be output as the exact text string ‘YYYY-MM-DD’ for an external partner. Which expression produces it?
FORMAT(ship_date, 'YYYY-MM-DD')CAST(ship_date AS VARCHAR2(10))TO_CHAR(ship_date, 'YYYY-MM-DD')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 →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?
- A PRIMARY KEY constraint on ORDER_STATUS.
- A UNIQUE constraint on ORDER_STATUS.
- A FOREIGN KEY constraint referencing ORDER_STATUS in another table.
- 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 →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?
SELECT course_id FROM legacy_catalog MINUS SELECT course_id FROM catalog;SELECT course_id FROM catalog MINUS SELECT course_id FROM legacy_catalog;SELECT course_id FROM legacy_catalog UNION SELECT course_id FROM catalog;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 →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?
- A sequence:
WHERE country_code = country_seq.NEXTVAL DBMS_OUTPUT.PUT_LINEto request input.- A substitution variable:
WHERE country_code = '&country_code' - 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?
What is the exam format and passing score?
Which Oracle Database versions does it cover?
Does Oracle publish topic weightings for 1Z0-071?
Are there prerequisites?
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 →