1Z0-149 study materials
1Z0-149 study resources

1Z0-149 study plan

1Z0-149 · Give each week a clear focus.

8 weeks · About 7 hours per week

Week 1

Displaying Data from Multiple Tables & Retrieving Data Using the SQL SELECT Statement

  • Write and run inner-join queries across three tables using both ANSI JOIN ... ON syntax and the older comma-list WHERE style, then explain why the two produce identical result sets.

  • Distinguish inner joins from left, right, and full outer joins, and predict which rows survive each when the join column contains NULLs.

  • Construct self-joins against a single employee-style table to list each row alongside its parent row, and label the two table aliases clearly.

  • Write a SELECT statement that projects specific columns with aliases, concatenates name parts, and returns only distinct department values.

Your checkpoint

A personal query notebook of 12 join queries (at least 4 three-table, 4 outer, 2 self-join) each saved with a one-line comment stating the expected row count and why.

Week 2

Displaying Data from Multiple Tables & Using Subqueries to Solve Queries

  • Build a cross join and a natural join, then state in writing when each is useful and when each is dangerous.

  • Use a non-equijoin to map a numeric value into a banded range table, and verify the boundaries return exactly one band.

  • Write single-row and multi-row subqueries in the WHERE clause, choosing between =, IN, ANY, and ALL and justifying the operator choice.

  • Convert three of week 1's join queries into equivalent subquery formulations and confirm the row counts match.

Your checkpoint

A comparison sheet listing 6 queries in both join form and subquery form with identical output row counts recorded for each pair.

Week 3

Reporting Aggregated Data Using Group Functions & Using Single-Row Functions to Customize Output

  • Apply COUNT, SUM, AVG, MIN, and MAX with and without GROUP BY, and explain in writing why AVG ignores NULLs while COUNT(*) does not.

  • Group by two columns and use HAVING to filter groups, distinguishing clearly between WHERE row filtering and HAVING group filtering.

  • Use character functions (SUBSTR, INSTR, LPAD, TRIM, UPPER) and numeric functions (ROUND, TRUNC, MOD) to reshape output columns.

  • Apply NVL and COALESCE inside aggregates so NULL-bearing columns produce the expected totals.

Your checkpoint

A written one-page cheat sheet of the five group functions plus ten single-row functions, each with a working example query and its output.

Week 4

Reporting Aggregated Data Using Group Functions & Using Single-Row Functions to Customize Output & Restricting and Sorting Data

  • Identify and fix three queries that illegally mix an aggregate with a non-grouped column in the SELECT list.

  • Sort result sets with ORDER BY using column aliases, positional references, multiple keys, and explicit ASC/DESC and NULLS FIRST/LAST.

  • Filter rows with BETWEEN, IN, LIKE (including escaped wildcards), and IS NULL, and predict which rows each predicate excludes.

  • Use date functions (MONTHS_BETWEEN, ADD_MONTHS, LAST_DAY, NEXT_DAY, TRUNC on dates) to answer reporting-style date questions.

Your checkpoint

A timed 25-question self-made quiz on grouping, sorting, and filtering, scored and reviewed with every wrong answer rewritten correctly.

Week 5

Using Conversion Functions and Conditional Expressions & Using Set Operators

  • Apply TO_CHAR, TO_DATE, and TO_NUMBER with explicit format models, and explain when implicit conversion silently changes a result or breaks an index.

  • Use the CASE expression and DECODE to produce conditional output columns, and rewrite one as the other to show equivalence.

  • Combine result sets with UNION, UNION ALL, INTERSECT, and MINUS, and state the exact row-count difference between UNION and UNION ALL.

  • Diagnose and fix a set-operator query that fails because column counts or data types do not match across the two SELECTs.

Your checkpoint

A set-operator lab sheet with 8 queries, each annotated with the predicted row count before execution and the actual count after.

Week 6

Managing Tables Using DML Statements & Managing Indexes, Synonyms, and Sequences

  • Insert rows with INSERT ... VALUES and INSERT ... SELECT, then verify each with a targeted SELECT.

  • Update and delete rows using a subquery-driven WHERE clause, and confirm affected row counts before committing.

  • Demonstrate transaction control with COMMIT, ROLLBACK, and SAVEPOINT, showing what survives each boundary.

  • Create a sequence, use NEXTVAL and CURRVAL to populate a primary key, and create a synonym plus an index on a frequently filtered column.

Your checkpoint

A transaction log documenting one multi-statement session with a savepoint, a rollback to that savepoint, and a final commit, with before-and-after row counts.

Week 7

Managing Views and Temporary Tables & Managing Objects with Data Dictionary Views

  • Create a simple view, a view with a CHECK OPTION, and a read-only view, then test which DML each accepts.

  • Create a private temporary table and a global temporary table, and state the scope and lifetime difference between them.

  • Query USER_TABLES, USER_VIEWS, USER_INDEXES, USER_SEQUENCES, and USER_CONSTRAINTS to answer five object-inventory questions.

  • Join USER_TAB_COLUMNS to USER_TABLES to list column definitions for your own objects only.

Your checkpoint

A data dictionary report of 10 queries whose output inventories every object you created during weeks 6 and 7.

Week 8

Retrieving Data Using the SQL SELECT Statement & Restricting and Sorting Data & Using Single-Row Functions to Customize Output & Using Conversion Functions and Conditional Expressions & Reporting Aggregated Data Using Group Functions & Displaying Data from Multiple Tables & Using Subqueries to Solve Queries & Using Set Operators & Managing Tables Using DML Statements & Managing Indexes, Synonyms, and Sequences & Managing Views and Temporary Tables & Managing Objects with Data Dictionary Views

  • Complete two full-length timed practice exams under exam conditions and log every missed question by domain.

  • Re-teach the two weakest domains by rewriting each missed question as a fresh query and explaining the fix aloud.

  • Rehearse the highest-frequency traps: NULL handling in aggregates and joins, HAVING versus WHERE, UNION versus UNION ALL, and implicit conversion.

  • Confirm readiness by scoring at or above 80 percent on a third timed set covering all twelve domains.

Your checkpoint

A scored error log from three timed practice sets, with every miss mapped to its domain and a corrected query written for each.

Milestones

Week 2: You can write a three-table outer join and an equivalent multi-row subquery without notes, and the row counts match.

Week 4: You score at least 75 percent on the self-made grouping, sorting, and filtering quiz, with all misses rewritten correctly.

Week 6: You complete a savepoint-and-rollback session correctly and can explain what each transaction boundary preserved.

Week 8: You score at least 80 percent on a full-length timed practice set spanning all twelve domains, with no domain below 60 percent.