Oracle Database SQL Certified Associate
1 Introduction to SQL
1-1 Overview of SQL
1-2 History of SQL
1-3 SQL Standards
2 SQL Data Types
2-1 Numeric Data Types
2-2 Character Data Types
2-3 Date and Time Data Types
2-4 Large Object (LOB) Data Types
2-5 Miscellaneous Data Types
3 Creating and Managing Tables
3-1 Creating Tables
3-2 Modifying Tables
3-3 Dropping Tables
3-4 Table Constraints
3-5 Temporary Tables
4 Data Manipulation Language (DML)
4-1 Inserting Data
4-2 Updating Data
4-3 Deleting Data
4-4 Selecting Data
4-5 Using Subqueries
5 Data Control Language (DCL)
5-1 Granting Privileges
5-2 Revoking Privileges
6 Data Definition Language (DDL)
6-1 Creating Tables
6-2 Altering Tables
6-3 Dropping Tables
6-4 Creating Indexes
6-5 Dropping Indexes
6-6 Creating Views
6-7 Dropping Views
7 SQL Functions
7-1 Single-Row Functions
7-2 Aggregate Functions
7-3 Group Functions
7-4 Analytical Functions
8 Joins and Subqueries
8-1 Inner Joins
8-2 Outer Joins
8-3 Self-Joins
8-4 Cross Joins
8-5 Subqueries
9 Set Operators
9-1 UNION
9-2 UNION ALL
9-3 INTERSECT
9-4 MINUS
10 Grouping and Aggregation
10-1 GROUP BY Clause
10-2 HAVING Clause
10-3 ROLLUP and CUBE
10-4 GROUPING SETS
11 Transactions and Concurrency
11-1 Transaction Control Statements
11-2 Locking and Concurrency
11-3 Isolation Levels
12 Oracle SQL Developer
12-1 Overview of Oracle SQL Developer
12-2 Using SQL Worksheet
12-3 Managing Connections
12-4 Running Scripts
13 Advanced SQL Topics
13-1 Recursive Queries
13-2 Model Clause
13-3 PIVOT and UNPIVOT
13-4 Flashback Query
14 Performance Tuning
14-1 Query Optimization
14-2 Indexing Strategies
14-3 Analyzing Query Performance
15 Security and Auditing
15-1 User Management
15-2 Role Management
15-3 Auditing SQL Statements
16 Backup and Recovery
16-1 Backup Strategies
16-2 Recovery Strategies
16-3 Using RMAN
17 Oracle Database Architecture
17-1 Overview of Oracle Database Architecture
17-2 Memory Structures
17-3 Process Structures
17-4 Storage Structures
18 PLSQL Basics
18-1 Introduction to PLSQL
18-2 PLSQL Block Structure
18-3 Variables and Data Types
18-4 Control Structures
18-5 Exception Handling
19 Oracle SQL Certification Exam Preparation
19-1 Exam Objectives
19-2 Sample Questions
19-3 Practice Tests
19-4 Exam Tips
Transaction Control Statements in Oracle SQL

Transaction Control Statements in Oracle SQL

Key Concepts

Transaction Control Statements in Oracle SQL are essential for managing the execution of SQL statements as a single unit of work. Understanding the following key concepts is crucial for effectively using these statements:

1. COMMIT

The COMMIT statement permanently saves all changes made in the current transaction to the database. Once a COMMIT is issued, the changes are visible to other users and cannot be rolled back.

Example:

After performing a series of updates, you can save all changes with a COMMIT:

UPDATE Employees SET Salary = Salary * 1.1 WHERE Department = 'Sales'; COMMIT;

2. ROLLBACK

The ROLLBACK statement undoes all changes made in the current transaction and restores the database to its state before the transaction began. This is useful for error recovery.

Example:

If an error occurs during a transaction, you can undo all changes with a ROLLBACK:

DELETE FROM Orders WHERE OrderDate < '2023-01-01'; ROLLBACK;

3. SAVEPOINT

The SAVEPOINT statement creates a marker within a transaction that allows for partial rollbacks. This is useful for complex transactions where you may want to undo only a portion of the changes.

Example:

You can create a savepoint and later rollback to that point if needed:

SAVEPOINT BeforeUpdate; UPDATE Employees SET Salary = Salary * 1.1 WHERE Department = 'Sales'; ROLLBACK TO SAVEPOINT BeforeUpdate;

4. SET TRANSACTION

The SET TRANSACTION statement is used to set transaction characteristics such as isolation level and read/write mode. This allows for fine-tuning the behavior of the transaction.

Example:

You can set a transaction to be read-only to ensure no changes are made:

SET TRANSACTION READ ONLY; SELECT * FROM Employees;

5. LOCK TABLE

The LOCK TABLE statement is used to lock tables to prevent other users from modifying the data while a transaction is in progress. This ensures data integrity during complex operations.

Example:

You can lock a table to prevent updates while performing a critical operation:

LOCK TABLE Employees IN EXCLUSIVE MODE; UPDATE Employees SET Salary = Salary * 1.1 WHERE Department = 'Sales'; COMMIT;

Detailed Explanation

1. COMMIT

The COMMIT statement is used to finalize a transaction by saving all changes to the database. Once committed, the changes are permanent and visible to other users. For example:

UPDATE Employees SET Salary = Salary * 1.1 WHERE Department = 'Sales'; COMMIT;

2. ROLLBACK

The ROLLBACK statement is used to undo all changes made in the current transaction. This is useful for error recovery and ensuring data integrity. For example:

DELETE FROM Orders WHERE OrderDate < '2023-01-01'; ROLLBACK;

3. SAVEPOINT

The SAVEPOINT statement allows for partial rollbacks within a transaction. This is useful for complex transactions where you may want to undo only a portion of the changes. For example:

SAVEPOINT BeforeUpdate; UPDATE Employees SET Salary = Salary * 1.1 WHERE Department = 'Sales'; ROLLBACK TO SAVEPOINT BeforeUpdate;

4. SET TRANSACTION

The SET TRANSACTION statement is used to set transaction characteristics such as isolation level and read/write mode. This allows for fine-tuning the behavior of the transaction. For example:

SET TRANSACTION READ ONLY; SELECT * FROM Employees;

5. LOCK TABLE

The LOCK TABLE statement is used to lock tables to prevent other users from modifying the data while a transaction is in progress. This ensures data integrity during complex operations. For example:

LOCK TABLE Employees IN EXCLUSIVE MODE; UPDATE Employees SET Salary = Salary * 1.1 WHERE Department = 'Sales'; COMMIT;

Examples and Analogies

Example 1: Banking Transaction

Imagine a banking transaction where you transfer money from one account to another. You would use COMMIT to finalize the transaction and ensure the changes are permanent:

UPDATE Accounts SET Balance = Balance - 100 WHERE AccountID = 123; UPDATE Accounts SET Balance = Balance + 100 WHERE AccountID = 456; COMMIT;

Example 2: Order Processing

In an order processing system, you might use ROLLBACK to undo an order if an error occurs during processing:

INSERT INTO Orders (OrderID, CustomerID, OrderDate) VALUES (1, 123, SYSDATE); ROLLBACK;

Example 3: Complex Data Update

For a complex data update, you can use SAVEPOINT to create a marker and later rollback to that point if needed:

SAVEPOINT BeforeUpdate; UPDATE Employees SET Salary = Salary * 1.1 WHERE Department = 'Sales'; ROLLBACK TO SAVEPOINT BeforeUpdate;

Example 4: Read-Only Transaction

In a reporting system, you might use SET TRANSACTION to set a transaction to be read-only to ensure no changes are made:

SET TRANSACTION READ ONLY; SELECT * FROM Employees;

Example 5: Critical Data Update

For a critical data update, you can use LOCK TABLE to prevent other users from modifying the data while the transaction is in progress:

LOCK TABLE Employees IN EXCLUSIVE MODE; UPDATE Employees SET Salary = Salary * 1.1 WHERE Department = 'Sales'; COMMIT;