Ada dua ketegori fungsi-fungsi dalam Oracle :
1. Single-Row : Menerima satu baris sebagai operand-nya
2. Multiple-Row : Menerima lebih dari satu sebagai operand-nya
Fungsi-fungsi seperti Group By, Sum, Max, Min, Count dan Avg merupakan contoh
fungsi yang termasuk dalam multiple-row.
Sedangkan fungsi-fungsi Single-Row terbagi menjadi :
a. Fungsi Character / String
b. Fungsi Date (Tanggal dan waktu)
c. Fungsi Numeric
d. Fungsi General
Fungsi Karakter / String
merupakan fungsi yang berorientasi ke string, yaitu :
Fungsi Numerik
Merupakan fungsi-fungsi yang beoreintasi pada nilai numerik, yaitu :
Fungsi General
Fungsi general merupakan fungsi yang tidak termasuk dalam fungsi string, numeric dan tanggal. Fungsi - fungsi tersebut antara lain adalah :
SQL92 menyediakan ekspresi DATE, TIME, NOW(), SYSDATE() dan TIMESTAMP.
DATE : menyatakan sebuah tanggal dengan susunan yyyy-bb-tt
TIME : menyatakan waktu dengan format jj:mm:dd
TIMESTAMP : menyatakan sebuah tanggal dan waktu, misalnya 1964-9-1 5:32:24
NOW() akan menghasilkan sebuah tanggal dan waktu seperti Timestamp
contoh :
menampilkan nama mahasiswa dan tanggal lahir yang tanggal lahirnya diatas tanggal 1964/9/1
contoh 1 :
menampilkan nama mahasiswa yang usianya lebih dari atau sama dengan 20 tahun.
1. Single-Row : Menerima satu baris sebagai operand-nya
2. Multiple-Row : Menerima lebih dari satu sebagai operand-nya
Fungsi-fungsi seperti Group By, Sum, Max, Min, Count dan Avg merupakan contoh
fungsi yang termasuk dalam multiple-row.
Sedangkan fungsi-fungsi Single-Row terbagi menjadi :
a. Fungsi Character / String
b. Fungsi Date (Tanggal dan waktu)
c. Fungsi Numeric
d. Fungsi General
Fungsi Karakter / String
merupakan fungsi yang berorientasi ke string, yaitu :
Function | Result |
Lower(‘MySQL Database Server’) | Mysql database server |
Upper(‘MySQL Database Server’) | MYSQL DATABASE SERVER |
Initcap(‘MYSQL DATABASE SERVER’) | Mysql Database Server |
Concat(‘MySQL’,’Database Server’) | MySQL Database Server |
Substr(‘MySQL Database Server’,3,3) | SQL |
Left(‘MySQL Database Server’,5) | MySQL |
Right(‘MySQL Database Server’,6) | Server |
Length(‘MySQL Database Server’) | 22 |
Instr(‘MySQL Database Server’,’Q’) | 4 |
Ascii(‘a’) | 97 |
Ascii(‘b’) | 98 |
Ascii(null) | Null |
Char(65) | A |
Conv(‘111111’,2,8) | 377 |
Conv(‘e’,16,2) | 1110 |
Format(1234.56789,3) | 1,234.568 |
Format(1000000.00,0) | 1,000,000 |
Lpad(800,0,’*’) | *****800 |
Rpad(800,0,’*’) | 800***** |
Ltrim(‘ TAMAN ‘) | TAMAN |
Rtrim(‘ TAMAN ’) | TAMAN |
Repeat(‘x’,10) | Xxxxxxxxxx |
Repeat(‘abc’,3) | Abcabcabc |
Reverse(‘TAMAN) | NAMAT |
Replace(‘ada’,’siapa’,’siapakah’) | Adakah |
Insert(‘nighttime’,6,4,’fall’) | Nightfall |
Trim(‘ TAMAN ’) | TAMAN |
Fungsi Numerik
Merupakan fungsi-fungsi yang beoreintasi pada nilai numerik, yaitu :
Fungsi | Hasil | Keterangan |
Truncate(45.923,2) | 45.92 | |
Truncate(45.923) | 45 | |
Truncate(45.923, -1) | 40 | |
Truncate(451.923, -2) | 400 | |
Round(45.923, 2) | 45.92 | |
Round(45.927, 2) | 45.93 | |
Round(45.927) | 46 | |
Round(45.927, -1) | 50 | |
Round(45.927, -2) | 0 | |
Mod(10,3) | 1 | |
Sqrt(625) | 25 | |
Sign(15.803) | 1 | |
Sign(0) | 0 | |
Sign(-98) | -1 | |
Floor(3.8) | 3 | Return the largest integer |
Floor(-3.8) | -4 | Return the largest integer |
Ceiling(3.8) | 4 | Return the smallest integer |
Ceiling(-3.8) | -3 | Return the smallest integer |
Abs(13.5) | 13.5 | Absolute value |
Abs(-13.5) | 13.5 | Absolute value |
Acos(1) | 0.000000 | Arccosine of |
Cos(0) | 1.000000 | Cosine of |
Cot(PI()/2) | 0.000000 | Cotangent of |
Asin(1) | 1.570796 | Arcsine of |
Sin(0) | 0.000000 | Sine of |
Tan(0) | 0.000000 | Tangent of |
Atan(1) | 0.785398 | Arctangent of |
Log(1) | 0.000000 | Logaritm of |
Log 10(10) | 1.000000 | Logaritm of |
PI() | 3.141593 | The value of π |
Fungsi General
Fungsi general merupakan fungsi yang tidak termasuk dalam fungsi string, numeric dan tanggal. Fungsi - fungsi tersebut antara lain adalah :
- Fungsi Encode
digunakan untuk mengkonversikan string tertentu ke binary string.
Bentuk umum :
Encode(str, password)
dimana :
str adalah string yang akan dikonversi
password adalah kata kunci untuk perintah konversi tersebut
Contoh :
select encode('taman','bunga');
- Fungsi Decode
Digunakan untuk mengembalikan nilai ke string yang telah dilakukan proses encode.
bentuk umum
Decode(str, password)
Keterangan :
str adalah string yang nilainya akan dikembalikan
password adalah kata kunci untuk perintah konversi tersebut
Contoh :
select decode(encode('taman','bunga'),'bunga');
SQL92 menyediakan ekspresi DATE, TIME, NOW(), SYSDATE() dan TIMESTAMP.
DATE : menyatakan sebuah tanggal dengan susunan yyyy-bb-tt
TIME : menyatakan waktu dengan format jj:mm:dd
TIMESTAMP : menyatakan sebuah tanggal dan waktu, misalnya 1964-9-1 5:32:24
NOW() akan menghasilkan sebuah tanggal dan waktu seperti Timestamp
contoh :
menampilkan nama mahasiswa dan tanggal lahir yang tanggal lahirnya diatas tanggal 1964/9/1
select nama,tgl_lhr from mhs where tgl_lhr > date '1977/01/01'; atau select nama,tgl_lhr from mhs where tgl_lhr > '1977/01/01'; atau select nama,tgl_lhr from mhs where tgl_lhr > date '1977-01-01';Sql menyediakan sejumlah fungsi tanggal sebagai berikut :
Fungsi | Keterangan |
Current_date atau Curadate() | Menghasilkan tanggal sekarang |
Current_time atau Curtime() | Menghasilkan waktu sekarang |
Current_timestamp | Menghasilkan tanggal dan waktu sekarang |
Month() | Menghasilkan angka nomor utut bulan |
Monthname() | Menghasilkan nama bulan |
Dayofmonth() | Menghasilkan angka nomor urut tanggal |
Year() | Menghasilkan angkat tahun |
Dayname() | Menghasilkan nama hari |
Hour() | Menghasilkan angka jam |
Minute() | Menghasilkan angka menit |
Second() | Menghasilkan angka detik |
Weekday() | Manghasilkan angka urut dalam satu minggu |
select current_date, current_time, current_timestamp; hasilnya : 2011-04-09 07:10:42 2011-04-09 07:10:42contoh 2 :
select monthname(current_date),month(current_date),year(current_date); hasilnya : april 8 2011contoh 3 :
select nama, floor((to_days(current_date)-to_days(tgl_lhr))/365) as umur from mhs; hasilnya : dedi 25 select nama,(to_days(current_date)-to_day(tgl_lhr))/365 as umur from mhs; hasilnya : dedi 25.82 select nama,year(current_date)-year(tgl_lhr) as umur from mhs; hasil : dedi 26contoh 4 :
menampilkan nama mahasiswa yang usianya lebih dari atau sama dengan 20 tahun.
select nama from mhs where year(current_date)-year(tgl_lhr) >= 20;