Preface Curriculum Map
Preface Curriculum Map
Preface
Curriculum Map
Introduction
Objectives I-2
Oracle9i I-3
Oracle9i Application Server I-5
Oracle9i Database I-6
Relational and Object Relational Database Management System I-7
Oracle Internet Platform I-8
System Development Life Cycle I-9
Data Storage on Different Media I-11
Relational Database Concept I-12
Definition of a Relational Database I-13
Data Models I-14
Entity Relationship Model I-15
Entity Relationship Modeling Conventions I-16
Relating Multiple Tables I-18
Relational Database Terminology I-19
Relational Database Properties I-20
Communicating with a RDBMS Using SQL I-21
Relational Database Management System I-22
SQL Statements I-23
Tables Used in the Course I-24
1 Writing Basic SQL SELECT Statements
Objectives 1-2
Capabilities of SQL SELECT Statements 1-3
Basic SELECT Statement 1-4
Selecting All Columns 1-5
Selecting Specific Columns 1-6
Writing SQL Statements 1-7
Column Heading Defaults 1-8
Arithmetic Expressions 1-9
Using Arithmetic Operators 1-10
Operator Precedence 1-11
Using Parentheses 1-13
Defining a Null Value 1-14
Null Values in Arithmetic Expressions 1-15
Defining a Column Alias 1-16
Using Column Aliases 1-17
Concatenation Operator 1-18
Using the Concatenation Operator 1-19
Literal Character Strings 1-20
Using Literal Character Strings 1-21
Duplicate Rows 1-22
Eliminating Duplicate Rows 1-23
iii
SQL and iSQL*Plus Interaction 1-24
SQL Statements Versus iSQL*Plus Commands 1-25
Overview of iSQL*Plus 1-26
Logging In to iSQL*Plus 1-27
The iSQL*Plus Environment 1-28
Displaying Table Structure 1-29
Interacting with Script Files 1-31
Summary 1-34
Practice Overview 1-35
3 Single-Row Functions
Objectives 3-2
SQL Functions 3-3
Two Types of SQL Functions 3-4
Single-Row Functions 3-5
Single-Row Functions 3-6
Character Functions 3-7
Character Functions 3-8
Case Manipulation Functions 3-9
Using Case Manipulation Functions 3-10
iv
Character-Manipulation Functions 3-11
Using the Character-Manipulation Functions 3-12
Number Functions 3-13
Using the ROUND Function 3-14
Using the TRUNC Function 3-15
Using the MOD Function 3-16
Working with Dates 3-17
Arithmetic with Dates 3-19
Using Arithmetic Operators with Dates 3-20
Date Functions 3-21
Using Date Functions 3-22
Practice 3, Part One: Overview 3-24
Conversion Functions 3-25
Implicit Data Type Conversion 3-26
Explicit Data Type Conversion 3-28
Using the TO_CHAR Function with Dates 3-31
Elements of the Date Format Model 3-32
Using the TO_CHAR Function with Dates 3-36
Using the TO_CHAR Function with Numbers 3-37
Using the TO_NUMBER and TO_DATE Functions 3-39
RR Date Format 3-40
Example of RR Date Format 3-41
Nesting Functions 3-42
General Functions 3-44
NVL Function 3-45
Using the NVL Function 3-46
Using the NVL2 Function 3-47
Using the NULLIF Function 3-48
Using the COALESCE Function 3-49
Conditional Expressions 3-51
The CASE Expression 3-52
Using the CASE Expression 3-53
The DECODE Function 3-54
Using the DECODE Function 3-55
Summary 3-57
Practice 3, Part Two: Overview 3-58
v
Retrieving Records with Equijoins 4-9
Additional Search Conditions Using the AND Operator 4-10
Qualifying Ambiguous Column Names 4-11
Using Table Aliases 4-12
Joining More than Two Tables 4-13
Non-Equijoins 4-14
Retrieving Records with Non-Equijoins 4-15
Outer Joins 4-16
Outer Joins Syntax 4-17
Using Outer Joins 4-18
Self Joins 4-19
Joining a Table to Itself 4-20
Practice 4, Part One: Overview 4-21
Joining Tables Using SQL: 1999 Syntax 4-22
Creating Cross Joins 4-23
Creating Natural Joins 4-24
Retrieving Records with Natural Joins 4-25
Creating Joins with the USING Clause 4-26
Retrieving Records with the USING Clause 4-27
Creating Joins with the ON Clause 4-28
Retrieving Records with the ON Clause 4-29
Creating Three-Way Joins with the ON Clause 4-30
INNER Versus OUTER Joins 4-31
LEFT OUTER JOIN 4-32
RIGHT OUTER JOIN 4-33
FULL OUTER JOIN 4-34
Additional Conditions 4-35
Summary 4-36
Practice 4, Part Two: Overview 4-37
vi
Using the GROUP BY Clause on Multiple Columns 5-18
Illegal Queries Using Group Functions 5-19
Excluding Group Results 5-21
Excluding Group Results: The HAVING Clause 5-22
Using the HAVING Clause 5-23
Nesting Group Functions 5-25
Summary 5-26
Practice 5 Overview 5-27
6 Subqueries
Objectives 6-2
Using a Subquery to Solve a Problem 6-3
Subquery Syntax 6-4
Using a Subquery 6-5
Guidelines for Using Subqueries 6-6
Types of Subqueries 6-7
Single-Row Subqueries 6-8
Executing Single-Row Subqueries 6-9
Using Group Functions in a Subquery 6-10
The HAVING Clause with Subqueries 6-11
What is Wrong with this Statement? 6-12
Will this Statement Return Rows? 6-13
Multiple-Row Subqueries 6-14
Using the ANY Operator in Multiple-Row Subqueries 6-15
Using the ALL Operator in Multiple-Row Subqueries 6-16
Null Values in a Subquery 6-17
Summary 6-18
Practice 6 Overview 6-19
vii
COLUMN Format Models 7-20
Using the BREAK Command 7-21
Using the TTITLE and BTITLE Commands 7-22
Creating a Script File to Run a Report 7-24
Sample Report 7-26
Summary 7-28
Practice 7 Overview 7-29
8 Manipulating Data
Objectives 8-2
Data Manipulation Language 8-3
Adding a New Row to a Table 8-4
The INSERT Statement Syntax 8-5
Inserting New Rows 8-6
Inserting Rows with Null Values 8-7
Inserting Special Values 8-8
Inserting Specific Date Values 8-9
Creating a Script 8-10
Copying Rows from Another Table 8-11
Changing Data in a Table 8-12
The UPDATE Statement Syntax 8-13
Updating Rows in a Table 8-14
Updating Two Columns with a Subquery 8-15
Updating Rows Based on Another Table 8-16
Updating Rows: Integrity Constraint Error 8-17
Removing a Row from a Table 8-18
The DELETE Statement 8-19
Deleting Rows from a Table 8-20
Deleting Rows Based on Another Table 8-21
Deleting Rows: Integrity Constraint Error 8-22
Using a Subquery in an INSERT Statement 8-23
Using the WITH CHECK OPTION Keyword on DML Statements 8-25
Overview of the Explicit Default Feature 8-26
Using Explicit Default Values 8-27
The MERGE Statement 8-28
The MERGE Statement Syntax 8-29
Merging Rows 8-30
Database Transactions 8-32
Advantages of COMMIT and ROLLBACK Statements 8-34
Controlling Transactions 8-35
Rolling Back Changes to a Marker 8-36
Implicit Transaction Processing 8-37
State of the Data Before COMMIT or ROLLBACK 8-38
State of the Data after COMMIT 8-39
Committing Data 8-40
viii
State of the Data After ROLLBACK 8-41
Statement-Level Rollback 8-42
Read Consistency 8-43
Implementation of Read Consistency 8-44
Locking 8-45
Implicit Locking 8-46
Summary 8-47
Practice 8 Overview 8-48
Read Consistency Example 8-53
ix
10 Including Constraints
Objectives 10-2
What are Constraints? 10-3
Constraint Guidelines 10-4
Defining Constraints 10-5
The NOT NULL Constraint 10-7
The UNIQUE Constraint 10-9
The PRIMARY KEY Constraint 10-11
The FOREIGN KEY Constraint 10-13
FOREIGN KEY Constraint Keywords 10-15
The CHECK Constraint 10-16
Adding a Constraint Syntax 10-17
Adding a Constraint 10-18
Dropping a Constraint 10-19
Disabling Constraints 10-20
Enabling Constraints 10-21
Cascading Constraints 10-22
Viewing Constraints 10-24
Viewing the Columns Associated with Constraints 10-25
Summary 10-26
Practice 10 Overview 10-27
11 Creating Views
Objectives 11-2
Database Objects 11-3
What is a View? 11-4
Why use Views? 11-5
Simple Views and Complex Views 11-6
Creating a View 11-7
Retrieving Data from a View 11-10
Querying a View 11-11
Modifying a View 11-12
Creating a Complex View 11-13
Rules for Performing DML Operations on a View 11-14
Using the WITH CHECK OPTION Clause 11-17
Denying DML Operations 11-18
Removing a View 11-20
Inline Views 11-21
Top-N Analysis 11-22
Performing Top-N Analysis 11-23
Example of Top-N Analysis 11-24
Summary 11-25
Practice 11 Overview 11-26
x
12 Other Database Objects
Objectives 12-2
Database Objects 12-3
What is a Sequence? 12-4
The CREATE SEQUENCE Statement Syntax 12-5
Creating a Sequence 12-6
Confirming Sequences 12-7
NEXTVAL and CURRVAL Pseudocolumns 12-8
Using a Sequence 12-10
Modifying a Sequence 12-12
Guidelines for Modifying a Sequence 12-13
Removing a Sequence 12-14
What is an Index? 12-15
How Are Indexes Created? 12-16
Creating an Index 12-17
When to Create an Index 12-18
When Not to Create an Index 12-19
Confirming Indexes 12-20
Function-Based Indexes 12-21
Removing an Index 12-23
Synonyms 12-24
Creating and Removing Synonyms 12-25
Summary 12-26
Practice 12 Overview 12-27
xi
14 SQL Workshop
Workshop Overview 14-2
xii
CUBE Operator 17-9
CUBE Operator: Example 17-10
GROUPING Function 17-11
GROUPING Function: Example 17-12
GROUPING SETS 17-13
GROUPING SETS: Example 17-15
Composite Columns 17-17
Composite Columns: Example 17-19
Concatenated Groupings 17-21
Concatenated Groupings Example 17-22
Summary 17-23
Practice 17 Overview 17-24
18 Advanced Subqueries
Objectives 18-2
What Is a Subquery? 18-3
Subqueries 18-4
Using a Subquery 18-5
Multiple-Column Subqueries 18-6
Column Comparisons 18-7
Pairwise Comparison Subquery 18-8
Nonpairwise Comparison Subquery 18-9
Using a Subquery in the FROM Clause 18-10
Scalar Subquery Expressions 18-11
Scalar Subqueries: Examples 18-12
Correlated Subqueries 18-14
Using Correlated Subqueries 18-16
Using the EXISTS Operator 18-18
Using the NOT EXISTS Operator 18-20
Correlated UPDATE 18-21
Correlated DELETE 18-24
The WITH Clause 18-26
WITH Clause: Example 18-27
Summary 18-29
Practice 18 Overview 18-31
19 Hierarchical Retrieval
Objectives 19-2
Sample Data from the EMPLOYEES Table 19-3
Natural Tree Structure 19-4
Hierarchical Queries 19-5
Walking the Tree 19-6
Walking the Tree: From the Bottom Up 19-8
Walking the Tree: From the Top Down 19-9
Ranking Rows with the LEVEL Pseudocolumn 19-10
xiii
Formatting Hierarchical Reports Using LEVEL and LPAD 19-11
Pruning Branches 19-13
Summary 19-14
Practice 19 Overview 19-15
A Practice solutions
Index
Additional Practices
xiv