Oracle 1Z0-071 Database SQL Practice Exam
Prepare for Oracle 1Z0-071, the Oracle Database SQL exam behind the SQL Certified Associate credential, with scenario questions organized into six objectives — from NULL handling and conversion functions to joins, subqueries, set operators, DML transactions, and DDL constraints — each explained against Oracle’s own SQL Language Reference.
Start 24-hour free trial →1Z0-071 exam at a glance
- Vendor
- Oracle (Oracle University)
- Exam code
- 1Z0-071
- Exam title
- Oracle Database SQL
- Credential earned
- Oracle Database SQL Certified Associate
- Format
- Multiple choice
- Questions
- 63
- Duration
- 120 minutes
- Passing score
- 63%
- Blueprint
- 16 official topic areas, no published weights (Oracle MyLearn exam topics, current September 2026)
- Delivery
- Proctored online through Oracle University
- Cost (USD)
- $245 US list for an Oracle Technology exam; local pricing varies
- Prerequisites
- None required; Oracle expects general computing and command-line familiarity
Sources: Oracle MyLearn — Exam 1Z0-071: Oracle Database SQL (format, questions, duration, passing score, topics) and Oracle University — exam purchase options. Oracle can revise exam details, so confirm them on MyLearn before you schedule.
About the Oracle Database SQL (1Z0-071) exam
Passing 1Z0-071 earns the Oracle Database SQL Certified Associate credential. Oracle frames it as proof of the fundamental SQL needed for any database project: queries, INSERT, UPDATE, DELETE and MERGE, data definition and data control language, tables and indexes, and data modeling. The exam is 63 multiple-choice questions in 120 minutes with a 63% passing score, delivered as an online proctored exam through Oracle University.
It is a precision exam rather than a syntax quiz. Most items show a statement and ask what it returns, whether it errors, or which rewrite meets a requirement — so one overlooked NULL, one implicit date conversion, or one DDL statement that silently commits a transaction changes the answer. Oracle publishes 16 topic areas without weights. PowerKram’s bank organizes practice into six objectives that cover 11 of them, from relational concepts and SELECT through joins, subqueries, DML, and DDL; the questions follow the exam’s result-prediction style and cite the exact Oracle SQL Language Reference page behind each answer. For where an Oracle SQL credential fits among other database and IT credentials, see how Oracle SQL certification fits into an IT certification path.
What the 1Z0-071 exam covers, and how our six objectives map to it
Oracle publishes the 1Z0-071 blueprint as 16 topic areas with no percentage weights, so we do not invent a split. PowerKram’s 1Z0-071 bank is organized into six objectives, and each one maps to specific Oracle topic areas below. Together they cover 11 of Oracle’s 16 areas.
Oracle topic areas: Relational database concepts · Retrieving data with SELECT. ERDs and the relational model; column aliases, concatenation, literals, the alternative quote operator, DISTINCT, and arithmetic with NULL values.
Oracle topic areas: Restricting and sorting data · Single-row functions. Operator precedence, row limiting, substitution variables with DEFINE and VERIFY, ORDER BY; character functions, date arithmetic, ROUND, TRUNC and MOD.
Oracle topic areas: Conversion functions and conditional expressions · Group functions. NVL, NULLIF and COALESCE; implicit versus explicit conversion with TO_CHAR, TO_NUMBER and TO_DATE; nesting functions; GROUP BY and HAVING.
Oracle topic areas: Displaying data from multiple tables · Subqueries. Join types, self-joins, non-equijoins, outer joins, Cartesian products; single-row, multiple-row, and correlated subqueries.
Oracle topic areas: Set operators · DML and transactions. UNION, UNION ALL, INTERSECT, MINUS; INSERT, UPDATE, DELETE, multi-table inserts, MERGE, and transaction control.
Oracle topic areas: DDL for tables and relationships. Tables, columns and data types; SET UNUSED; TRUNCATE; temporary and external tables; constraints and referential integrity.
On Oracle’s list but outside our six objectives
These five areas are on the official topic list but are not named objectives in the PowerKram bank. They are smaller areas, but Oracle can test any of them, so study them directly from Oracle’s SQL Language Reference; the deep dive below summarizes what to know.
Creating and managing indexes, synonyms, and sequences, including NEXTVAL and CURRVAL.
Creating and managing views.
System versus object privileges, granting privileges on tables, and privileges versus roles.
Using the data dictionary views to find information about schema objects.
CURRENT_DATE, CURRENT_TIMESTAMP and LOCALTIMESTAMP, and INTERVAL data types.
Source: Oracle MyLearn — 1Z0-071 exam topics. Oracle topic names are lightly shortened; Oracle publishes no weights for this exam.
Who the 1Z0-071 exam is for
Because SQL sits underneath most data and application work, 1Z0-071 fits a wide audience:
- SQL and database developers who write queries, DML, and DDL against Oracle Database and want a recognized credential that proves it.
- Aspiring DBAs building the SQL base that the Oracle Database Administration track assumes.
- Data analysts, BI developers, and data engineers who query Oracle-backed systems and need to predict results correctly around NULLs, joins, and conversions.
- Application developers whose code issues SQL and who need to reason about transactions, sequences, and privileges.
Oracle sets no formal prerequisite; it expects general computing knowledge and comfort at a command line. Common next steps are 1Z0-082 Database Administration I, 1Z0-149 PL/SQL programming, and 1Z0-116 Database Security Administration. To see what SQL-heavy data roles pay and require, review data-engineer-track roles and salaries in the Career Hub.
What this 1Z0-071 practice exam delivers
Learn mode
See the answer, the reasoning, and why each distractor fails right after every question — built for the NULL, conversion, and implicit-commit traps 1Z0-071 leans on.
Exam mode
A timed multiple-choice run so you practice reading statements and predicting results at the pace 63 questions in 120 minutes requires.
Study by objective
Practice and review across the six objectives — from retrieving data through DDL — so a weak spot in conversions, subqueries, or transaction control shows up before exam day.
Source-linked explanations
Every answer cites the Oracle SQL Language Reference page it comes from — SELECT, Joins, IN conditions, COMMIT, MERGE, constraints — so each miss becomes a specific page to read.
Sample 1Z0-071 practice questions
Ten free questions spread across the six objectives, each with a full explanation and a link to the Oracle documentation it derives from. The complete bank is available with the 24-hour trial.
A payroll report runs SELECT last_name, salary*12 + salary*12*commission_pct AS annual_pay FROM employees; For some employees, annual_pay comes back empty.
Why is annual_pay NULL for those employees?
- AS annual_pay is a reserved alias, so Oracle suppresses the value.
- Oracle rounds very small products down to NULL.
- commission_pct is NULL for them, and any arithmetic expression containing a NULL evaluates to NULL.
- Arithmetic in a SELECT list requires the concatenation operator.
Show answer & explanation
Correct: C. Any arithmetic expression that contains a NULL evaluates to NULL, so employees with no commission lose the whole annual_pay value. Wrapping the column as NVL(commission_pct, 0) fixes it.
Why not the others: A is wrong because annual_pay is an ordinary alias. B is wrong because Oracle never converts small numbers to NULL. D is wrong because concatenation joins strings and has nothing to do with arithmetic.
Source: Oracle — Nulls in SQL →A manager wants the three highest salaries in the EMPLOYEES table, but if other employees tie with the third-highest salary, they must appear too.
Which clause returns that result?
ORDER BY salary DESC FETCH FIRST 3 ROWS ONLYORDER BY salary DESC FETCH FIRST 3 ROWS WITH TIESFETCH FIRST 3 ROWS WITH TIESwith no ORDER BY clauseWHERE ROWNUM <= 3 ORDER BY salary DESC
Show answer & explanation
Correct: B. WITH TIES returns extra rows that share the sort key of the last row fetched, and it requires an ORDER BY clause to define that key.
Why not the others: A returns exactly three rows and drops ties. C has no ORDER BY, so no additional tied rows are returned. D applies ROWNUM before the sort, so it takes three arbitrary rows and then orders them.
Source: Oracle — SELECT (row_limiting_clause) →A DATE column SHIP_DATE must be sent to a partner as the exact text YYYY-MM-DD, whatever the session’s NLS_DATE_FORMAT happens to be.
Which expression guarantees that output?
FORMAT(ship_date, 'YYYY-MM-DD')CAST(ship_date AS VARCHAR2(10))TO_DATE(ship_date, 'YYYY-MM-DD')TO_CHAR(ship_date, 'YYYY-MM-DD')
Show answer & explanation
Correct: D. TO_CHAR converts a DATE into a character string using an explicit format mask, so the output is fixed regardless of session settings.
Why not the others: A is not an Oracle SQL function. B relies on the session date format, which is exactly what must not decide the output. C runs the opposite direction, converting a string into a DATE.
Source: Oracle — TO_CHAR (datetime) →An analyst needs each department_id whose average salary is above 8000.
Which query is valid and correct?
SELECT department_id, AVG(salary) FROM employees GROUP BY department_id HAVING AVG(salary) > 8000;SELECT department_id, AVG(salary) FROM employees WHERE AVG(salary) > 8000 GROUP BY department_id;SELECT department_id, AVG(salary) FROM employees GROUP BY department_id WHERE AVG(salary) > 8000;SELECT department_id, salary FROM employees GROUP BY department_id HAVING AVG(salary) > 8000;
Show answer & explanation
Correct: A. Aggregate conditions belong in HAVING, which filters groups after GROUP BY has formed them.
Why not the others: B puts an aggregate in WHERE, which filters individual rows before grouping and raises an error. C places WHERE after GROUP BY, which is invalid clause order. D selects salary, which is neither grouped nor aggregated.
Source: Oracle — Aggregate functions →A report must list every subscriber with their payments, including free-trial subscribers who have never paid. SUBSCRIBERS and PAYMENTS join on subscriber_id.
Which FROM clause keeps subscribers with no matching payment?
subscribers s INNER JOIN payments p ON s.subscriber_id = p.subscriber_idsubscribers s RIGHT OUTER 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 pfiltered withWHERE s.subscriber_id = p.subscriber_id
Show answer & explanation
Correct: C. A left outer join returns every row from the left table and fills the right table’s columns with NULL where no match exists — exactly the free-trial case.
Why not the others: A drops subscribers without payments. B preserves payments rather than subscribers. D is a Cartesian product filtered back to an inner join, so it also drops non-payers.
Source: Oracle — Joins →To find employees who manage nobody, a developer runs SELECT last_name FROM employees WHERE employee_id NOT IN (SELECT manager_id FROM employees); The CEO’s row has a NULL manager_id.
What does the query return?
- Every employee who is not a manager, as intended.
- No rows, because the subquery result contains a NULL.
- Only the CEO, because NULL matches nothing.
- An error, because a multiple-row subquery cannot follow NOT IN.
Show answer & explanation
Correct: B. If any value in the list after NOT IN is NULL, every row evaluates to FALSE or UNKNOWN and no rows are returned. Adding WHERE manager_id IS NOT NULL to the subquery, or using NOT EXISTS, fixes it.
Why not the others: A is the intended result, which the NULL prevents. C is wrong because the NULL makes the condition unknown for every row, not true for one. D is wrong because NOT IN is a valid multiple-row operator.
Source: Oracle — IN condition (NOT IN and nulls) →A nightly job combines order rows from ORDERS_2025 and ORDERS_2026 into one list. Duplicate rows must be kept, and the job should avoid unnecessary sorting.
Which set operator fits?
- UNION
- INTERSECT
- MINUS
- UNION ALL
Show answer & explanation
Correct: D. UNION ALL returns all rows from both queries, duplicates included, with no duplicate-elimination step.
Why not the others: A removes duplicates, which violates the requirement and adds work. B returns only rows found in both tables. C returns rows from the first query that are absent from the second.
Source: Oracle — UNION, UNION ALL, INTERSECT, MINUS →In one session, a developer runs an UPDATE on PRICES, then CREATE TABLE prices_bkp AS SELECT * FROM prices; and then ROLLBACK.
What happens to the UPDATE?
- It is rolled back, because ROLLBACK undoes the whole session.
- It is rolled back, but prices_bkp keeps the updated values.
- It is permanent, because Oracle issued an implicit COMMIT around the CREATE TABLE.
- The ROLLBACK fails because a DDL statement is pending.
Show answer & explanation
Correct: C. Oracle issues an implicit COMMIT before any syntactically valid DDL statement and after one that completes, so the UPDATE was committed before the ROLLBACK ran.
Why not the others: A ignores the implicit commit; ROLLBACK only undoes work since the last commit. B is wrong because the UPDATE itself is already permanent. D is wrong because DDL never stays pending; it commits as it runs.
Source: Oracle — COMMIT (implicit commits) → Further reading: PowerKram — 1Z0-082 Database Administration I (transactions and undo) →EMPLOYEES.department_id references DEPARTMENTS. The business rule: when a department row is deleted, its employee rows must be deleted automatically.
Which constraint definition on EMPLOYEES enforces that rule?
FOREIGN KEY (department_id) REFERENCES departments (department_id) ON DELETE CASCADEFOREIGN KEY (department_id) REFERENCES departments (department_id) ON DELETE SET NULLFOREIGN KEY (department_id) REFERENCES departments (department_id)with no ON DELETE clauseCHECK (department_id IN (SELECT department_id FROM departments))
Show answer & explanation
Correct: A. ON DELETE CASCADE tells Oracle to delete the dependent child rows whenever the referenced parent key is deleted.
Why not the others: B keeps the employee rows and sets their department_id to NULL. C is the default behavior, which blocks deleting a department that still has employees. D is invalid because a check constraint cannot contain a subquery.
Source: Oracle — constraint (ON DELETE clause) → Further reading: PowerKram — 1Z0-082 Database Administration I →A nightly load must synchronize PRICES from STAGE_PRICES: update the price where the product already exists and insert a row where it does not, in a single statement.
Which statement fits?
- A multi-table
INSERT ALLinto PRICES MERGE INTO prices p USING stage_prices s ON (p.product_id = s.product_id) WHEN MATCHED THEN UPDATE SET p.price = s.price WHEN NOT MATCHED THEN INSERT (product_id, price) VALUES (s.product_id, s.price)- An UPDATE of PRICES with a correlated subquery against STAGE_PRICES
CREATE TABLE prices AS SELECT * FROM stage_prices
Show answer & explanation
Correct: B. MERGE selects rows from a source and, based on the ON condition, updates matching target rows and inserts non-matching ones in one statement.
Why not the others: A only inserts, so existing products would be duplicated or rejected. C only updates, so new products are never added. D is DDL that fails because PRICES already exists, and it would replace rather than synchronize the data.
Source: Oracle — MERGE → Further reading: PowerKram — 1Z0-149 PL/SQL programming (DML inside PL/SQL) →Keep going: study and career resources
1Z0-071 rewards precise reading more than memorized syntax. These two resources help with the study approach and with where Oracle SQL skills lead afterward.
Deep dive: 1Z0-071 format, NULL and conversion traps, the areas outside our objectives, and the credential path
Exam format and the numbers that changed
Oracle’s current MyLearn page lists 1Z0-071 as 63 multiple-choice questions in 120 minutes with a 63% passing score, delivered online and proctored by Oracle University. Older prep material still quotes 73 or 78 questions and a 100-minute limit, and some still point candidates to test centers; plan around the official figures, and recheck the MyLearn page when you book because Oracle can revise them. Oracle MyLearn — 1Z0-071 exam page →
NULL behavior and conversion: the highest-yield traps
Two behaviors decide a large share of result-prediction items. First, NULL: arithmetic with a NULL returns NULL, col = NULL is never true (use IS NULL), group functions skip NULLs while COUNT(*) does not, and a single NULL inside a NOT IN list makes the whole predicate return no rows. NVL, NVL2, NULLIF, and COALESCE are the repair kit. Second, conversion: Oracle converts implicitly between character, number, and date types using session settings such as NLS_DATE_FORMAT, which is why explicit TO_CHAR, TO_NUMBER, and TO_DATE with a format mask are the reliable answers. Oracle — Nulls in SQL →
The five areas outside our six objectives
These sit on Oracle’s current topic list but are not named objectives in the PowerKram bank, so cover them from Oracle’s documentation. Views: creating, replacing, and dropping them, and which views allow DML. Sequences: NEXTVAL increments, CURRVAL is session-scoped and needs NEXTVAL first. Synonyms and indexes: what each object is for and how to create and drop it. User access: system privileges versus object privileges, WITH ADMIN OPTION versus WITH GRANT OPTION, and granting roles. Data dictionary and time zones: querying USER_, ALL_, and DBA_ views, and knowing that CURRENT_DATE and CURRENT_TIMESTAMP follow the session time zone while INTERVAL YEAR TO MONTH and INTERVAL DAY TO SECOND store durations. Inside the bank’s DDL objective, expect SET UNUSED, TRUNCATE, temporary and external tables, constraints, and the implicit commit that every DDL statement performs. Oracle — Sequence pseudocolumns →
1Z0-071 or 1Z0-171?
Oracle runs two SQL associate exams. 1Z0-071 (Oracle Database SQL) earns the Oracle Database SQL Certified Associate credential. 1Z0-171 (Oracle AI Database SQL Associate) is a separate exam with its own credential: 60 questions, 120 minutes, 65% to pass, aligned to the newer database release. Core SQL overlaps heavily, so the choice usually comes down to which credential name an employer or training plan asks for. If your plan names 1Z0-071, this page and its practice bank are built for it. Oracle MyLearn — 1Z0-171 exam page →
Where the credential leads
SQL is the base for Oracle’s database tracks. Administrators continue to 1Z0-082 Database Administration I, developers to 1Z0-149 PL/SQL, and security-focused DBAs to 1Z0-116. The full Oracle catalog is on our Oracle practice exams page. Career Hub — Data Engineer →
Oracle 1Z0-071 exam FAQ
How many questions are on 1Z0-071, how long is it, and what is the passing score?
Does Oracle publish domain weights for 1Z0-071?
Should I take 1Z0-071 or 1Z0-171?
How is 1Z0-071 delivered and what does it cost?
What should I take after 1Z0-071?
Prepare now, pay over time with Affirm & Klarna
Split the cost of full exam access into scheduled payments at checkout with Affirm or Klarna — start preparing right away without paying it all up front. Choose your plan when you check out.
Start your free 24-hour 1Z0-071 practice trial
Full access to the 1Z0-071 question bank, both study modes, source-linked explanations, and study by objective. No credit card required.
Start free trial →