Page 1
Single Row Function
MI2143 – Dasar SQLSemester Ganjil / Tahun Ajaran 2013-2014
Hanya dipergunakan untuk kepentingan pengajaran di Lingkungan Politeknik Telkom
Disajikan Oleh:
Dedy Rahman Wijaya, S.T., M.T. – [email protected]
Disusun Oleh:
Wardani Muhamad S.T., M.T. – wdm@politekniktelkom,ac.id
Page 2
Kompetensi
Mahasiswa dapat menjelaskan tipe-tipe function di SQL
Mahasiswa dapat menggunakan fungsi yang berkaitan dengan karakter, angka (number), dan tanggal pada statement SELECT
Page 3
Agenda Perkuliahan
Single-row SQL functions
Function Character
Functions Pengolah Angka (Number)
Bekerja dengan Tanggal
Function Manipulasi Tanggal
Page 4
SQL Functions
Function
Input
arg 1
arg 2
arg n
Function performs action
Output
Resultvalue
Page 5
Tipe Function di SQL
Single-row functions
Multiple-rowfunctions
Return one result per row
Return one result per set of rows
Functions
Page 6
Single Row Function
Single-row functions:
Dapat memanipulasi data
Dapat menggunakan beberapa argument dan menghasilkan sebuah nilai
Mengeksekusi tiap baris (row/record) yang akan dikembalikan
Mengembalikan sebuah nilai dari eksekusi baris (row/record)
Memungkinkan untuk memodifikasi tipe data
Dapat bersarang(nested)
Argumen dapat berupa sebuah column atau sebuah ekspresi
function_name [(arg1, arg2,...)]
Page 7
Cakupan Single Row Function
Conversion
Character
Number
Date
GeneralSingle-row functions
Page 8
Function Character
Characterfunctions
LOWERUPPERINITCAP
CONCATSUBSTRLENGTHINSTRLPAD | RPADTRIMREPLACE
Case-conversion functions
Character-manipulationfunctions
Page 9
Function Case-Convertion
Function berikut digunakan untuk mengkonversi bentuk (case) karakter pada string
sql courseLOWER('SQL Course')
Sql CourseINITCAP('SQL Course')
SQL COURSEUPPER('SQL Course')
HasilFunction
Page 10
Function Case-Convertion (2)
SELECT employee_id, last_name, department_idFROM employeesWHERE LOWER(last_name) = 'higgins';
Contoh penggunaan:
Tampilkan nomer pegawai, nama, dan nomer departemen untuk pegawai yang mempunyai nama Higgins:
SELECT employee_id, last_name, department_idFROM employeesWHERE last_name = 'higgins';
Page 11
Function untuk Manipulasi Karakter
Function berikut digunakan untuk memanipulasi karakter pada string:
BLACK and BLUE REPLACE('JACK and JUE','J','BL')
10LENGTH('HelloWorld')
6INSTR('HelloWorld', 'W')
*****24000LPAD(salary,10,'*')
24000*****RPAD(salary, 10, '*')
HelloWorldCONCAT('Hello', 'World')
elloWorldTRIM('H' FROM 'HelloWorld')
HelloSUBSTR('HelloWorld',1,5)
HasilFunction
Page 12
Function untuk Manipulasi Karakter (2)
SELECT employee_id, CONCAT(first_name, last_name) NAME, job_id, LENGTH (last_name), INSTR(last_name, 'a') "Contains 'a'?"FROM employeesWHERE SUBSTR(job_id, 4) = 'REP';
2
31 2
1
3
Page 13
Functions Pengolah Angka (Number)
ROUND: membulatkan nilai pada decimal tertentu
TRUNC: memotong nilai pada decimal tertentu
MOD: hasil sisa pembagian
100MOD(1600, 300)
45.93ROUND(45.926, 2)
45.92TRUNC(45.926, 2)
ResultFunction
Page 14
Function ROUND
SELECT ROUND(45.923,2), ROUND(45.923,0), ROUND(45.923,-1)FROM DUAL;
DUAL adalah table dummy yang dapat digunakan untuk menampilkan hasil dari function atau perhitungan.
3
31 2
1 2
Page 15
Function TRUNC
SELECT TRUNC(45.923,2), TRUNC(45.923), TRUNC(45.923,-1)FROM DUAL;
3
1
1 2
2 3
Page 16
Function MOD
Contoh penggunaaan:
Tampilkan seluruh pegawai yang bekerja sebagai Sales Representative, hitung sisa gajinya setelah dibagi dengan 5,000
SELECT last_name, salary, MOD(salary, 5000)FROM employeesWHERE job_id = 'SA_REP';
Page 17
Bekerja dengan Tanggal
Oracle menyimpan tanggal dalam format numeric internal yang terdiri atas: abad, tahun, bulan, hari, jam, menit, dan detik.
Default format tanggal disajikan adalah DD-MON-RR.
SELECT last_name, hire_dateFROM employeesWHERE hire_date < '07-02-2003';
Page 18
Format Tanggal RR
Current Year1995199520012001
27-OCT-9527-OCT-1727-OCT-1727-OCT-95
1995201720171995
1995191720172095
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 oneThe return date is in the current century
If the specified two-digit year is:
YY FormatRR FormatSpecified DateCurrent Year
Page 19
Function SYSDATE
SYSDATE adalah sebuah function yang menghasilkan nilai:
Date
Time
SELECT sysdateFROM dual;
Page 20
Aritmatika pada Tanggal
Penambahan atau pengurangan sebuah angka ke atau dari tanggal tertentu
Membagi dua tanggal untuk mencari jumlah hari diantara dua tanggal tersebut
Menambahkan jam ke tanggal dengan membagi jam dengan nilai 24
SELECT last_name, (SYSDATE-hire_date)/7 AS WEEKSFROM employeesWHERE department_id = 90;
Page 21
Function Manipulasi Tanggal
Hari berikutnyaNEXT_DAY
Hari terakhir pada suatu bulanLAST_DAY
Pembulatan tanggalROUND
Pemotongan tanggalTRUNC
Jumlah bulan diantara dua tanggalMONTHS_BETWEEN
Menambahkan satu bulan pada tanggal tertentuADD_MONTHS
HasilFunction
Page 22
Function Manipulasi Tanggal (2)
'08-SEP-95'NEXT_DAY ('01-SEP-95','FRIDAY')
'28-FEB-95'LAST_DAY ('01-FEB-95')
19.6774194MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')
‘29-FEB-96'ADD_MONTHS (‘31-JAN-96',1)
HasilFunction
Page 23
ROUND and TRUNC Functions untuk Tanggal
Asumsikan SYSDATE = '25-JUL-03':
01-JUL-03TRUNC(SYSDATE ,'MONTH')
01-JAN-03TRUNC(SYSDATE ,'YEAR')
01-AUG-03ROUND(SYSDATE,'MONTH')
01-JAN-04ROUND(SYSDATE ,'YEAR')
ResultFunction
Page 24
Referensi
Oracle Database 10g. SQL Fundamental 1 – Student Guide Volume 1. California: Oracle Publisher 2004.
Oracle Database 10g. SQL Reference 10g Release 2. California: Oracle Publisher 2005.
Oracle Database 11g. SQL Language Reference 11g Release 2. July 2013