fungsi bawaan oracle
TRANSCRIPT
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
Kompetensi
Mahasiswa dapat menjelaskan tipe-tipe function di SQL
Mahasiswa dapat menggunakan fungsi yang berkaitan dengan karakter, angka (number), dan tanggal pada statement SELECT
Agenda Perkuliahan
Single-row SQL functions
Function Character
Functions Pengolah Angka (Number)
Bekerja dengan Tanggal
Function Manipulasi Tanggal
SQL Functions
Function
Input
arg 1
arg 2
arg n
Function performs action
Output
Resultvalue
Tipe Function di SQL
Single-row functions
Multiple-rowfunctions
Return one result per row
Return one result per set of rows
Functions
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,...)]
Cakupan Single Row Function
Conversion
Character
Number
Date
GeneralSingle-row functions
Function Character
Characterfunctions
LOWERUPPERINITCAP
CONCATSUBSTRLENGTHINSTRLPAD | RPADTRIMREPLACE
Case-conversion functions
Character-manipulationfunctions
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
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';
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
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
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
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
Function TRUNC
SELECT TRUNC(45.923,2), TRUNC(45.923), TRUNC(45.923,-1)FROM DUAL;
3
1
1 2
2 3
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';
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';
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
Function SYSDATE
SYSDATE adalah sebuah function yang menghasilkan nilai:
Date
Time
SELECT sysdateFROM dual;
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;
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
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
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
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