Writing Basic SQL SELECT Statements
Basic SELECT Statement
Selecting All Columns
Selecting Specific Columns
Writing SQL Statements
Column Heading Defaults
Arithmetic Expressions
Using Arithmetic Operators
Operator Precedence
Using Parentheses
Defining a Null Value
Null Values in Arithmetic Expressions
Defining a Column Alias
Using Column Aliases
Concatenation Operator
Using the Concatenation Operator
Literal Character Strings
Using Literal Character Strings
Duplicate Rows
Eliminating Duplicate Rows
Restricting and Sorting Data
Limiting Rows Using a Selection
Limiting the Rows Selected
Using the WHERE Clause
Character Strings and Dates
Comparison Conditions
Using Comparison Conditions
Other Comparison Conditions
Using the BETWEEN Condition
Using the IN Condition
Using the LIKE Condition
Using the NULL Conditions
Logical Conditions
Using the AND Operator
Using the OR Operator
Using the NOT Operator
Rules of Precedence
ORDER BY Clause
Sorting in Descending Order
Sorting by Column Alias
Sorting by Multiple Columns
Single-Row Functions
SQL Function
Two Types of SQL Functions
Single-Row Functions
Single-Row Functions
Character Functions
Character Functions
Case Manipulation Functions
Using Case Manipulation Functions
Character-Manipulation Functions
Using the Character-Manipulation Functions
Number Functions
Using the ROUND Function
Using the TRUNC Function
Using the MOD Function
Working with Dates
Arithmetic with Dates
Using Arithmetic Operators with Dates
Date Functions
Using Date Functions
Practice 3, Part One:
Conversion Functions
Implicit Data Type Conversion
Explicit Data Type Conversion
Using the TO_CHAR Function with Dates
Elements of the Date Format Model
Using the TO_CHAR Function with Dates
Using the TO_CHAR Function with Numbers
Using the TO_NUMBER and TO_DATE Functions
RR Date Format
Example of RR Date Format
Nesting Functions
General Functions
NVL Function
Using the NVL Function
Using the NVL2 Function
Using the NULLIF Function
Using the COALESCE Function
Conditional Expressions
The CASE Expression
Using the CASE Expression
The DECODE Function
Using the DECODE Function
Displaying Data from Multiple Tables
Obtaining Data from Multiple Tables
Cartesian Products
Generating a Cartesian Product
Types of Joins
Joining Tables Using Oracle Syntax
What is an Equijoin?
Retrieving Records with Equijoins
Additional Search Conditions Using the AND Operator
Qualifying Ambiguous Column Names
Using Table Aliases
Joining More than Two Tables
Non-Equijoins
Retrieving Records with Non-Equijoins
Outer Joins Outer Joins Syntax
Using Outer Joins
Self Joins
Joining a Table to Itself
Joining Tables Using SQL: 1999 Syntax
Creating Cross Joins
Creating Natural Joins
Retrieving Records with Natural Joins
Creating Joins with the USING Clause
Retrieving Records with the USING Clause
Creating Joins with the ON Clause
Retrieving Records with the ON Clause
Creating Three-Way Joins with the ON Clause
INNER Versus OUTER Joins
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL OUTER JOIN
Additional Conditions
Aggregating Data Using Group Functions
What Are Group Functions?
Types of Group Functions
Group Functions Syntax
Using the AVG and SUM Functions
Using the MIN and MAX Functions
Using the COUNT Function
Using the DISTINCT Keyword
Group Functions and Null Values
Using the NVL Function with Group Functions
Creating Groups of Data
Creating Groups of Data: The GROUP BY Clause Syntax
Using the GROUP BY Clause
Grouping by More Than One Column
Using the GROUP BY Clause on Multiple Columns
Illegal Queries Using Group Functions
Excluding Group Results
Excluding Group Results: The HAVING Clause
Using the HAVING Clause
Nesting Group Functions
Subqueries
Objectives
Using a Subquery to Solve a Problem
Subquery Syntax
Using a Subquery
Guidelines for Using Subqueries
Types of Subqueries
Single-Row Subqueries
Executing Single-Row Subqueries
Using Group Functions in a Subquery
The HAVING Clause with Subqueries
What is Wrong with this Statement?
Will this Statement Return Rows?
Multiple-Row Subqueries
Using the ANY Operator in Multiple-Row Subqueries
Using the ALL Operator in Multiple-Row Subqueries
Null Values in a Subquery
Manipulating Data
Data Manipulation Language
Adding a New Row to a Table
The INSERT Statement Syntax 8-5
Inserting New Rows
Inserting Rows with Null Values
Inserting Special Values
Inserting Specific Date Values
Creating a Script
Copying Rows from Another Table
Changing Data in a Table
The UPDATE Statement Syntax
Updating Rows in a Table
Updating Two Columns with a Subquery
Updating Rows Based on Another Table
Updating Rows: Integrity Constraint Error
Removing a Row from a Table
The DELETE Statement
Deleting Rows from a Table
Deleting Rows Based on Another Table
Deleting Rows: Integrity Constraint Error
Using a Subquery in an INSERT Statement
Using the WITH CHECK OPTION Keyword on DML Statements
Overview of the Explicit Default Feature
Using Explicit Default Values
The MERGE Statement
The MERGE Statement Syntax
Merging Rows
Database Transactions
Advantages of COMMIT and ROLLBACK Statements
Controlling Transactions
Rolling Back Changes to a Marker
Implicit Transaction Processing
State of the Data Before COMMIT or ROLLBACK
State of the Data after COMMIT
Committing Data
State of the Data After ROLLBACK
Statement-Level Rollback
Read Consistency
Implementation of Read Consistency
Locking
Implicit Locking
Read Consistency Example
Creating and Managing Tables
Database Objects
Naming Rules
The CREATE TABLE Statement
Referencing Another User?s Tables
The DEFAULT Option
Creating Tables
Tables in the Oracle Database
Querying the Data Dictionary 9-10
Data Types
DateTime Data Types
TIMESTAMP WITH TIME ZONE Data Type
TIMESTAMP WITH LOCAL TIME Data Type
INTERVAL YEAR TO MONTH Data Type
INTERVAL DAY TO SECOND Data Type
Creating a Table by Using a Subquery Syntax
Creating a Table by Using a Subquery
The ALTER TABLE Statement
Adding a Column
Modifying a Column
Dropping a Column
The SET UNUSED Option
Dropping a Table
Changing the Name of an Object
Truncating a Table
Adding Comments to a Table
Including Constraints
What are Constraints?
Constraint Guidelines
Defining Constraints
The NOT NULL Constraint
The UNIQUE Constraint
The PRIMARY KEY Constraint
The FOREIGN KEY Constraint
FOREIGN KEY Constraint Keywords
The CHECK Constraint
Adding a Constraint Syntax
Adding a Constraint
Dropping a Constraint
Disabling Constraints
Enabling Constraints
Cascading Constraints
Viewing Constraints
Viewing the Columns Associated with Constraints
Creating Views
Database Objects
What is a View?
Why use Views?
Simple Views and Complex Views
Creating a View
Retrieving Data from a View
Querying a View
Modifying a View
Creating a Complex View
Rules for Performing DML Operations on a View
Using the WITH CHECK OPTION Clause
Denying DML Operations
Removing a View
Inline Views
Top-N Analysis
Performing Top-N Analysis
Example of Top-N Analysis
Other Database Objects
Database Objects
What is a Sequence?
The CREATE SEQUENCE Statement Syntax
Creating a Sequence
Confirming Sequences
NEXTVAL and CURRVAL Pseudocolumns
Using a Sequence
Modifying a Sequence
Guidelines for Modifying a Sequence
Removing a Sequence
What is an Index?
How Are Indexes Created?
Creating an Index
When to Create an Index
When Not to Create an Index
Confirming Indexes
Function-Based Indexes
Removing an Index
Creating and Removing Synonyms
Controlling User Access
Objectives
Controlling User Access
Privileges
System Privileges
Creating Users
User System Privileges
Granting System Privileges
What is a Role?
Creating and Granting Privileges to a Role
Changing Your Password
Object Privileges
Granting Object Privileges
Using the WITH GRANT OPTION and PUBLIC Keywords
Confirming Privileges Granted
How to Revoke Object Privileges
Revoking Object Privileges
Database Links
SQL Workshop
Workshop Overview
Using SET Operators
The SET Operators
Tables Used in This Lesson
The UNION Operator
Using the UNION Operator
The UNION ALL Operator
Using the UNION ALL Operator
The INTERSECT Operator
Using the INTERSECT Operator
The MINUS Operator
SET Operator Guidelines
The Oracle Server and SET Operators
Matching the SELECT Statements
Controlling the Order of Rows
Enhancements to the GROUP BY Clause
Review of Group Functions
Review of the GROUP BY Clause
Review of the HAVING Clause
GROUP BY with ROLLUP and CUBE Operators
ROLLUP Operator
ROLLUP Operator Example
CUBE Operator
CUBE Operator: Example
GROUPING Function
GROUPING Function: Example
GROUPING SETS
GROUPING SETS: Example
Composite Columns
Composite Columns: Example
Concatenated Groupings
Concatenated Groupings Example
Advanced Subqueries
What Is a Subquery?
Subqueries
Using a Subquery
Multiple-Column Subqueries
Column Comparisons
Pairwise Comparison Subquery
Nonpairwise Comparison Subquery
Using a Subquery in the FROM Clause
Scalar Subquery Expressions
Scalar Subqueries: Examples
Correlated Subqueries
Using Correlated Subqueries
Using the EXISTS Operator
Using the NOT EXISTS Operator
Correlated UPDATE
Correlated DELETE
The WITH Clause
WITH Clause: Example
Hierarchical Retrieval
Sample Data from the EMPLOYEES Table
Natural Tree Structure
Hierarchical Queries
Walking the Tree
Walking the Tree: From the Bottom Up
Walking the Tree: From the Top Down
Ranking Rows with the LEVEL Pseudocolumn
Formatting Hierarchical Reports Using LEVEL and LPAD
Pruning Branches
Extensions to DML and DDL Statements
Review of the INSERT Statement
Review of the UPDATE Statement
Overview of Multitable INSERT Statements
Overview of Multitable INSERT Statements
Types of Multitable INSERT Statements
Multitable INSERT Statements
Unconditional INSERT ALL
Conditional INSERT ALL
Conditional FIRST INSERT
Pivoting INSERT
External Tables
Creating an External Table
Example of Creating an External Table
Querying External Tables
CREATE INDEX with CREATE TABLE Statement
Part I: Programming in PL/SQL
Introduction to PL/SQL
What Is PL/SQL?
The Origins of PL/SQL
About PL/SQL Versions
Resources for PL/SQL Developers
Creating and Running PL/SQL Code
SQL*Plus
Performing Essential PL/SQL Tasks
Calling PL/SQL from Other Languages
Language Fundamentals
PL/SQL Block Structure
The PL/SQL Character Set
Identifiers
Literals
The Semicolon Delimiter
Comments
The PRAGMA Keyword
Labels
Part II: PL/SQL Program Structure
Conditional and Sequential Control
IF Statements
CASE Statements and Expressions
The GOTO Statement
The NULL Statement
Iterative Processing with Loops
Loop Basics
The Simple Loop
The WHILE Loop
The Numeric FOR Loop
The Cursor FOR Loop
Loop Labels
Tips for Iterative Processing
Exception Handlers
Exception-Handling Concepts and Terminology
Defining Exceptions
Raising Exceptions
Handling Exceptions
Building an Effective Error Management Architecture
Making the Most of PL/SQL Error Management
Part III: PL/SQL Program Data
Working with Program Data
Naming Your Program Data
Overview of PL/SQL Datatypes
Declaring Program Data
Programmer-Defined Subtypes
Conversion Between Datatypes
Strings
String Datatypes
Working with Strings
String Function Quick Reference
Numbers
Numeric Datatypes
Number Conversions
Numeric Functions
Records
Records in PL/SQL
Collections
Collections Overview
Collection Methods (Built-Ins)
Working with Collections
Nested Table Multiset Operations
Maintaining Schema-Level Collections
Miscellaneous Datatypes
The BOOLEAN Datatype
The RAW Datatype
The UROWID and ROWID Datatypes
The LOB Datatypes
Working with LOBs
Predefined Object Types
Part IV: SQL in PL/SQL
DML and Transaction Management
DML in PL/SQL
Bulk DML with the FORALL Statement
Transaction Management
Autonomous Transactions
Data Retrieval
Cursor Basics
Working with Implicit Cursors
Working with Explicit Cursors
BULK COLLECT
SELECT ... FOR UPDATE
Cursor Variables and REF CURSORs
Cursor Expressions
Procedures, Functions, and Parameters
Procedures
Functions
Parameters
Local Modules
Module Overloading
Forward Declarations
Advanced Topics
Go Forth and Modularize!
Packages
Why Packages?
Rules for Building Packages
Rules for Calling Packaged Elements
Working with Package Data
When to Use Packages
Packages and Object Types
Triggers
DML Triggers
DDL Triggers
Database Event Triggers
INSTEAD OF Triggers
AFTER SUSPEND Triggers
Maintaining Triggers
Managing PL/SQL Code
Managing Code in the Database
Using Native Compilation
Using the Optimizing Compiler and Compile-Time Warnings
Conditional Compilation
Testing PL/SQL Programs
Debugging PL/SQL Programs
Tuning PL/SQL Programs
Protecting Stored Code
I/O and PL/SQL
Displaying Information
Reading and Writing Files
Sending Email
Working with Web-Based Data (HTTP)
Other Types of I/O Available in PL/SQL