Lab 03
Lab 03
Customize Output
Lesson Agenda
3-2
SQL Functions
Input Output
Function
arg n
3-3
Two Types of SQL Functions
Functions
Single-row Multiple-row
functions
functions
Return one result Return one result
per row per set of rows
3-4
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
3-5
Single-Row Functions
Single-row
Character Number
functions
Date
3-6
Lesson Agenda
Character
functions
Case-conversion Character-manipulation
functions functions
LOWER CONCAT
UPPER
INITCAP SUBSTR
LENGTH
INSTR
LPAD | RPAD
TRIM
3-8 REPLACE
Case-Conversion Functions
3 - 11
Using Case-Conversion Functions
3 - 12
Character-Manipulation Functions
Function Result
CONCAT('Hello', 'World') HelloWorld
SUBSTR('HelloWorld',1,5) Hello
LENGTH('HelloWorld') 10
INSTR('HelloWorld', 'W') 6
LPAD(salary,10,'*') *****24000
RPAD(salary, 10, '*') 24000*****
REPLACE BLACK and BLUE
('JACK and JUE','J','BL')
TRIM('H' FROM 'HelloWorld') elloWorld
3 - 13
Using the Character-Manipulation Functions
1
SELECT employee_id, CONCAT(first_name, last_name) NAME,
job_id, LENGTH (last_name), 2
INSTR(last_name, 'a') "Contains 'a'?"
FROM employees 3
WHERE SUBSTR(job_id, 4) = 'REP';
1 2 3
3 - 14
Lesson Agenda
3 - 15
Number Functions
Function Result
ROUND(45.926, 2) 45.93
TRUNC(45.926, 2) 45.92
MOD(1600, 300) 100
3 - 16
Using the ROUND
Function
1 2
SELECT ROUND(45.923,2), ROUND(45.923,0),
ROUND(45.923,-1) 3
FROM DUAL;
1 2 3
3 - 17
Using the TRUNC
Function
1 2
SELECT TRUNC(45.923,2), TRUNC(45.923),
TRUNC(45.923,-1) 3
FROM DUAL;
1 2 3
3 - 18
Using the MOD
Function
For all employees with the job title of Sales Representative,
calculate the remainder of the salary after it is divided by 5,000.
3 - 19
Lesson Agenda
3 - 20
Working with Dates
3 - 21
RR Date
Format
Current
Current Year
Year Specified Date RR Format YY Format
1995 27-OCT-95 1995 1995
1995 27-OCT-17 2017 1917
2001 27-OCT-17 2017 2017
2001 27-OCT-95 1995 2095
0–49 50–99
If two digits The return date is in The return date is in
of the 0–49 the current century the century before
current the current one
year are: The return date is in The return date is in
50–99 the century after the current century
the current one
3 - 22
Using the SYSDATE
Function
SYSDATE is a function that
returns:
• Date
SELECT sysdate
FROM dual;
3 - 24
Arithmetic with Dates
3 - 25
Using Arithmetic Operators
with Dates
3 - 26
Lesson Agenda
3 - 27
Date-Manipulation Functions
Function Result
MONTHS_BETWEEN Number of months between two dates
ADD_MONTHS Add calendar months to date
NEXT_DAY Next day of the date specified
LAST_DAY Last day of the month
ROUND Round date
TRUNC Truncate date
3 - 28
Using Date Functions
Function Result
MONTHS_BETWEEN 19.6774194
('01-SEP-95','11-JAN-94')
ADD_MONTHS (‘31-JAN-96',1) ‘29-FEB-96'
NEXT_DAY ('01-SEP-95','FRIDAY') '08-SEP-95'
LAST_DAY ('01-FEB-95') '28-FEB-95'
3 - 29
Using ROUND and TRUNC Functions with
Dates
Assume SYSDATE = '25-JUL-
03':
Function Result
ROUND(SYSDATE,'MONTH') 01-AUG-03
ROUND(SYSDATE ,'YEAR') 01-JAN-04
TRUNC(SYSDATE ,'MONTH') 01-JUL-03
TRUNC(SYSDATE ,'YEAR') 01-JAN-03
3 - 30
Quiz
3 - 31
Thank You