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
Outer Joins in Oracle SQL

Outer Joins in Oracle SQL

Outer joins in Oracle SQL are used to retrieve data from multiple tables, including rows that do not have matching values in the joined columns. Unlike inner joins, which only return rows where there is a match in both tables, outer joins can return unmatched rows from one or both tables.

Key Concepts

1. LEFT OUTER JOIN

A LEFT OUTER JOIN returns all rows from the left table (the first table mentioned in the join clause) and the matched rows from the right table. If there is no match, the result is NULL on the side of the right table.

Example:

Retrieving all employees and their departments, including employees without a department:

SELECT Employees.EmployeeID, Employees.FirstName, Departments.DepartmentName FROM Employees LEFT OUTER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

2. RIGHT OUTER JOIN

A RIGHT OUTER JOIN returns all rows from the right table (the second table mentioned in the join clause) and the matched rows from the left table. If there is no match, the result is NULL on the side of the left table.

Example:

Retrieving all departments and their employees, including departments without employees:

SELECT Departments.DepartmentName, Employees.EmployeeID, Employees.FirstName FROM Employees RIGHT OUTER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

3. FULL OUTER JOIN

A FULL OUTER JOIN returns all rows when there is a match in either left or right table. If there is no match, the result is NULL on the side where there is no match.

Example:

Retrieving all employees and departments, including those without a match in the other table:

SELECT Employees.EmployeeID, Employees.FirstName, Departments.DepartmentName FROM Employees FULL OUTER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

4. CROSS JOIN

A CROSS JOIN returns the Cartesian product of the two tables, meaning it combines each row from the first table with each row from the second table. This type of join does not require a join condition.

Example:

Retrieving all possible combinations of employees and departments:

SELECT Employees.EmployeeID, Employees.FirstName, Departments.DepartmentName FROM Employees CROSS JOIN Departments;

5. SELF JOIN

A SELF JOIN is a join of a table with itself. This is useful when the table contains hierarchical data or data that references other rows within the same table.

Example:

Retrieving employees and their managers, where both are stored in the same table:

SELECT e.EmployeeID, e.FirstName, m.FirstName AS ManagerName FROM Employees e LEFT OUTER JOIN Employees m ON e.ManagerID = m.EmployeeID;

6. ANTI-JOIN

An ANTI-JOIN is used to find rows in one table that do not have a corresponding row in another table. This can be achieved using a LEFT OUTER JOIN and filtering for NULL values in the joined table.

Example:

Finding employees who do not belong to any department:

SELECT Employees.EmployeeID, Employees.FirstName FROM Employees LEFT OUTER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID WHERE Departments.DepartmentID IS NULL;

7. SEMI-JOIN

A SEMI-JOIN is used to find rows in one table that have a corresponding row in another table. This can be achieved using an EXISTS clause or an IN clause.

Example:

Finding employees who belong to a department:

SELECT EmployeeID, FirstName FROM Employees WHERE EXISTS (SELECT 1 FROM Departments WHERE Employees.DepartmentID = Departments.DepartmentID);

By understanding and mastering these outer join concepts, you can effectively retrieve and analyze data from multiple tables in Oracle SQL, ensuring that you capture all relevant information, including unmatched rows.