- •Preface
- •Introduction
- •Lesson Objectives
- •Lesson Agenda
- •Course Objectives
- •Course Agenda
- •Appendixes Used in the Course
- •Lesson Agenda
- •Oracle Database 11g: Focus Areas
- •Oracle Database 11g
- •Oracle Fusion Middleware
- •Oracle Enterprise Manager Grid Control 10g
- •Oracle BI Publisher
- •Lesson Agenda
- •Relational and Object Relational Database Management Systems
- •Data Storage on Different Media
- •Relational Database Concept
- •Definition of a Relational Database
- •Data Models
- •Entity Relationship Model
- •Relating Multiple Tables
- •Relational Database Terminology
- •Lesson Agenda
- •Using SQL to Query Your Database
- •SQL Statements
- •Development Environments for SQL
- •Lesson Agenda
- •The Human Resources (HR) Schema
- •Tables Used in the Course
- •Lesson Agenda
- •Oracle Database 11g Documentation
- •Additional Resources
- •Summary
- •Practice I: Overview
- •Objectives
- •Lesson Agenda
- •Capabilities of SQL SELECT Statements
- •Basic SELECT Statement
- •Selecting All Columns
- •Selecting Specific Columns
- •Writing SQL Statements
- •Column Heading Defaults
- •Lesson Agenda
- •Arithmetic Expressions
- •Using Arithmetic Operators
- •Operator Precedence
- •Defining a Null Value
- •Null Values in Arithmetic Expressions
- •Lesson Agenda
- •Defining a Column Alias
- •Using Column Aliases
- •Lesson Agenda
- •Concatenation Operator
- •Literal Character Strings
- •Using Literal Character Strings
- •Alternative Quote (q) Operator
- •Duplicate Rows
- •Lesson Agenda
- •Displaying the Table Structure
- •Using the DESCRIBE Command
- •Quiz
- •Summary
- •Practice 1: Overview
- •Objectives
- •Lesson Agenda
- •Limiting Rows Using a Selection
- •Limiting the Rows That Are Selected
- •Using the WHERE Clause
- •Character Strings and Dates
- •Comparison Operators
- •Using Comparison Operators
- •Range Conditions Using the BETWEEN Operator
- •Membership Condition Using the IN Operator
- •Pattern Matching Using the LIKE Operator
- •Combining Wildcard Characters
- •Using the NULL Conditions
- •Defining Conditions Using the Logical Operators
- •Using the AND Operator
- •Using the OR Operator
- •Using the NOT Operator
- •Lesson Agenda
- •Rules of Precedence
- •Lesson Agenda
- •Using the ORDER BY Clause
- •Sorting
- •Lesson Agenda
- •Substitution Variables
- •Using the Single-Ampersand Substitution Variable
- •Character and Date Values with Substitution Variables
- •Specifying Column Names, Expressions, and Text
- •Using the Double-Ampersand Substitution Variable
- •Lesson Agenda
- •Using the DEFINE Command
- •Using the VERIFY Command
- •Quiz
- •Summary
- •Practice 2: Overview
- •Objectives
- •Lesson Agenda
- •SQL Functions
- •Two Types of SQL Functions
- •Single-Row Functions
- •Lesson Agenda
- •Character Functions
- •Case-Conversion Functions
- •Using Case-Conversion Functions
- •Character-Manipulation Functions
- •Using the Character-Manipulation Functions
- •Lesson Agenda
- •Number Functions
- •Using the ROUND Function
- •Using the TRUNC Function
- •Using the MOD Function
- •Lesson Agenda
- •Working with Dates
- •RR Date Format
- •Using the SYSDATE Function
- •Arithmetic with Dates
- •Using Arithmetic Operators with Dates
- •Lesson Agenda
- •Date-Manipulation Functions
- •Using Date Functions
- •Using ROUND and TRUNC Functions with Dates
- •Quiz
- •Summary
- •Practice 3: Overview
- •Objectives
- •Lesson Agenda
- •Conversion Functions
- •Implicit Data Type Conversion
- •Explicit Data Type Conversion
- •Lesson Agenda
- •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
- •Using the TO_CHAR and TO_DATE Function with RR Date Format
- •Lesson Agenda
- •Nesting Functions
- •Lesson Agenda
- •General Functions
- •NVL Function
- •Using the NVL Function
- •Using the NVL2 Function
- •Using the NULLIF Function
- •Using the COALESCE Function
- •Lesson Agenda
- •Conditional Expressions
- •CASE Expression
- •Using the CASE Expression
- •DECODE Function
- •Using the DECODE Function
- •Quiz
- •Summary
- •Practice 4: Overview
- •Objectives
- •Lesson Agenda
- •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
- •Lesson Agenda
- •Creating Groups of Data
- •Creating Groups of Data: 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
- •Restricting Group Results
- •Restricting Group Results with the HAVING Clause
- •Using the HAVING Clause
- •Lesson Agenda
- •Nesting Group Functions
- •Quiz
- •Summary
- •Practice 5: Overview
- •Objectives
- •Lesson Agenda
- •Types of Joins
- •Joining Tables Using SQL:1999 Syntax
- •Qualifying Ambiguous Column Names
- •Lesson Agenda
- •Creating Natural Joins
- •Retrieving Records with Natural Joins
- •Creating Joins with the USING Clause
- •Joining Column Names
- •Retrieving Records with the USING Clause
- •Using Table Aliases with the USING Clause
- •Creating Joins with the ON Clause
- •Retrieving Records with the ON Clause
- •Creating Three-Way Joins with the ON Clause
- •Applying Additional Conditions to a Join
- •Lesson Agenda
- •Joining a Table to Itself
- •Self-Joins Using the ON Clause
- •Lesson Agenda
- •Nonequijoins
- •Retrieving Records with Nonequijoins
- •Lesson Agenda
- •INNER Versus OUTER Joins
- •LEFT OUTER JOIN
- •RIGHT OUTER JOIN
- •FULL OUTER JOIN
- •Lesson Agenda
- •Cartesian Products
- •Generating a Cartesian Product
- •Creating Cross Joins
- •Quiz
- •Summary
- •Practice 6: Overview
- •Objectives
- •Lesson Agenda
- •Using a Subquery to Solve a Problem
- •Subquery Syntax
- •Using a Subquery
- •Guidelines for Using Subqueries
- •Types of Subqueries
- •Lesson Agenda
- •Single-Row Subqueries
- •Executing Single-Row Subqueries
- •Using Group Functions in a Subquery
- •The HAVING Clause with Subqueries
- •What Is Wrong with This Statement?
- •No Rows Returned by the Inner Query
- •Lesson Agenda
- •Multiple-Row Subqueries
- •Lesson Agenda
- •Null Values in a Subquery
- •Quiz
- •Summary
- •Practice 7: Overview
- •Objectives
- •Lesson Agenda
- •Set Operators
- •Set Operator Guidelines
- •The Oracle Server and Set Operators
- •Lesson Agenda
- •Tables Used in This Lesson
- •Lesson Agenda
- •UNION Operator
- •Using the UNION Operator
- •UNION ALL Operator
- •Using the UNION ALL Operator
- •Lesson Agenda
- •INTERSECT Operator
- •Using the INTERSECT Operator
- •Lesson Agenda
- •MINUS Operator
- •Using the MINUS Operator
- •Lesson Agenda
- •Matching the SELECT Statements
- •Matching the SELECT Statement: Example
- •Lesson Agenda
- •Using the ORDER BY Clause in Set Operations
- •Quiz
- •Summary
- •Practice 8: Overview
Using the ORDER BY Clause in Set Operations
•The ORDER BY clause can appear only once at the end of the compound query.
•Component queries cannot have individual ORDER BY clauses.
•ORDER BY clause recognizes only the columns of the first
SELECT query.
•By default, the first column of the first SELECT query is used to sort the output in an ascending order.
|
Copyright © 2009, Oracle. All rights reserved. |
Academy |
|
|
|
Using the ORDER BY Clause in Set Operations |
|
|
|
Oracle |
|
The ORDER BY clause can be used only once in a compound qu ry. If used, the ORDER BY clause must be placed at the end of the query. The ORDER BY clause a cepts the column name or an alias. By default, the output is sorted in ascending order in the first column of the first SELECT query.
Note: The ORDER BY clause does not recognize the column names of the second SELECT query. To |
||
avoid confusion over column names, it is a common practice to ORDER BY column positions. |
||
For example, in the following statement, the&output will be shown in ascending order of the job_id. |
||
|
Internal |
|
SELECT employee id, job id,salaryOnly |
||
FROM |
employees |
Use |
|
||
UNION |
|
|
SELECT |
employee id, job id,0 |
|
FROM |
job history |
|
ORDER BY 2; |
|
|
Oracle |
|
|
If you omit the ORDER BY, then by default the output will be sorted in the ascending order of employee id. You cannot use the columns from the second query to sort the output.
Oracle Database 11g: SQL Fundamentals I 8 - 28
Quiz
Identify the set operator guidelines.
1.The expressions in the SELECT lists must match in number.
2.Parentheses may not be used to alter the sequence of execution.
3.The data type of each column in the second query must match the data type of its corresponding column in the first query.
4.The ORDER BY clause can be used only once in a compound query, unless a UNION ALL operator is used.
Answer: 1, 3 |
Copyright © 2009, Oracle. All rights reserved. |
Academy |
|||
|
|
|
|||
|
|
|
Oracle |
||
|
|
& |
Only |
|
|
|
Internal |
|
|
|
|
Oracle |
Use |
|
|||
|
|
|
|
||
Oracle Database 11g: SQL Fundamentals I 8 - 29
Summary
In this lesson, you should have learned how to use:
•UNION to return all distinct rows
•UNION ALL to return all rows, including duplicates
•INTERSECT to return all rows that are shared by both queries
•MINUS to return all distinct rows that are selected by the first query, but not by the second
•ORDER BY only at the very end of the statement
Copyright © 2009, Oracle. All rights reserved. |
Academy |
Summary |
|
• The UNION operator returns all the distinct rows selected by |
ach query in the compound query. |
Use the UNION operator to return all rows from multiple tables and eliminate any duplicate |
|
UNION operator, duplicate rows are not eliminatedOracleand the output is not sorted by default. |
|
rows. |
|
• Use the UNION ALL operator to return all rows f om multiple queries. Unlike the case with the |
|||
|
|
& |
Only |
• Use the INTERSECT operator to return all rows that are common to multiple queries. |
|||
|
Internal |
|
|
• Use the MINUS operator to return rows returned by the first query that are not present in the |
|||
second query. |
|
Use |
|
• Remember to use the ORDER BY clause only at the very end of the compound statement. |
|||
• Make sure that the corr sponding expressions in the SELECT lists match in number and data |
|||
type. |
|
|
|
Oracle |
|
|
|
Oracle Database 11g: SQL Fundamentals I 8 - 30
Practice 8: Overview
In this practice, you create reports by using:
•The UNION operator
•The INTERSECTION operator
•The MINUS operator
Practice 8: Overview |
|
|
Academy |
|
|
Copyright © 2009, Oracle. All rights reserved. |
|
||
|
|
Oracle |
||
|
In this practice, you write queries using the set operators. |
|
||
& |
Only |
|
||
|
Internal |
|
|
|
|
Use |
|
||
Oracle |
|
|
|
|
Oracle Database 11g: SQL Fundamentals I 8 - 31
Practice 8
1.The HR department needs a list of department IDs for departments that do not contain the job ID ST_CLERK. Use the set operators to create this report.
2. The HR department needs a list of countries that have no departments located in them. Display the country ID and the name of the countries. Use the set operators to create this report.
|
Academy |
3. Produce a list of jobs for departments 10, 50, and 20, in that order. Display the job ID and |
|
department ID by using the set operators. |
|
|
Oracle |
4.Create a report that lists the employee IDs and job IDs of those employees who currently have a
job title that is the same as their job title when they were initially hired by the company (that is, they changed jobs but have now gone back to doing their original job).Only
InternalUse
Oracle
Oracle Database 11g: SQL Fundamentals I 8 - 32
Practice 8 (continued)
5.The HR department needs a report with the following specifications:
•Last name and department ID of all employees from the EMPLOYEES table, regardless of whether or not they belong to a department
•Department ID and department name of all departments from the DEPARTMENTS table,
regardless of whether or not they have employees working in them Write a compound query to accomplish this.
|
|
Academy |
|
Oracle |
|
|
& |
Only |
|
Internal |
|
|
Use |
|
Oracle |
|
|
Oracle Database 11g: SQL Fundamentals I 8 - 33
|
Academy |
Oracle |
|
& |
Only |
Internal |
|
Use |
|
Oracle |
|
