D17111 gc30 sg2
- 1. Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates. SQL Star International Limited
a
) has
c om ฺ
ailฺ uide
gm 10g:
Oracle Database nt G SQL
@
rale tude
Fundamentals II
a
hlk his S
(r Guide
A OStudente t • Volume 2
s
N KR to u
I e
L MA icens
A HU ble l
L E R nsfera
RA -tra
KA non
D17111GC30
Edition 3.0
January 2009
D57874
- 2. SQL Star International Limited
Authors Copyright © 2009, Oracle. All rights reserved.
Disclaimer
Salome Clement
Chaitanya Koratamaddi This document contains proprietary information and is protected by copyright and
Priya Vennapusa other intellectual property laws. You may copy and print this document solely for your
own use in an Oracle training course. The document may not be modified or altered in
any way. Except where your use constitutes "fair use" under copyright law, you may
Technical Contributors not use, share, download, upload, copy, print, display, perform, reproduce, publish,
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
license, post, transmit, or distribute this document in whole or in part without the
and Reviewers
express authorization of Oracle.
Claire Bennett The information contained in this document is subject to change without notice. If you
find any problems in the document, please report them in writing to: Oracle University,
Brian Boxx 500 Oracle Parkway, Redwood Shores, California 94065 USA. This document is not
Zarko Cesljas warranted to be error-free.
Laurent Dereac
Restricted Rights Notice
Nancy Greenberg
Yash Jain If this documentation is delivered to the United States Government or anyone using
the documentation on behalf of the United States Government, the following notice is
Angelika Krupp
applicable: a
has
Malika Marghadi
Priya Nathan U.S. GOVERNMENT RIGHTS
)
Narayanan Radhakrishnan
c om ฺ
The U.S. Government’s rights to use, modify, reproduce, release, perform, display, or
ailฺ uide
disclose these training materials are restricted by the terms of the applicable Oracle
Bryan Roberts license agreement and/or the applicable U.S. Government contract.
Lata Shivaprasad
Trademark Notice
gm t G
@ n
rale tude
Naoko Susuki
a
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other
hlk his S
names may be trademarks of their respective owners.
r
Editors
A O ( se t
Nita Pavitran
I KR to u
Atanu Raychaudhuri
AN nse
U L M lice
AH rable
Graphic Designer
R
L Sharmansfe
SanjeevE
A
AR on-tra
K n
Publishers
Jobi Varghese
Giri Venugopal
- 3. SQL Star International Limited
Contents
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Preface
I Introduction
Objectives I-2
Course Objectives I-3
Course Overview I-4
Course Application I-5 a
Summary I-6
) has
c om ฺ
1 Controlling User Access ailฺ uide
Objectives 1-2 gm t G
@ n
Controlling User Access 1-3
a rale tude
Privileges 1-4
r hlk his S
System Privileges 1-5
A O ( se t
Creating Users 1-6
I KR to u
AN ns
User System Privileges 1-7 e
L M lice
Granting System Privileges 1-8
U
What Is a Role? le
R AHandrab 1-9 Privileges to a Role 1-10
LE ansfe Granting 1-11
Creating
A Changing Your Password
AR on-tr Privileges 1-12
K n Object
Granting Object Privileges 1-14
Passing On Your Privileges 1-15
Confirming Privileges Granted 1-16
Revoking Object Privileges 1-17
Summary 1-19
Practice 1: Overview 1-20
2 Managing Schema Objects
Objectives 2-2
ALTER TABLE Statement 2-3
Adding a Column 2-5
Modifying a Column 2-6
Dropping a Column 2-7
SET UNUSED Option 2-8
iii
- 4. SQL Star International Limited
Adding a Constraint Syntax 2-10
Adding a Constraint 2-11
ON DELETE CASCADE 2-12
Deferring Constraints 2-13
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Dropping a Constraint 2-14
Disabling Constraints 2-15
Enabling Constraints 2-16
Cascading Constraints 2-18
Overview of Indexes 2-20
CREATE INDEX with the CREATE TABLE Statement 2-21
Function-Based Indexes 2-23
Removing an Index 2-24
a
DROP TABLE … PURGE 2-25
) has
FLASHBACK TABLE Statement 2-26
c om ฺ
External Tables 2-28 ailฺ uide
Creating a Directory for the External Table 2-30 gm t G
Creating an External Table 2-32 le@ n
ra2-34 tude
a
hlk his S
Creating an External Table by Using ORACLE_LOADER
r
Querying External Tables 2-36
A O ( se t
Summary 2-37
Practice 2: Overview 2-38 N
I KR to u
A nse
U L M lice
3 Manipulating Large Datae
AH rabl Sets
R
Objectives 3-2 fe
LE ans to Manipulate Data 3-3
A tr
AR onSubqueries Another Table 3-4
Using
-
K Copying Rows from
nInserting Using a Subquery as a Target 3-5
Retrieving Data with a Subquery as Source 3-7
Updating Two Columns with a Subquery 3-8
Updating Rows Based on Another Table 3-9
Deleting Rows Based on Another Table 3-10
Using the WITH CHECK OPTION Keyword on DML Statements 3-11
Overview of the Explicit Default Feature 3-12
Using Explicit Default Values 3-13
Overview of Multitable INSERT Statements 3-14
Types of Multitable INSERT Statements 3-16
Multitable INSERT Statements 3-17
Unconditional INSERT ALL 3-19
Conditional INSERT ALL 3-20
Conditional INSERT FIRST 3-22
iv
- 5. SQL Star International Limited
Pivoting INSERT 3-24
MERGE Statement 3-27
MERGE Statement Syntax 3-28
Merging Rows 3-29
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Tracking Changes in Data 3-31
Example of the Flashback Version Query 3-32
VERSIONS BETWEEN Clause 3-34
Summary 3-35
Practice 3: Overview 3-36
4 Generating Reports by Grouping Related Data
Objectives 4-2 a
Review of Group Functions 4-3
) has
Review of the GROUP BY Clause 4-4
c om ฺ
Review of the HAVING Clause 4-5 ailฺ uide
GROUP BY with ROLLUP and CUBE Operators 4-6 gm t G
@ n
ROLLUP Operator 4-7
a rale tude
ROLLUP Operator: Example 4-8
r hlk his S
CUBE Operator 4-9 O ( se t
A u
CUBE Operator: ExampleKR
NI se to
4-10
A
GROUPING Function 4-11 n
L M Example 4-12
U le e
GROUPING Function: lic
H
RA ferab
GROUPING SETS 4-13
E ns
AL GROUPING SETS: Example 4-15
ra
R Composite Columns 4-17
KA non-t
Composite Columns: Example 4-19
Concatenated Groupings 4-21
Concatenated Groupings: Example 4-22
Summary 4-23
Practice 4: Overview 4-24
5 Managing Data in Different Time Zones
Objectives 5-2
Time Zones 5-3
TIME_ZONE Session Parameter 5-4
CURRENT_DATE, CURRENT_TIMESTAMP, and LOCALTIMESTAMP 5-5
CURRENT_DATE 5-6
CURRENT_TIMESTAMP 5-7
LOCALTIMESTAMP 5-8
v
- 6. SQL Star International Limited
DBTIMEZONE and SESSIONTIMEZONE 5-9
TIMESTAMP Data Type 5-10
TIMESTAMP Data Types 5-11
TIMESTAMP Fields 5-12
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Difference Between DATE and TIMESTAMP 5-13
TIMESTAMP WITH TIME ZONE Data Type 5-14
TIMESTAMP WITH TIMEZONE: Example 5-15
TIMESTAMP WITH LOCAL TIMEZONE 5-16
TIMESTAMP WITH LOCAL TIMEZONE: Example 5-17
INTERVAL Data Types 5-18
INTERVAL Fields 5-20
a
has
INTERVAL YEAR TO MONTH Data Type 5-21
INTERVAL YEAR TO MONTH: Example 5-22 )
c om ฺ
ailฺ uide
INTERVAL DAY TO SECOND Data Type 5-23
INTERVAL DAY TO SECOND Data Type: Example 5-24
gm t G
@ n
rale tude
EXTRACT 5-25
TZ_OFFSET 5-26 a
r hlk his S
O ( se t TO_TIMESTAMP_TZ 5-29
TIMESTAMP Conversion Using FROM_TZ 5-28
A
KR to u 5-30
Converting to TIMESTAMP Using TO_TIMESTAMP and
I e
AN n5-31
Time Interval Conversion with TO_YMINTERVAL
s
L M lice
Using TO_DSINTERVAL: Example
U
AH rable
Daylight Saving Time 5-32
SummaryR
A LE 5:ansfe 5-35
5-34
AR on-tr
Practice Overview
K n
6 Retrieving Data Using Subqueries
Objectives 6-2
Multiple-Column Subqueries 6-3
Column Comparisons 6-4
Pairwise Comparison Subquery 6-5
Nonpairwise Comparison Subquery 6-6
Scalar Subquery Expressions 6-7
Scalar Subqueries: Examples 6-8
Correlated Subqueries 6-10
Using Correlated Subqueries 6-12
Using the EXISTS Operator 6-14
Find Employees Who Have At Least One Person Reporting to Them 6-15
Find All Departments That Do Not Have Any Employees 6-16
Correlated UPDATE 6-17
vi
- 7. SQL Star International Limited
Using Correlated UPDATE 6-18
Correlated DELETE 6-20
Using Correlated DELETE 6-21
WITH Clause 6-22
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
WITH Clause: Example 6-23
Summary 6-25
Practice 6: Overview 6-27
7 Hierarchical Retrieval
Objectives 7-2
Sample Data from the EMPLOYEES Table 7-3
Natural Tree Structure 7-4 a
Hierarchical Queries 7-5
) has
Walking the Tree 7-6
c om ฺ
Walking the Tree: From the Bottom Up 7-8 ailฺ uide
Walking the Tree: From the Top Down 7-9
@ ngm t G
rale tude
Ranking Rows with the LEVEL Pseudocolumn 7-10
a
hlk his S
Formatting Hierarchical Reports Using LEVEL and LPAD 7-11
r
Pruning Branches 7-13
A O ( se t
Summary 7-14
I KR to u
Practice 7: Overview N
A 7-15nse
U L M lice
AH rable
8 Regular Expression Support
R
LE ansfe 8-2
Objectives
A Regular Expression: Overview 8-3
AR on-tr Characters 8-4
K n Meta
Using Meta Characters 8-5
Regular Expression Functions 8-7
REGEXP Function Syntax 8-8
Performing Basic Searches 8-9
Checking the Presence of a Pattern 8-10
Example of Extracting Substrings 8-11
Replacing Patterns 8-12
Regular Expressions and Check Constraints 8-13
Summary 8-14
Practice 8: Overview 8-15
Appendix A: Practice Solutions
Appendix B: Table Descriptions and Data
vii
- 8. SQL Star International Limited
Appendix C: Writing Advanced Scripts
Objectives C-2
Using SQL to Generate SQL C-3
Creating a Basic Script C-4
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Controlling the Environment C-5
The Complete Picture C-6
Dumping the Contents of a Table to a File C-7
Generating a Dynamic Predicate C-9
Summary C-11
Appendix D: Oracle Architectural Components
Objectives D-2
a
Oracle Database Architecture: Overview D-3
Database Physical Architecture D-4 ) has
c om ฺ
Control Files D-5
ailฺ uide
Redo Log Files D-6 gm t G
@ n
rale tude
Tablespaces and Data Files D-7
a
Segments, Extents, and Blocks D-8
r hlk his S
O ( se t
Oracle Instance Management D-9
A
Oracle Memory Structures D-10
I KR to u
AN nse
Oracle Processes D-12
L M lice
Other Key Physical Structures D-13
U
AH rable
Processing a SQL Statement D-14
R
Connecting to an Instance D-15
A LE ansfe
Processing a Query D-17
AR on-tr
K nShared Pool D-18
Database Buffer Cache D-20
Program Global Area (PGA) D-21
Processing a DML Statement D-22
Redo Log Buffer D-24
Rollback Segment D-25
COMMIT Processing D-26
Summary D-28
Appendix E: Using SQL Developer
Objectives E-2
What Is Oracle SQL Developer? E-3
Key Features E-4
Installing SQL Developer E-5
Menus for SQL Developer E-6
Creating a Database Connection E-7
viii
- 9. SQL Star International Limited
Browsing Database Objects E-9
Creating a Schema Object E-10
Creating a New Table: Example E-11
Using SQL Worksheet E-12
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Executing SQL Statements E-14
Viewing the Execution Plan E-15
Formatting the SQL Code E-16
Using Snippets E-17
Using Snippets: Example E-18
Using SQL*Plus E-19
Database Reporting E-20
Creating a User Defined Report E-21
a
Summary E-22
) has
c om ฺ
Index
ailฺ uide
gm t G
@ n
rale tude
Additional Practices
a
r hlk his S
O ( se t
Additional Practice Solutions
A
I KR to u
AN nse
U L M lice
R AH rable
A LE ansfe
AR on-tr
K n
ix
- 10. Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates. SQL Star International Limited
a
) has
c om ฺ
ailฺ uide
gm t G
@ n
a rale tude
r hlk his S
A O ( se t
I KR to u
AN nse
U L M lice
R AH rable
A LE ansfe
AR on-tr
K n
x
- 11. SQL Star International Limited
_______________
Additional
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Practices
_______________
a
) has
c om ฺ
ailฺ uide
gm t G
@ n
a rale tude
r hlk his S
A O ( se t
I KR to u
AN nse
U L M lice
R AH rable
A LE ansfe
AR on-tr
K n
- 12. SQL Star International Limited
Additional Practices
The following exercises can be used for extra practice after you have discussed data
manipulation language (DML) and data definition language (DDL) statements in the lessons
titled “Managing Schema Objects” and “Manipulating Large Data Sets.”
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Note: Run the lab_ap_cre_special_sal.sql, lab_ap_cre_sal_history.sql,
and lab_ap_cre_mgr_history.sql scripts in the labs folder to create the
SPECIAL_SAL, SAL_HISTORY, and MGR_HISTORY tables.
1. The Human Resources department wants to get a list of underpaid employees, the salary
history of employees, and the salary history of managers based on an industry salary
survey. So they have asked you to do the following:
Write a statement to do the following:
a
has
- Retrieve the employee ID, hire date, salary, and manager ID of those employees
)
whose employee ID is more than or equal to 200 from the EMPLOYEES table.
c om ฺ
- If the salary is less than $5,000, insert the employee ID and salary into the
SPECIAL_SAL table. ailฺ uide
gm t G
@ n
- Insert the employee ID, hire date, and salary into the SAL_HISTORY table.
a rale tude
- Insert the employee ID, manager ID, and salary into the MGR_HISTORY table.
r hlk his S
inserted records.A O ( se t
2. Query the SPECIAL_SAL, SAL_HISTORY and MGR_HISTORY tables to view the
I KR to u
SPECIAL_SAL
AN nse
U L M lice
R AH rable
A LE ansfe
AR on-tr
K n SALARY_HISTORY
- 13. SQL Star International Limited
Additional Practices (continued)
MGR_HISTORY
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
3. The DBA wants you to create a table, which has a primary key constraint, but wants the
index to have a different name than the constraint. Create the
a
has
LOCATIONS_NAMED_INDEX table based on the following table instance chart. Name
the index for the PRIMARY KEY column as LOCATIONS_PK_IDX. )
c om ฺ
Column Name Deptno Dname ailฺ uide
@ gm t G
ale tu n
Primary Key Yes
Data Type Number a rVARCHAR2 de
r hlk his S
Length 4
O ( se t 30
A u
KR to display INDEX_NAME for the
NI s o
4. Query the USER_INDEXES table e t
A
LOCATIONS_NAMED_INDEXn
U L M lice table.
R AH rable
A LE ansfe
AR on-tr
K n
Oracle Database 10g: SQL Fundamentals II Additional Practices-2
- 14. SQL Star International Limited
Additional Practices (continued)
The following exercises can be used for extra practice after you have discussed enhancements
to the GROUP BY clause.
5. The Human Resources department requires some reports on certain departments. These
are its requirements:
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
Write a query to display the following for those departments whose department ID is
greater than 80:
- The total salary for every job within a department
- The total salary
- The total salary for those cities in which the departments are located
- The total salary for every job, irrespective of the department
- The total salary for every department irrespective of the city
- The total salary for the departments, irrespective of the job titles and cities a
) has
c om ฺ
ailฺ uide
gm t G
@ n
a rale tude
r hlk his S
A O ( se t
I KR to u
AN nse
U L M lice
R AH rable
A LE ansfe
AR on-tr
K n
Oracle Database 10g: SQL Fundamentals II Additional Practices-3
- 15. SQL Star International Limited
Additional Practices (continued)
6. The Accounting department requires an analysis on the maximum and minimum salaries
by department, job, and manager. They have asked you to do the following:
Write a query to display the following groupings:
- Department ID, Job ID
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
- Job ID, Manager ID
The query should calculate the maximum and minimum salaries for each of these groups.
a
) has
c om ฺ
ailฺ uide
gm t G
@ n
a rale tude
… r hlk his S
A O ( se t
I KR to u
AN nse
U L M lice
R AH rable
A LE ansfe
AR on-tr
K n
Oracle Database 10g: SQL Fundamentals II Additional Practices-4
- 16. SQL Star International Limited
Additional Practices (continued)
The following exercises can be used for extra practice after you have discussed the datetime
functions.
You work for a global company and the new vice president of operations wants to know the
different time zones of all the company branches. He has requested the following information:
Unauthorized reproduction or distribution prohibited. Copyright© 2011, Oracle and/or its affiliates.
7. Alter the session to set the NLS_DATE_FORMAT to DD-MON-YYYY HH24:MI:SS.
8. a. Write queries to display the time zone offsets (TZ_OFFSET) for the following time
zones:
Australia/Sydney
a
Chile/Easter Island h as
o m)
a ilฺc ideฺ
@ n gm t Gu
a rale tude time zone offset of
b. Alter the session to set the TIME_ZONE parameter value to the
Australia/Sydney. r hlk his S
A O ( se t
KR to u
c. Display SYSDATE, CURRENT_DATE, CURRENT_TIMESTAMP, and
LOCALTIMESTAMP for I session.
N this se
MA be different based on the date when the command is executed.
n
lice
Note: The output may
U L
AH rable
R fe
LE athessession to set the TIME_ZONE parameter value to the time zone offset of
Alter n
RAd. Chile/Easter Island.
r
KA non-t
Note: The results of the preceding question are based on a different date, and in some
cases, they will not match the actual results that the students get. Also, the time zone
offset of the various countries may differ based on the daylight saving time.
e. Display SYSDATE, CURRENT_DATE, CURRENT_TIMESTAMP, and
LOCALTIMESTAMP for this session.
Note: The output may be different based on the date when the command is executed.
f. Alter the session to set the NLS_DATE_FORMAT to DD-MON-YYYY.
Oracle Database 10g: SQL Fundamentals II Additional Practices-5