Upload
sef
View
43
Download
0
Embed Size (px)
DESCRIPTION
Chapter Nine Data Manipulation Language (DML) Functions. Objectives Single Row functions Character functions Number functions Date functions. Functions. Introduction Types of functions Single row Multiple rows. Single Row Functions:. FACTS: Act on each row - PowerPoint PPT Presentation
Citation preview
Chapter NineData Manipulation Language (DML)
Functions
Objectives• Single Row functions
• Character functions
• Number functions
• Date functions
2
Functions
• Introduction
• Types of functions– Single row– Multiple rows
Single Row Functions:
•FACTS:– Act on each row
– Return one result per row
– May modify the data type
– Can be nested
4
Single Row Functions
• Character
• Number
• Date
• Conversion
• General
5
Character Manipulation:
• LOWER(Col | Exp)LOWER(‘Database course’)
• UPPER (Col | Exp)UPPER (‘Database course’)
• INITCAP (Col | Exp)
INITCAP (‘Database course’)
6
Character Manipulation
• CONCAT (Col1 | Exp1, Col2 | Exp2)CONCAT(‘This ‘,’that’)
• SUBSTR(Col | Exp,n[,m])SUBSTR(‘This is it’,2,5)
• LPAD(Col | Exp,n,’string’)LPAD(name,9,’.’)
7
Character Manipulation
• LENGTH(Col | Exp)LENGTH(‘this is it’)
• CHR(integer)CHR(97)
• INSTR(‘Computer’,’m’)
8
List(Characters):
• Example:
• SELECT LOWER(name), UPPER(major), LENGTH(name)
FROM student;
• SELECT CONCAT(Name , Address) , GPAFROM Student;
• SELECT Name || ‘--->‘ || Address , GPA
FROM Student;
9
List(Characters):
• SELECT RPAD (Name, 40, ‘.’), GPA
FROM Student;
JOHN............... 3.1
MARY ............. 3.2
• SELECT RPAD (Name, 20), GPA
FROM Student;
MARY 3.2
MOHAMMAD 3.3
• SELECT LPAD (Name, 20), GPA
FROM Student;
MARY 3.2
MOHAMMAD 3.3
10
List(Characters):
• RTRIM(Col)
RTRIM (Name)
RTRIM (Name, ‘.’)
LTRIM (Name, ‘ABC’)
LTRIM ( RTRIM( Name, ‘.’ ), ‘A’)
From Student;
11
List(Characters):
• SELECT NameFROM StudentWHERE LENGTH(Address)<20;
• SELECT Name, SUBSTR (SSN, 5 ,2)
FROM Student;
• SELECT Name, SUBSTR (SSN,5)FROM Student;
12
List(Characters):
• SELECT RPAD (INITCAP(LOWER(Name)),70,’.’),
SUBSTR (SSN,5)
FROM Student;
• SELECT NameFROM StudentWHERE SUBSTR (SSN,5,2)=’80’;
• SELECT Name, SUBSTR (SSN,-4)FROM Student;
13
List(Characters):
• SELECT Name, INSTR (Name,’R’)FROM Student;
------------------------------------------------
MARY 3JOHN 0ROBIN 1
• SELECT Name, INSTR (Name,’R’,1,2)FROM Student;
• SELECT Name, INSTR(Address,’FROSTBURG’)FROM Student;
14
List(Characters):
Character Manipulations
• REPLACE(string, searchSt [,replace])REPLACE(address,’21532’, ‘21211’)
• TRANSLATE (string, fromSt, toSt)TRANSLATE(‘12345678’, ‘123’, ‘999’)
• ASCII(string)ASCII(‘A’)
15
List(Characters):
Character Manipulations
• SOUNDEX
SELECT name, GPA
FROM student
WHERE
SOUNDEX (name)=SOUNDEX(‘LAVALE’);
16
Character Manipulation
New Functions:
REGEXP_SUBSTR
REGEXP_INSTR
REGEXP_LIKE
REGEXP_REPLACE
17
LIST(Numbers)
• ROUND (value, precision)ROUND(234.1161,2)
• TRUNC(value, precision)TRUNC(234.1161,2)
• POWER(value,exponent)POWER(3,2)
• MOD(value1, value2)MOD(900,400)
18
LIST(Numbers)
• SELECT ROUND(Salary,1)
FROM Faculty;
• SELECT TRUNC(234.111,2),
FROM DUAL;
TRUNC(234.567);
TRUNC(234.5678,-2);
19
DATE:
• Date is stored in an internal numeric format: century, year, month, day, hours, minutes, second
• Default date is ‘DD-MON-YY’
• SYSDATE• CURRENT_DATE• STSTIMESTAMP
25-OCT-04 04.15.31.652000 PM
20
DATE:
• Example:
List the ages of students
• SELECT name, SYSDATE - B_Date
FROM student;
21
Date
• Date + number
• Date – number
• Date – date
• Date + number/24
22
DATE:
• MONTHS_BETWEEN(day1,day2)
• SELECT name, MONTHS_BETWEEN(SYSDATE , B_Date)
age_in_month
FROM Student;
23
DATE:
• ADD_MONTHS (date,n)SELECT name, ADD_MONTHS(B_Date,5) age
FROM Student;
SELECT name, ADD_MONTHS(B_Date,-15) age
FROM Student;
24
DATE:
• ROUND(date [,fmt])
• SELECT name,
ROUND (B_Date,’MONTH’)
FROM Student;
• SELECT name, ROUND(B_Date,’YEAR’)
FROM Student;
25
DATE:
• ROUND(date [,fmt])
• SELECT ’25-OCT-04’ - ROUND
(SYSDATE)
FROM DOAL;
• SELECT name, ROUND(B_Date,’YEAR’)
FROM Student;
26
DATE:
• NEXT_DAY
• SELECT cycledate FROM paydate;
• SELECT NEXT_DAY(cycledate, ‘FRIDAY’)
FROM paydate;
27
Conversion Function:
Implicit conversion (Automatic):
– CHAR or VARCHAR2 to NUMBER– CHAR or VARCHAR2 to DATE– NUMBER to VARCHAR2– DATE to VARCHAR2
28
Conversion Function:
Explicit datatype conversion:
– TO_CHAR (NUMBER [,‘fmt’] )– TO_CHAR (DATE [,‘fmt’] )– TO_DATE (CHAR [,‘fmt’] )– TO_NUMBER (CHAR [,‘fmt’] )
29
Conversion Function:
SELECT TO_CHAR(b_date,’MM/YY’)FROM student;
Format:• YYYY• YYY• YY• YEAR• MM• MONTH• DD• DY• DAY• HH HH12 HH24• MI• SS
30
Conversion Function:
• SELECTSUBSTR(TO_CHAR(111223333),1,3)
||‘-’ ||
SUBSTR (TO_CHAR(111223333),4,2) || ‘-’ ||
SUBSTR(TO_CHAR(111223333),6)
FROM Student;
31
Conversion Function:
• SELECT SUBSTR(ssn,1,3)
|| ‘-’ ||
SUBSTR(ssn,4,2)
|| ‘-’ ||
SUBSTR(ssn,6)
FROM Student;
32
Use of DECODE:
• DECODE: DECODE (col/exp, compare1, result1
[,compare2, result2, …] [,default] )
SELECT name, salary, DECODE (Dept, ‘COSC’, salary*2.2,
‘MATH’, salary*1.2, ‘ART’, salary*0.2, salary)
FROM Faculty;