Single-row functions

Содержание

Слайд 2

Objectives After completing this lesson, you should be able to do

Objectives

After completing this lesson, you should be able to do the

following:
Describe various types of functions available in SQL
Use character, number, and date functions in SELECT statements
Describe the use of conversion functions
Слайд 3

SQL Functions Function Function performs action

SQL Functions

Function

Function performs action

Слайд 4

Two Types of SQL Functions Functions Single-row functions Multiple-row functions

Two Types of SQL Functions

Functions

Single-row
functions

Multiple-row
functions

Слайд 5

Single-Row Functions Manipulate data items Accept arguments and return one value

Single-Row Functions

Manipulate data items
Accept arguments and return one value
Act on each

row returned
Return one result per row
May modify the datatype
Can be nested

function_name (column|expression, [arg1, arg2,...])

Слайд 6

Single-Row Functions Conversion Character Number Date General Single-row functions

Single-Row Functions

Conversion

Character

Number

Date

General

Single-row
functions

Слайд 7

Character Functions Character functions LOWER UPPER INITCAP CONCAT SUBSTR LENGTH INSTR

Character Functions

Character
functions

LOWER
UPPER
INITCAP

CONCAT
SUBSTR
LENGTH
INSTR
LPAD

Case conversion
functions

Character manipulation
functions

Слайд 8

Function Result Case Conversion Functions Convert case for character strings LOWER('SQL

Function

Result

Case Conversion Functions

Convert case for character strings

LOWER('SQL Course')
UPPER('SQL Course')
INITCAP('SQL Course')

sql course
SQL

COURSE
Sql Course
Слайд 9

Using Case Conversion Functions Display the employee number, name, and department

Using Case Conversion Functions

Display the employee number, name, and department number

for employee Blake.

SQL> SELECT empno, ename, deptno
2 FROM emp
3 WHERE ename = 'blake';
no rows selected

Слайд 10

CONCAT('Good', 'String') SUBSTR('String',1,3) LENGTH('String') INSTR('String', 'r') LPAD(sal,10,'*') GoodString Str 6 3

CONCAT('Good', 'String')
SUBSTR('String',1,3)
LENGTH('String')
INSTR('String', 'r')
LPAD(sal,10,'*')

GoodString
Str
6
3
******5000

Function

Result

Character Manipulation Functions

Manipulate character strings

Слайд 11

Using the Character Manipulation Functions SQL> SELECT ename, CONCAT (ename, job),


Using the Character Manipulation Functions

SQL> SELECT ename, CONCAT (ename, job), LENGTH(ename),

2 INSTR(ename, 'A')
3 FROM emp
4 WHERE

SUBSTR(job,1,5) = 'SALES';

ENAME CONCAT(ENAME,JOB) LENGTH(ENAME) INSTR(ENAME,'A')
---------- ------------------- ------------- ----------------
MARTIN MARTINSALESMAN 6 2
ALLEN ALLENSALESMAN 5 1
TURNER TURNERSALESMAN 6 0
WARD WARDSALESMAN 4 2

Слайд 12

Number Functions ROUND: Rounds value to specified decimal ROUND(45.926, 2) 45.93

Number Functions

ROUND: Rounds value to specified decimal
ROUND(45.926, 2) 45.93
TRUNC: Truncates value to specified decimal
TRUNC(45.926, 2)

45.92
MOD: Returns remainder of division
MOD(1600, 300) 100
Слайд 13

Using the ROUND Function SQL> SELECT ROUND(45.923,2), ROUND(45.923,0), 2 ROUND(45.923,-1) 3


Using the ROUND Function

SQL> SELECT ROUND(45.923,2), ROUND(45.923,0),
2 ROUND(45.923,-1)
3 FROM

DUAL;

ROUND(45.923,2) ROUND(45.923,0) ROUND(45.923,-1)
--------------- -------------- -----------------
45.92 46 50

Слайд 14

SQL> SELECT TRUNC(45.923,2), TRUNC(45.923), 2 TRUNC(45.923,-1) 3 FROM DUAL; TRUNC(45.923,2) TRUNC(45.923)


SQL> SELECT TRUNC(45.923,2), TRUNC(45.923),
2 TRUNC(45.923,-1)
3 FROM DUAL;

TRUNC(45.923,2) TRUNC(45.923) TRUNC(45.923,-1)
---------------

------------- ---------------
45.92 45 40

Using the TRUNC Function

Слайд 15

Using the MOD Function Calculate the remainder of the ratio of


Using the MOD Function

Calculate the remainder of the ratio of salary

to commission for all employees whose job title is a salesman.

SQL> SELECT ename, sal, comm, MOD(sal, comm)
2 FROM emp
3 WHERE job = 'SALESMAN';

ENAME SAL COMM MOD(SAL,COMM)
---------- --------- --------- -------------
MARTIN 1250 1400 1250
ALLEN 1600 300 100
TURNER 1500 0 1500
WARD 1250 500 250

Слайд 16

Working with Dates Oracle stores dates in an internal numeric format:

Working with Dates

Oracle stores dates in an internal numeric format: Century,

year, month, day, hours, minutes, seconds.
The default date format is DD-MON-YY.
SYSDATE is a function returning date and time.
DUAL is a dummy table used to view SYSDATE.
Слайд 17

Arithmetic with Dates Add or subtract a number to or from

Arithmetic with Dates

Add or subtract a number to or from a

date for a resultant date value.
Subtract two dates to find the number of days between those dates.
Add hours to a date by dividing the number of hours by 24.
Слайд 18

Using Arithmetic Operators with Dates SQL> SELECT ename, (SYSDATE-hiredate)/7 WEEKS 2


Using Arithmetic Operators with Dates

SQL> SELECT ename, (SYSDATE-hiredate)/7 WEEKS
2 FROM emp

3 WHERE deptno = 10;

ENAME WEEKS
---------- ---------
KING 830.93709
CLARK 853.93709
MILLER 821.36566

Слайд 19

Date Functions Number of months between two dates MONTHS_BETWEEN ADD_MONTHS NEXT_DAY

Date Functions

Number of months between two dates

MONTHS_BETWEEN

ADD_MONTHS

NEXT_DAY

LAST_DAY

ROUND

TRUNC

Add calendar months to date

Next

day of the date specified

Last day of the month

Round date

Truncate date

FUNCTION

DESCRIPTION

Слайд 20

MONTHS_BETWEEN ('01-SEP-95','11-JAN-94') Using Date Functions ADD_MONTHS ('11-JAN-94',6) NEXT_DAY ('01-SEP-95','FRIDAY') LAST_DAY('01-SEP-95') 19.6774194 '11-JUL-94' '08-SEP-95' '30-SEP-95'

MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')

Using Date Functions

ADD_MONTHS ('11-JAN-94',6)

NEXT_DAY ('01-SEP-95','FRIDAY')

LAST_DAY('01-SEP-95')

19.6774194

'11-JUL-94'

'08-SEP-95'

'30-SEP-95'

Слайд 21

Using Date Functions

Using Date Functions

Слайд 22

Conversion Functions Implicit datatype conversion Explicit datatype conversion Datatype conversion

Conversion Functions

Implicit datatype
conversion

Explicit datatype
conversion

Datatype
conversion

Слайд 23

Implicit Datatype Conversion For assignments, Oracle can automatically convert VARCHAR2 or

Implicit Datatype Conversion

For assignments, Oracle can automatically convert

VARCHAR2 or CHAR

From

To

VARCHAR2 or

CHAR

NUMBER

DATE

NUMBER

DATE

VARCHAR2

VARCHAR2

Слайд 24

Implicit Datatype Conversion For expression evaluation, Oracle can automatically convert VARCHAR2

Implicit Datatype Conversion

For expression evaluation, Oracle can automatically convert

VARCHAR2 or CHAR

From

To

VARCHAR2

or CHAR

NUMBER

DATE

Слайд 25

Explicit Datatype Conversion NUMBER CHARACTER TO_CHAR

Explicit Datatype Conversion

NUMBER

CHARACTER

TO_CHAR

Слайд 26

TO_CHAR Function with Dates The format model: Must be enclosed in

TO_CHAR Function with Dates

The format model:
Must be enclosed in single quotation

marks and is case sensitive
Can include any valid date format element
Has an fm element to remove padded blanks or suppress leading zeros
Is separated from the date value by a comma

TO_CHAR(date, 'fmt')

Слайд 27

YYYY Date Format Model Elements YEAR MM MONTH DY DAY Full

YYYY

Date Format Model Elements

YEAR

MM

MONTH

DY

DAY

Full year in numbers

Year spelled out

2-digit value for

month

3-letter abbreviation of the day of the week

Full name of the day

Full name of the month

Слайд 28

Date Format Model Elements Time elements format the time portion of

Date Format Model Elements

Time elements format the time portion of the

date.
Add character strings by enclosing them in double quotation marks.
Number suffixes spell out numbers.

HH24:MI:SS AM

15:45:32 PM

DD "of" MONTH

12 of OCTOBER

ddspth

fourteenth

Слайд 29

Using TO_CHAR Function with Dates SQL> SELECT ename, 2 TO_CHAR(hiredate, 'fmDD


Using TO_CHAR Function with Dates

SQL> SELECT ename,
2 TO_CHAR(hiredate, 'fmDD Month

YYYY') HIREDATE
3 FROM emp;

ENAME HIREDATE
---------- -----------------
KING 17 November 1981
BLAKE 1 May 1981
CLARK 9 June 1981
JONES 2 April 1981
MARTIN 28 September 1981
ALLEN 20 February 1981
...
14 rows selected.

Слайд 30

TO_CHAR Function with Numbers Use these formats with the TO_CHAR function

TO_CHAR Function with Numbers

Use these formats with the TO_CHAR function to

display a number value as a character.

TO_CHAR(number, 'fmt')

9

0

$

L

.

,

Represents a number

Forces a zero to be displayed

Places a floating dollar sign

Uses the floating local currency symbol

Prints a decimal point

Prints a thousand indicator

Слайд 31

Using TO_CHAR Function with Numbers SQL> SELECT TO_CHAR(sal,'$99,999') SALARY 2 FROM


Using TO_CHAR Function with Numbers

SQL> SELECT TO_CHAR(sal,'$99,999') SALARY
2 FROM emp
3 WHERE ename

= 'SCOTT';

SALARY
--------
$3,000

Слайд 32

TO_NUMBER and TO_DATE Functions Convert a character string to a number

TO_NUMBER and TO_DATE Functions

Convert a character string to a number

format using the TO_NUMBER function

TO_NUMBER(char)

Convert a character string to a date format using the TO_DATE function

TO_DATE(char[, 'fmt'])

Слайд 33

RR Date Format Current Year 1995 1995 2001 2001 Specified Date

RR Date Format

Current Year
1995
1995
2001
2001

Specified Date
27-OCT-95
27-OCT-17
27-OCT-17
27-OCT-95

RR Format
1995
2017
2017
1995

YY Format
1995
1917
2017
2095

If two digits of the

current year are

0-49

0-49

50-99

50-99

The return date is in the current century.

The return date is in the century after the current one.

The return date is in the century before the current one.

The return date is in the current century.

If the specified two-digit year is

Слайд 34

NVL Function Converts null to an actual value Datatypes that can

NVL Function

Converts null to an actual value
Datatypes that can be used

are date, character, and number.
Datatypes must match
NVL(comm,0)
NVL(hiredate,'01-JAN-97')
NVL(job,'No Job Yet')
Слайд 35

SQL> SELECT ename, sal, comm, (sal*12)+NVL(comm,0) 2 FROM emp; Using the


SQL> SELECT ename, sal, comm, (sal*12)+NVL(comm,0)
2 FROM emp;

Using the NVL

Function

ENAME SAL COMM (SAL*12)+NVL(COMM,0)
---------- --------- --------- --------------------
KING 5000 60000
BLAKE 2850 34200
CLARK 2450 29400
JONES 2975 35700
MARTIN 1250 1400 16400
ALLEN 1600 300 19500
...
14 rows selected.

Слайд 36

DECODE Function Facilitates conditional inquiries by doing the work of a

DECODE Function

Facilitates conditional inquiries by doing the work of a CASE

or IF-THEN-ELSE statement

DECODE(col/expression, search1, result1
[, search2, result2,...,]
[, default])

Слайд 37

Using the DECODE Function SQL> SELECT job, sal, 2 DECODE(job, 'ANALYST',


Using the DECODE Function

SQL> SELECT job, sal,
2 DECODE(job, 'ANALYST', SAL*1.1,

3 'CLERK', SAL*1.15,
4 'MANAGER', SAL*1.20,
5 SAL)
6 REVISED_SALARY
7 FROM emp;

JOB SAL REVISED_SALARY
--------- --------- --------------
PRESIDENT 5000 5000
MANAGER 2850 3420
MANAGER 2450 2940
...
14 rows selected.

Слайд 38

Nesting Functions Single-row functions can be nested to any level. Nested

Nesting Functions

Single-row functions can be nested to any level.
Nested functions are

evaluated from deepest level to the least deep level.

F3(F2(F1(col,arg1),arg2),arg3)

Step 1 = Result 1

Step 2 = Result 2

Step 3 = Result 3

Слайд 39

Nesting Functions SQL> SELECT ename, 2 NVL(TO_CHAR(mgr),'No Manager') 3 FROM emp


Nesting Functions

SQL> SELECT ename,
2 NVL(TO_CHAR(mgr),'No Manager')
3 FROM emp
4 WHERE mgr IS

NULL;

ENAME NVL(TO_CHAR(MGR),'NOMANAGER')
---------- -----------------------------
KING No Manager

Слайд 40

Summary Use functions to: Perform calculations on data Modify individual data

Summary

Use functions to:
Perform calculations on data
Modify individual data items
Manipulate output for

groups of rows
Alter date formats for display
Convert column datatypes
Слайд 41

Practice Overview Creating queries that require the use of numeric, character,

Practice Overview

Creating queries that require the use of numeric, character, and

date functions
Using concatenation with functions
Writing case-insensitive queries to test the usefulness of character functions
Performing calculations of years and months of service for an employee
Determining the review date for an employee
Слайд 42

Слайд 43

Слайд 44

Слайд 45