1Z0-149 study plan
1Z0-149 · Give each week a clear focus.
8 weeks · About 7 hours per week
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.
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.
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.
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.
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.
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.
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.
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.