Character Function
•ASCII() dan CHR() digunakan utuk mengetahui nilai ASCII dan CHRSQL> SELECT ASCII('a'), ASCII('A') FROM DUAL;
SQL> SELECT CHR(97), CHR(65) FROM DUAL;
•CONCAT(x,y) Digunakan untuk menggabungkan karakter x dan y.
SQL> SELECT CONCAT(id_pegawai, nama_pegawai)
2 FROM pegawai WHERE kode_bag=31;
SQL> SELECT CONCAT('saya',' menulis cerita') dual;
•Initcap - > mengubah karakter awal dari string x menjadi huruf capital.
•Lower -> mengubah string x menjadi huruf kecil
•Upper -> mengubah string x mengjadi huruf capital
SQL> SELECT 'sATu kaTa' as "String", INITCAP('sATu kaTa') as "Initcap",
3 LOWER('sATu kaTa') as "Lower", UPPER('sATu kaTa') as "Upper“ From Dual;
SQL> SELECT nama_pegawai FROM pegawai
3 WHERE nama_pegawai='ahmad kosasih';
SQL> SELECT nama_pegawai FROM pegawai
3 WHERE LOWER(nama_pegawai)='ahmad kosasih‘;
SQL> SELECT nama_pegawai, INSTR(nama_pegawai,'A') as "Posisi 'A'“ FROM pegawai;
•LENGTH() digunakan untuk mengembalikan jumlah karakter dari string x.
SQL> SELECT nama_pegawai, LENGTH(nama_pegawai) AS "Jml Karakter“ FROM pegawai;
•LTRIM -> digunakan untuk memotong string pada sisi kiri
•RTRIM -> digunakan untuk memotong string pada sisi kanan
•TRIM -> digunakan untuk memotong string pada sisi kiri dan kanan
SQL> SELECT 'aabbaabbaa' as "STRING", LTRIM('aabbaabbaa','a') as "LTRIM",
3 RTRIM('aabbaabbaa','a') as "RTRIM", TRIM('a' FROM 'aabbaabbaa') as "TRIM"
5 FROM dual;
•REPLACE(x,y,z) digunakan untuk mengganti bagian y menjadi bagian z pada string x.
SQL> SELECT nama_brg, REPLACE(nama_brg,'Gigabyte','GB') as BARU
3 FROM barang WHERE nama_brg LIKE 'G%';
•SUBSTR(x,y [,z]) digunakan untuk menampilkan substring mulai dari posisi y sebanyak z karakater dari string x.
SQL> SELECT nama_pegawai, SUBSTR(nama_pegawai,1,4),
3 SUBSTR(nama_pegawai,-10,5) FROM pegawai;
Numeric Function
•ABS() digunakan untuk mengembalikan nilai AbsolutSQL> SELECT -10 AS "Nilai1", ABS(-10) as "Absolut“ FROM dual;
•CEIL(X) ->Digunakan untuk pembulatan ke atas dari nilai decimal x.
SQL> SELECT CEIL(5.1) FROM dual;
• FLOOR(x) -> Digunakan untuk pembulatan ke bawah dari nilai decimal x.
SQL> SELECT FLOOR(5.1) FROM dual;
•MOD(x,y) -> Digunakan untuk mencari sisa bagi antara nilai x dengan y.
SQL> SELECT MOD(7,2) FROM dual;
SQL> SELECT nama_pegawai, gaji, MOD(gaji,1000000) FROM pegawai;
•ROUND(x [,y]) -> Digunakan untuk pembulatan dari nilai x ke decimal y kebelakang koma.
SQL> SELECT ROUND(5.71), ROUND(10.65634,2) FROM dual;
•TRUNC(x [,y]) -> Digunakan untuk memotong nilai x menjadi y decimal tanpa dilakukan pembulatan.
SQL> SELECT TRUNC(5.71), TRUNC(10.65634,2) FROM dual;
Date Function
•SYSDATE dan CURRENT_TIMESTAMP•Digunakan untuk menampilkan tanggal dan waktu system saat ini.
SQL> SELECT sysdate FROM dual;
SQL> SELECT current_timestamp FROM dual;
• MONTHS_BETWEEN
•MONTHS_BETWEEN(x,y) -> Digunakan untuk mencari jumlah bulan antara tanggal y dan tanggal x.
SQL> SELECT months_between('09-NOV-09','09-OCT-08') FROM dual;
•Fungsi-Fungsi Bulan lainnya
–ADD_MONTHS
–LAST_DAY
–NEXT_DAY
–ROUND
–TRUNC
General Function
•NVL() digunakan untuk menangani nilai null.SQL> SELECT nama_pegawai, gaji, pct_komisi,
2 gaji + (pct_komisi*gaji) as "Total“ FROM pegawai;
SQL> SELECT nama_pegawai, gaji, pct_komisi,
2 gaji + (NVL (pct_komisi,0)*gaji) as "Total“ FROM pegawai;
•NULLIF(x,y) digunakan untuk membandingkan nilai x dan y. Jika nilai x sama dengan nilai y maka akan menghasilkan nilai Null.
SQL> SELECT kode_brg, LENGTH(nama_brg) AS x, LENGTH(keterangan) AS y,
2 NULLIF(LENGTH(nama_brg),LENGTH(keterangan))
3 AS "NULLIF(x,y)“ FROM barang;
• CASE digunakan untuk percabangan seperti IF-THEN-ELSE
SQL> SELECT nama_pegawai, kode_bag, gaji as "Gaji",
2 CASE kode_bag WHEN 31 THEN gaji*1.1
3 WHEN 41 THEN gaji*1.15 ELSE gaji
4 END as "Gaji Baru“ FROM pegawai;
Group function
•AVG(x) di gunakan untuk menghitung nilai rata-rata dari kelompok data x.SQL> SELECT AVG(harga_jual) AS "Rata2 Harga Jual“ FROM barang;
SQL> SELECT AVG(gaji) AS "Rata-Rata Gaji“ From pegawai;
•COUNT(x) digunakan untuk menghitung jumlah data dari kelompok data x.
SQL> SELECT COUNT(id_pegawai) AS "Jlh Pegawai“ FROM pegawai;
•Jika ingin menghitung jumlah data sebaiknya gunakan kolom yang tidak ada nilai null.
SQL> SELECT COUNT(pct_komisi) AS "Jlh Pegawai“ FROM pegawai;
•Atau bisa menggunakan kolom ROWID.
SQL> SELECT COUNT(rowid) FROM pegawai;
•Max(x) Digunakan untuk mencari nilai paling tinggi dari kelompok data x dan MIN(x) digunakan untuk mencari nilai yang paling rendah dari kelompok data x.
SQL> SELECT MAX(harga_jual) AS "Harga Tertinggi",
2 MIN(harga_jual) AS "Harga Terendah“ FROM barang;
SQL> SELECT MAX(tgl_masuk) AS "Baru",
2 MIN(tgl_masuk) AS "Lama“ FROM pegawai;
•SUM(x) digunakan untuk menghitung jumlah total dari data-data yang ada di kelompok data x.
SQL> SELECT SUM(total) FROM hd_sales;
SQL> SELECT SUM(gaji) FROM pegawai;
Group By dan Having
SQL> SELECT kode_bag, SUM(gaji) as "TOTAL“ FROM pegawai
2 GROUP By kode_bag;
•ingin ditampilkan bagian yang rata-rata gaji pegawainya di atas 7000000.
SQL> SELECT kode_bag as "Bagian", AVG(gaji) as "Rata2"
2 FROM pegawai HAVING AVG(gaji)>7000000 GROUP BY kode_bag;
•Jika kita menyeleksinya menggunkan WHERE maka akan terjadi ERROR.
SQL> SELECT kode_bag as "Bagian", AVG(gaji) as "Rata2"
2 FROM pegawai WHERE AVG(gaji)>7000000 GROUP BY kode_bag;
WHERE AVG(gaji)>7000000
ERROR at line 4:
ORA-00934: group function is not allowed here
0 komentar: