
- •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

Range Conditions Using the BETWEEN Operator
Use the BETWEEN operator to display rows based on a range of values:
SELECT |
last_name, salary |
|
|
|
FROM |
employees |
|
|
|
WHERE |
salary |
BETWEEN 2500 AND 3500 |
; |
|
|
|
Lower limit |
Upper limit |
Copyright © 2009, Oracle. All rights reserved.
Range Conditions Using the BETWEEN Operator |
Academy |
||||||
You can display rows based on a range of values using the |
|||||||
BETWEEN operator. The range that you |
|||||||
specify contains a lower limit and an upper limit. |
|
|
|||||
The SELECT statement in the slide returns rows from the EMPLOYEES table for any employee |
|||||||
whose salary is between $2,500 and $3,500. |
Oracle |
||||||
|
|
|
|
||||
Values that are specified with the BETWEEN operator are i |
c usive. However, you must specify the |
||||||
lower limit first. |
|
|
& |
Only |
|||
|
|
|
|
||||
|
|
|
|
|
|||
You can also use the BETWEEN oper tor on character values: |
|||||||
SELECT |
last name |
|
|
|
|
||
FROM |
|
employ s |
|
|
|
|
|
WHERE |
last name BETWEEN 'King' AND 'Smith'; |
||||||
|
|
|
Use |
|
|||
|
Internal |
|
|
|
|||
Oracle |
|
|
|
|
|
Oracle Database 11g: SQL Fundamentals I 2 - 10

Membership Condition Using the IN Operator
Use the IN operator to test for values in a list:
SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN (100, 101, 201) ;
|
Copyright © 2009, Oracle. All rights reserved. |
Academy |
|
|
|
Membership Condition Using the IN Operator |
|
|
|
Oracle |
|
|
To test for values in a specified set of values, use the IN operator. The condition defined using the |
|
|
IN operator is also known as the membership condition. |
|
The slide example displays employee numbers, last names, s laries, and managers’ employee numbers for all the employees whose manager’s employee number is 100, 101, or 201.
The IN operator can be used with any data type. The followi g example returns a row from the |
|||||
EMPLOYEES table, for any employee whose&last name is i cluded in the list of names in the WHERE |
|||||
clause: |
|
|
|
|
Only |
|
SELECT |
employee id, manag r id, department_id |
|||
|
FROM |
|
employ s |
|
|
|
WHERE |
last name IN ('Hartstein', 'Vargas'); |
|||
|
|
|
|
Use |
|
If characters or dates are used in the list, they must be enclosed with single quotation marks (''). |
|||||
|
|
Internal |
|
||
Note: The IN op rator is internally evaluated by the Oracle server as a set of OR conditions, such as |
|||||
a=value1 or a=value2 or a=value3. Therefore, using the IN operator has no performance |
|||||
benefits nd is used only for logical simplicity. |
|
||||
Oracle |
|
|
|
Oracle Database 11g: SQL Fundamentals I 2 - 11

Pattern Matching Using the LIKE Operator
•Use the LIKE operator to perform wildcard searches of valid search string values.
•Search conditions can contain either literal characters or numbers:
–% denotes zero or many characters.
–_ denotes one character.
SELECT |
first_name |
||
FROM |
employees |
||
WHERE |
first_name |
LIKE 'S%' |
; |
|
|
|
|
|
|
|
Copyright © 2009, Oracle. All rights reserved. |
Academy |
|||
|
|
|
|
|
|||
Pattern Matching Using the LIKE Operator |
|
|
|
||||
|
|
|
|
Oracle |
|||
|
You may not always know the exact value to search for. You can s l ct rows that match a character |
||||||
|
pattern by using the LIKE operator. The character pattern–mat hing operation is referred to as a |
||||||
|
wildcard search. Two symbols can be used to construct the search string. |
||||||
|
|
Symbol |
Description |
& |
Only |
|
|
|
_ |
|
|
|
|||
|
|
% |
Represents any sequence of zero or more characters |
|
|||
|
|
|
|
|
|
||
|
|
beginning with a lowercaseInternal“s” are not returned. |
|
|
|
||
|
|
|
Represents ny single character |
|
|
||
|
|
|
|
Use |
|
|
|
|
|
|
|
|
|
||
|
The SELECT statement in he slide returns the first name from the EMPLOYEES table for any |
||||||
|
employee whose first |
ame begins with the letter “S.” Note the uppercase “S.” Consequently, names |
|||||
OracleFROM |
employees |
|
|
|
|
The LIKE op rator can be used as a shortcut for some BETWEEN comparisons. The following
example displays the last names and hire dates of all employees who joined between January, 1995 and December, 1995:
SELECT last_name, hire_date
WHERE hire_date LIKE '%95';
Oracle Database 11g: SQL Fundamentals I 2 - 12

Combining Wildcard Characters
•You can combine the two wildcard characters (%, _) with literal characters for pattern matching:
SELECT last_name
FROM employees
WHERE last_name LIKE '_o%' ;
•You can use the ESCAPE identifier to search for the actual % and _ symbols.
Copyright © 2009, Oracle. All rights reserved. |
Academy |
Combining Wildcard Characters |
The % and _ symbols can be used in any combination with literal characters. The example in the slide displays the names of all employees whose last names have the letter “o” as the second character.
ESCAPE Identifier
When you need to have an exact match for the actual % and |
characters, use the ESCAPE identifier. |
|
|
Oracle |
|
This option specifies what the escape character is. If you wa |
t to search for strings that contain SA_, |
|
you can use the following SQL statement: |
& |
|
SELECT employee id, last_name,Onlyjob id |
||
FROM employees WHERE job id LIKE '%SA\_%' ESCAPE '\'; |
||
Use |
|
|
Internal |
|
|
OracleThe ESCAPE identifier identifies the backslash (\) as the escape character. In the SQL statement, the |
escape character precedes the underscore (_). This causes the Oracle server to interpret the underscore literally.
Oracle Database 11g: SQL Fundamentals I 2 - 13