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

Summary
In this lesson, you should have learned how to:
•Perform calculations on data using functions
•Modify individual data items using functions
|
Copyright © 2009, Oracle. All rights reserved. |
Academy |
Summary |
|
Single-row functions can be nested to any level. Single-row functions can manipulate the following:
• Character data: LOWER, UPPER, INITCAP, CONCAT, SUBSTR, INSTR, LENGTH
• Number data: ROUND, TRUNC, MOD
• Date values: SYSDATE, MONTHS_BETWEEN, ADD MONTHS, NEXT_DAY, LAST_DAY |
||||
Remember the following: |
|
|
Oracle |
|
• Date values can also use arithmetic operators.& |
|
|||
• ROUND and TRUNC functions c n |
so be used with date values. |
|||
SYSDATE and DUAL |
|
|
|
Only |
|
|
|
|
|
SYSDATE is a date func ion that returns the current date and time. It is customary to select |
||||
|
Use |
|||
SYSDATE from a dummy table called |
DUAL. |
|
|
|
Internal |
|
|
||
Oracle |
|
|
|
|
Oracle Database 11g: SQL Fundamentals I 3 - 32

Practice 3: Overview
This practice covers the following topics:
•Writing a query that displays the current date
•Creating queries that require the use of numeric, character, and date functions
•Performing calculations of years and months of service for an employee
Practice 3: Overview |
Copyright © 2009, Oracle. All rights reserved. |
Academy |
|||
|
|
|
|||
|
|
|
Oracle |
||
|
This practice provides a variety of exercises using different functions that are available for character, |
||||
|
number, and date data types. |
|
|
Only |
|
|
|
& |
|
||
|
Internal |
|
|
|
|
Oracle |
Use |
|
|||
|
|
|
|
Oracle Database 11g: SQL Fundamentals I 3 - 33

Practice 3
Part 1
1.Write a query to display the system date. Label the column as Date.
Note: If your database is remotely located in a different time zone, the output will be the date for the operating system on which the database resides.
2.The HR department needs a report to display the employee number, last name, salary, and salary increased by 15.5% (expressed as a whole number) for each employee. Label the column New Salary. Save your SQL statement in a file named lab_03_02.sql.
3.Run your query in the lab_03_02.sql file.
… |
|
Academy |
|
Oracle |
|
|
|
|
4. Modify your query lab_03_02.sql&to add a column that subtracts the old salary from the |
||
|
Internal |
|
new salary. Label the column Increase. SaveOnlythe contents of the file as lab_03_04.sql. |
||
Run the revised query. |
Use |
|
|
Oracle Database 11g: SQL Fundamentals I 3 - 34

Practice 3 (continued)
5. Write a query that displays the last name (with the first letter in uppercase and all the other letters in lowercase) and the length of the last name for all employees whose name starts with the letters “J,” “A,” or “M.” Give each column an appropriate label. Sort the results by the employees’ last names.
Rewrite the query so that the user is prompted to enter a letter that the last name starts with. For example, if the user enters “H” (capitalized) when prompted for a letter, then the output should show all employees whose last name starts with the letter “H.”
|
Academy |
Modify the query such that the case of the entered letter does not affect the output. The entered |
|
letter must be capitalized before being processed by the SELECT query. |
|
Oracle |
|
& |
Only |
Internal |
|
Use |
|
Oracle |
|
Oracle Database 11g: SQL Fundamentals I 3 - 35

Practice 3 (continued)
6.The HR department wants to find the duration of employment for each employee. For each employee, display the last name and calculate the number of months between today and the date on which the employee was hired. Label the column as MONTHS_WORKED. Order your results by the number of months employed. Round the number of months up to the closest whole number.
Note: Because this query depends on the date when it was executed, the values in the MONTHS_WORKED column will differ for you.
|
Academy |
Oracle |
|
& |
Only |
Internal |
|
Use |
|
Oracle |
|
Oracle Database 11g: SQL Fundamentals I 3 - 36

Practice 3 (continued)
If you have time, complete the following exercises:
7.Create a query to display the last name and salary for all employees. Format the salary to be 15 characters long, left-padded with the $ symbol. Label the column as SALARY.
…
8.Create a query that displays the first eight characters of the employees’ last names and indicates the amounts of their salaries with asterisks. Each asterisk signifies a thousand dollars. Sort the data in descending order of salary. Label the column as
EMPLOYEES_AND_THEIR_SALARIES.
… |
|
Academy |
|
|
|
department 90. Label the number of weeksOraclecolumn as TENURE. Truncate the number of weeks |
||
9. Create a query to display the last name and the number of weeks employed for all employees in |
||
& |
Only |
|
value to 0 decimal places. Show the records in desce di g order of the employee’s tenure. |
||
Note: The TENURE value will differ as it depends on the date on which you run the query. |
||
Internal |
|
|
Use |
|
|
Oracle |
|
|
Oracle Database 11g: SQL Fundamentals I 3 - 37
|
Academy |
Oracle |
|
& |
Only |
Internal |
|
Use |
|
Oracle |
|

Using Conversion Functions and
Conditional Expressions
|
Copyright © 2009, Oracle. All rights reserved. |
Academy |
||
|
|
|||
|
|
Oracle |
||
& |
Only |
|
||
|
Internal |
|
|
|
|
Use |
|
||
Oracle |
|
|
|