Você está na página 1de 9

Introduction to Oracle SQL and PL/SQL

Syllabus
2001-2014 by Donald K. Burleson
Day 1: Introduction to SQL & SQL*Plus
LESSON 1 1: Review of Basic SQL and history of SQL:

Intro to the class


History of SQL
Evolution of SQL
Exercise - declarative SQL
Review of pubs database

SQL constructs:

Select
Project
Join

Describing Oracle tables


Exercise investigate the pubs database
Restricting row returns
Where clause
Exercise write a sample query in the pubs database
Complex Boolean logic in SQL
ROWID restrictions
Exercise write a sample query in the pubs database
LESSON 1-2: Entity/relation modeling

Types of data relationships


Data normalization
One-to-many relationships
One-to-many relationships
Many-to-many relationships
Recursive many-to-many relationships

LESSON 1-3: Optimizing Oracle SQL

Steps in SQL optimization


Parsing a SQL statement
First_rows vs all_rows optimization
Oracle optimizer overview
Management issues with system-wide optimization
Different modes of SQL optimization
Bi-modal databases
Rule-based optimization
Cost-based optimization
All rows optimization
First_rows optimization
Exercise display and change optimizer_mode

SQL Semantic Analysis


Generating the execution plan
Using optimizer plan stability
Using the v$sql view
Using the v$sql_plan view
Exercise Query the library cache

LESSON 1 4: Using SQL*Plus


Creating basic reports
Exercise format a simple query in the pubs database

Using the set commands


Adjusting line output
Setting pagesize and linesize
Echo
Feedback
Verify
termout
Exercise set the SQL*plus environment
Column wrapping
Exercise add column statements
Creating breaks and summaries
Exercise add breaks and summaries
Adding prompts to queries
Exercise parameterize a SQL*Plus script

1-5: Explain plan and reading execution plans

Explain plan
Oracle autotrace
How to read an execution plan

1 6: altering SQL execution plans


Using hints
DAY 2:

Joining Oracle tables

2-1 - Table joining internals

Sort-merge joins
Nested Loop joins
Hash joins

STAR joins
Bitmap joins
Exercise Change table join techniques & evaluate performance
Equi-join
Exercise write an equi-join
Outer join
Exercise write an outer join
Hiding joins by creating views
Exercise create a view of a join

LESSON 2 5 :Subqueries

Using IN, NOT IN, EXISTS and NOT EXISTS


Subqueries

Exercise write a subquery

Correlated subquery
Non-correlated subqueries

Advanced SQL operators

Between operator
IN and NOT In operators
Sub-queries
EXISTS clause
Using wildcards in queries (LIKE operator)

SQL access methods

Review of Basic joining methods


Merge join
Hash Join
Nested Loop join
Advanced SQL operators
Between operator

DAY 3: SQL Tuning

3-1 DML and SQL Tuning

Writing and optimizing INSERT statements


Writing and optimizing DELETE statements
Writing and optimizing UPDATE statements

3-2 Optimizer Statistics

Purpose of statistics
Types of statistics (table, column, system)
Histogram statistics
Dynamic sampling
using dbms_stats
Exporting/importing statistics
Statistics management
Exercise gather system stats

1-6 SQL Tuning and full-table scans

Basics of file I/O


Sequential reads vs. scattered reads
When full scans are best
RAM caching in the SGA
Automating table caching
Solid State Disks
Tracking full-scans over time with AWR
Exercise Query v$sql

1 3: Aggregation IN sql

Aggregation in SQL

Count(*)
Sum
Avg
Min and max
Using the group by clause

DAY 4
PL/SQL Section
1. Basics of PL/SQL

PL/SQL architecture
PL/SQL and SQL*Plus
PL/SQL Basics
Introduction to PL/SQL

PL/SQL as a 4th generation language


Compiling vs. Interpreting
Declare statement
Exercise: Write hello world PL/SQL program

Using PL/SQL Variables


PL/SQL Constants
PL/SQL Datatypes
Error messages user_errors and show errors
PL/SQL wrapper utility

2. PL/SQL structures

Simple blocks
Control structures
PL/SQL records
Recognizing the Basic PL/SQL Block and Its Sections
Describing the Significance of Variables in PL/SQL
Distinguishing Between PL/SQL and Non-PL/SQL Variables
Declaring Variables and Constants
Executing a PL/SQL Block

3. Error checking exception handling

Defining exceptions
Using the when others clause
Ensuring complete error checking
Passing error messages to calling routine

4. Boolean logic in PL/SQL

Identifying the Uses and Types of Control Structures


Constructing an IF Statement
Constructing and Identifying Different Loop Statements
Controlling Block Flow Using Nested Loops and Labels
Using Logic Tables
If-then-else structure
Testing for numbers characters and Booleans

5. Cursors in PL/SQL

Cursor basics
Using a cursor for a multi-row SQL query

6. Iteration in PL/SQL

For loop
While loop

DAY 5
7. PL/SQL tables

Defining PL/SQL tables


Reasons to use PL/SQL tables
Populating a PL/SQL table
Retrieving from a PL/SQL table

8. Dynamic SQL in PL/SQL

Introduction to the dbms_sql package


Creating a dynamic SQL statement

9. Nested blocks in PL/SQL

Creating nested blocks


Understanding scope in nested blocks

10. Triggers in PL/SQL

Triggers and database events


Defining a trigger
Timing a trigger
Enabling and disabling a trigger

11. Stored procedures, functions and packages

Basics of stored procedures


Basics of functions
Basics of packages
Defining stored procedures & functions
Function and stored procedures prototypes
Passing arguments to functions and stored procedures
Recompiling functions and stored procedures
Pinning packages in the SGA with dbms_shared_pool.keep
Package forward declaration
Package dependency
Package overloading

Listing package information

12. Bulking in PL/SQL

Bulk queries
Bulk DML (forall statement)
Using cursor attributes

Você também pode gostar