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

Single-Row Functions
Single-row functions:
•Manipulate data items
•Accept arguments and return one value
•Act on each row that is returned
•Return one result per row
•May modify the data type
•Can be nested
•Accept arguments that can be a column or an expression
function_name [(arg1, arg2,...)]
Single-Row Functions |
Copyright © 2009, Oracle. All rights reserved. |
Academy |
|
|
Single-row functions are used to manipulate data items. They accept one or more arguments and return one value for each row that is returned by the query. An argument can be one of the following:
• User-supplied constant |
Oracle |
|
• |
Column name |
|
• |
Variable value |
& Only |
• |
Expression |
|
|
Internal |
|
Features of single-row functions include: |
||
• |
Acting on each row that is etur |
Use |
ed in the qu ry |
||
• |
Returning one result p r ow |
|
• Possibly returning a da a value of a different type than the one that is referenced |
||
• |
Possibly expecti g o e or more arguments |
|
• |
Can be us d in SELECT, WHERE, and ORDER BY clauses; can be nested |
In the syntax: |
is the name of the function |
function name |
|
a g1, arg2 |
is any argument to be used by the function. This can be |
Oracle |
represented by a column name or expression. |
Oracle Database 11g: SQL Fundamentals I 3 - 6

Single-Row Functions
Character
|
|
|
|
|
|
|
|
|
|
|
|
General |
|
|
Single-row |
|
Number |
||||||
|
|
functions |
|
||||||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Conversion |
|
Date |
|
|
|
|
|
|
|
Academy |
Single-Row Functions (continued) |
|
|
|
||
|
Copyright © 2009, Oracle. All rights reserved. |
|
|
This lesson covers the following single-row functions:
• Character functions: Αccept character input and can return both character and number values
• Number functions: Accept numeric input and retu n numeric values
• Date functions: Operate on values of the DATE data type (All date functions return a value of |
|||||
|
the DATE data type except the MONTHS_BETWEENOraclefunction, which returns a number.) |
||||
The following single-row functions are discussed& in the ext lesson titled “Using Conversion |
|||||
Functions and Conditional Expressions”: |
Only |
||||
• |
|
|
|
|
|
Conversion functions: Co vert a value from one data type to another |
|||||
• |
General functions: |
Use |
|||
|
- |
NVL |
|
||
|
- |
NVL2 |
|
||
|
Internal |
|
|||
|
- |
NULLIF |
|
||
|
|
|
|
||
|
- |
COALESCE |
|
|
|
|
- |
CASE |
|
|
|
|
- |
DECODE |
|
|
|
Oracle |
|
|
Oracle Database 11g: SQL Fundamentals I 3 - 7

Lesson Agenda
•Single-row SQL functions
•Character functions
•Number functions
•Working with dates
•Date functions
|
Copyright © 2009, Oracle. All rights reserved. |
Academy |
||
|
|
|||
|
|
Oracle |
||
& |
Only |
|
||
|
Internal |
|
|
|
|
Use |
|
||
Oracle |
|
|
|
Oracle Database 11g: SQL Fundamentals I 3 - 8

Character Functions
Character
functions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Case-conversion |
|
|
Character-manipulation |
|
||||
functions |
|
|
|
functions |
|
|||
|
|
|
|
|
|
|
|
|
LOWER |
|
|
|
CONCAT |
||||
UPPER |
|
|
|
SUBSTR |
||||
INITCAP |
|
|
|
LENGTH |
||||
|
|
|
|
|
|
INSTR |
||
|
|
|
|
|
|
LPAD | RPAD |
||
|
|
|
|
|
|
Academy |
||
|
|
|
|
|
|
TRIM |
REPLACE
Single-row character functions accept character data as input and can return both character and numeric values. Character functions can be divided into the following:
|
• Case-conversion functions |
|
Oracle |
|
|
• Character-manipulation functions |
|||
|
Function |
|
Purpose |
|
|
|
|
& |
|
|
LOWER(column|expression) |
|
Converts alpha character values to lowercase |
|
|
|
|
|
Only |
|
UPPER(column|expression) |
|
Conv rts alpha character values to uppercase |
|
|
|
|
||
|
INITCAP(column|expr ssion) |
Converts alpha character values to uppercase for the first |
||
|
|
|
letter of each word; all other letters in lowercase |
|
|
|
|
Use |
|
|
CONCAT(column1|expression1, |
Concatenates the first character value to the second |
||
|
column2| xpression2Internal) |
character value; equivalent to concatenation operator (||) |
||
|
|
|
||
|
|
|
||
|
SUBSTR( o umn|expression,m[ |
Returns specified characters from character value starting at |
||
|
,n]) |
|
character position m, n characters long (If m is negative, the |
|
|
Oracle |
|
count starts from the end of the character value. If n is |
|
|
|
omitted, all characters to the end of the string are returned.) |
||
|
|
|
|
Note: The functions discussed in this lesson are only some of the available functions.
Oracle Database 11g: SQL Fundamentals I 3 - 9

|
Function |
Purpose |
|
|
|
|
|
|
|
|
LENGTH(column|expression) |
Returns the number of characters in the expression |
|
|
|
|
|
|
|
|
INSTR(column|expression, |
Returns the numeric position of a named string. |
|
|
|
’string’, [,m], [n] ) |
Optionally, you can provide a position m to start |
|
|
|
|
searching, and the occurrence n of the string. m and n |
|
|
|
|
default to 1, meaning start the search at the beginning |
|
|
|
|
of the string and report the first occurrence. |
|
|
|
LPAD(column|expression, n, |
Returns an expression left-padded to length of n |
|
|
|
'string') |
characters with a character expression. |
|
|
|
RPAD(column|expression, n, |
Returns an expression right-padded to length of n |
|
|
|
'string') |
|
||
|
characters with a character expression. |
|
||
|
|
|
||
|
|
|
|
|
|
TRIM(leading|trailing|both, |
Enables you to trim leading or trailing characters (or |
|
|
|
trim_character FROM |
both) from a character string. If trim_character or |
|
|
|
trim_source) |
trim_source is a character literal, you must enclose it in |
|
|
|
|
|
||
|
|
single quotation marks. |
|
|
|
|
This is a feature that is available in Oracle8i and later |
|
|
|
|
versions. |
|
|
|
|
|
|
|
|
REPLACE(text, |
Searches a text expression for a character string and, if |
|
|
|
search_string, |
found, replaces it with a specified replacement string |
|
|
|
replacement_string) |
|
|
|
|
|
|
|
|
|
Note: Some of the functions that are fully or partially SQL:2003 compliant are: |
|||
|
UPPER |
|
Academy |
|
|
LOWER |
|
||
|
TRIM |
|
||
|
LENGTH |
|
|
|
|
SUBSTR |
|
|
|
|
INSTR |
|
|
|
|
Refer to the Oracle Compliance To Core SQL:2003 section in Oracle Database SQL Language |
|||
|
|
Oracle |
||
|
Reference 11g, Release 1 (11.1) for more information. |
|||
|
|
& |
Only |
|
|
|
|
||
|
|
Use |
||
|
Internal |
|
|
|
Oracle |
|
|
|
Oracle Database 11g: SQL Fundamentals I 3 - 10