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
Using Subqueries in Oracle SQL

Using Subqueries in Oracle SQL

Subqueries are queries embedded within another query, often used to retrieve data that will be used in the main query. They are powerful tools for performing complex data retrieval and manipulation tasks. Understanding subqueries is crucial for mastering advanced SQL techniques.

1. Single-Row Subqueries

Single-row subqueries return a single row of data. They are typically used with comparison operators like =, >, <, >=, <=, and <>. These subqueries are useful when you need to compare a value from the main query with a single value from the subquery.

Example:

Suppose you want to find the employee who has the highest salary. You can use a single-row subquery to achieve this:

SELECT FirstName, LastName, Salary FROM Employees WHERE Salary = (SELECT MAX(Salary) FROM Employees);

2. Multi-Row Subqueries

Multi-row subqueries return multiple rows of data. They are used with multi-row operators like IN, ANY, and ALL. These subqueries are useful when you need to compare a value from the main query with multiple values from the subquery.

Example:

Suppose you want to find all employees who work in departments located in 'New York'. You can use a multi-row subquery to achieve this:

SELECT FirstName, LastName FROM Employees WHERE DepartmentID IN (SELECT DepartmentID FROM Departments WHERE Location = 'New York');

3. Correlated Subqueries

Correlated subqueries are subqueries that depend on the outer query for their values. They are executed once for each row processed by the outer query. These subqueries are useful when the subquery needs to refer to a column from the outer query.

Example:

Suppose you want to find all employees whose salary is greater than the average salary of their department. You can use a correlated subquery to achieve this:

SELECT FirstName, LastName, Salary FROM Employees e WHERE Salary > (SELECT AVG(Salary) FROM Employees WHERE DepartmentID = e.DepartmentID);

4. Nested Subqueries

Nested subqueries are subqueries that are embedded within another subquery. They are useful for performing complex data retrieval tasks that require multiple levels of data filtering or aggregation.

Example:

Suppose you want to find the department with the highest average salary. You can use a nested subquery to achieve this:

SELECT DepartmentName FROM Departments WHERE DepartmentID = ( SELECT DepartmentID FROM Employees GROUP BY DepartmentID HAVING AVG(Salary) = ( SELECT MAX(AVG(Salary)) FROM Employees GROUP BY DepartmentID ) );

Understanding and mastering subqueries is essential for performing complex data retrieval and manipulation tasks in Oracle SQL. By using single-row, multi-row, correlated, and nested subqueries, you can efficiently solve a wide range of data-related problems.