oracle revision ii

71
RELATIONAL DATABASE MANAGEMENT SYSTEM (RDBMS) ORACLE PT PLN (PERSERO) UDIKLAT SEMARANG Oleh: Agus Harya Maulana PT PLN (PERSERO) P3B 2009

Upload: hendri-aditya

Post on 08-Nov-2015

15 views

Category:

Documents


3 download

DESCRIPTION

RDBMS Oracle

TRANSCRIPT

  • RELATIONAL DATABASE MANAGEMENT SYSTEM (RDBMS)

    ORACLE

    PT PLN (PERSERO) UDIKLAT SEMARANG

    Oleh:Agus Harya Maulana

    PT PLN (PERSERO) P3B2009

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    Daftar Isi

    1. Perintah SQL (Structured Query Language) ...................................................................................... 6 1.1. Menjalankan Oracle ........................................................................................................................ 6 1.2. Cara Koneksi ................................................................................................................................... 7 1.3. Mengaktifkan User HR .................................................................................................................... 7 1.4. Perintah Dasar SQL: SELECT ........................................................................................................ 7 1.5. Melihat Keseluruhan Tabel pada User Tertentu ............................................................................. 8 1.6. Melihat User di Database ................................................................................................................ 8 1.6.1. User yang Aktif ............................................................................................................................. 8 1.6.2. User yang Ada di dalam Database ............................................................................................... 8 1.7. Memilih Semua Kolom ..................................................................................................................... 9 1.8. Memilih Kolom Tertentu .................................................................................................................. 9 1.9. Persyaratan Penulisan Perintah SQL ............................................................................................. 9 1.10. Default untuk Heading Kolom ....................................................................................................... 9 2. Perbandingan Pernyataan SQL dengan Perintah iSQL*Plus .......................................................... 10 2.1. Overview tentang iSQL*Plus ......................................................................................................... 10 2.2. Menampilkan Struktur Tabel ......................................................................................................... 11 2.3. Interaksi dengan File Script .......................................................................................................... 11 2.4. Menyimpan Script Menggunakan Command Line ........................................................................ 11 2.5. Menggunakan Perintah dari File Script ke iSQL*Plus ................................................................. 12 2.6. Menjalankan Script di Command Line .......................................................................................... 12 2.7. Menyimpan Output Perintah ke Dalam Sebuah File ..................................................................... 12 3. Ekspresi Aritmatika .......................................................................................................................... 13 3.1. Menggunakan Operator Aritmatika .............................................................................................. 13 3.2. Tingkatan Operator ...................................................................................................................... 13 3.3. Menggunakan Parantheses ............................................................................................................ 13 3.4. Definisi Nilai Null .......................................................................................................................... 14 3.5. Nilai Null pada Ekspresi Aritmatika .............................................................................................. 14 4. Definisi Alias Kolom ......................................................................................................................... 14 4.1. Menggunakan Alias Kolom ............................................................................................................ 14 5. Operator Concatenation ................................................................................................................... 15 5.1. Menggunakan Operator Concatenation ........................................................................................ 15 6. Literal Character Strings .................................................................................................................. 15 6.1. Menggunakan Literal Character Strings ....................................................................................... 15 7. Duplikasi Baris ................................................................................................................................. 16 7.1. Menghilangkan Duplikasi Baris .................................................................................................... 16 8. Membatasi Jumlah Baris Hasil dengan Pilihan ............................................................................... 16 8.1. Menggunakan Klausa WHERE ...................................................................................................... 17 9. String Karakter dan Tanggal ............................................................................................................ 17 10. Kondisi Pembanding ....................................................................................................................... 17 10.1. Menggunakan Kondisi Pembanding ............................................................................................ 17 10.2. Kondisi Pembanding Lain ........................................................................................................... 18 10.2.1. Menggunakan Kondisi BETWEEN ........................................................................................... 18 10.2.2. Menggunakan Kondisi IN ......................................................................................................... 18 10.2.3. Menggunakan Kondisi LIKE .................................................................................................... 18 10.2.4. Menggunakan Kondisi NULL ................................................................................................... 19 11. Kondisi Logika ................................................................................................................................ 20 11.1. Menggunakan Operator AND ...................................................................................................... 20 11.2. Menggunakan Operator OR ........................................................................................................ 20 11.3. Menggunakan Operator NOT ...................................................................................................... 21 12. Aturan Prioritas .............................................................................................................................. 21 13. Klausa ORDER BY ......................................................................................................................... 22 13.1. Mengurutkan Baris Secara Descending ...................................................................................... 22 13.2. Mengurutkan Baris Berdasarkan Alias Kolom ............................................................................ 22

    RDBMS Oracle Revisi 21 Januari 2009 2 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    13.3. Mengurutkan Baris Berdasarkan Banyak Kolom ........................................................................ 23 14. Fungsi Karakter .............................................................................................................................. 23 14.1. Fungsi Case Manipulation .......................................................................................................... 23 14.1.1. Menggunakan Fungsi Case Manipulation ................................................................................ 24 14.2. Fungsi Character-Manipulation .................................................................................................. 24 14.2.1. Menggunakan Fungsi Character-Manipulation ....................................................................... 24 15. Fungsi Angka .................................................................................................................................. 25 15.1. Menggunakan Fungsi ROUND .................................................................................................... 25 15.2. Menggunakan Fungsi TRUNC .................................................................................................... 25 15.3. Menggunakan Fungsi MOD ........................................................................................................ 26 16. Menggunakan Tanggal ................................................................................................................... 26 16.1. Aritmatika Menggunakan Tanggal .............................................................................................. 26 16.2. Menggunakan Operator Aritmatika dengan Tanggal ................................................................. 27 17. Fungsi Tanggal ............................................................................................................................... 27 17.1. Menggunakan Fungsi Tanggal .................................................................................................... 27 17.2. Menggunakan Fungsi TO_CHAR pada Tanggal ........................................................................ 28 17.3. Elemen Model Format Tanggal ................................................................................................... 29 17.4. Menggunakan Fungsi TO_CHAR pada Angka ............................................................................ 29 17.5. Menggunakan Fungsi TO_NUMBER dan TO_DATE ................................................................. 30 18. Fungsi Umum .................................................................................................................................. 30 18.1. Menggunakan Fungsi NVL .......................................................................................................... 32 18.2. Menggunakan Fungsi NVL2 ........................................................................................................ 32 18.3. Menggunakan Fungsi NULLIF .................................................................................................... 32 18.4. Menggunakan Fungsi COALESCE .............................................................................................. 33 19. Pernyataan Kondisional ................................................................................................................. 33 19.1. Pernyataan CASE ........................................................................................................................ 33 19.1.1. Menggunakan Pernyataan CASE ............................................................................................. 33 19.2. Fungsi DECODE ......................................................................................................................... 34 19.2.1. Menggunakan Fungsi DECODE .............................................................................................. 34 20. Menggabungkan Tabel Menggunakan Sintaks Oracle ................................................................... 34 20.1. Mengambil Record Menggunakan Equijoin ................................................................................ 34 20.2. Menambahkan Kondisi Pencarian Menggunakan Operator AND .............................................. 35 20.3. Menggunakan Alias Tabel ........................................................................................................... 35 20.4. Menggabungkan Lebih Dari Dua Tabel ...................................................................................... 35 20.5. Mengambil Record Menggunakan Non Equijoin ........................................................................ 36 21. Sintaks Outer Join ........................................................................................................................... 36 21.1. Menggunakan Outer Join ............................................................................................................ 36 22. Menggabungkan Tabel ke Tabel Itu Sendiri ................................................................................... 36 23. Menggabungkan Tabel Menggunakan SQL: Sintaks 1999 ............................................................ 37 23.1. Menggabungkan Tabel Menggunakan Natural Join ................................................................... 37 23.2. Menggabungkan Tabel Menggunakan Klausa USING ............................................................... 38 23.3. Menggabungkan Tabel Menggunakan Klausa ON ...................................................................... 38 23.4. LEFT OUTER JOIN .................................................................................................................... 38 23.5. RIGHT OUTER JOIN .................................................................................................................. 39 23.6. FULL OUTER JOIN .................................................................................................................... 39 23.7. Menggabungkan Tabel dengan Kondisi Tambahan ................................................................... 39 24. Menggunakan Fungsi AVG dan SUM ............................................................................................ 39 25. Menggunakan Fungsi MIN dan MAX ............................................................................................. 40 26. Menggunakan Fungsi COUNT ....................................................................................................... 40 27. Menggunakan Keyword DISTINCT ................................................................................................ 40 28. Fungsi Grup dan Nilai Null ............................................................................................................ 41 28.1. Menggunakan Fungsi NVL dengan Fungsi Grup ........................................................................ 41 29. Membuat Grup Data: Menggunakan Klausa GROUP BY ............................................................. 41 29.1. Menggunakan Klausa GROUP BY .............................................................................................. 41 29.2. Menggunakan Klausa GROUP BY pada Banyak Kolom ............................................................ 41 29.3. Query Ilegal Menggunakan Fungsi Grup .................................................................................... 42

    RDBMS Oracle Revisi 21 Januari 2009 3 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    29.4. Menggunakan Klausa HAVING .................................................................................................. 42 29.5. Gabungan Fungsi Grup ............................................................................................................... 43 30. Menggunakan Subquery ................................................................................................................. 43 30.1. Subquery Satu Baris .................................................................................................................... 44 30.1.1. Menggunakan Subquery Satu Baris .......................................................................................... 44 30.1.2. Menggunakan Fungsi Grup dalam Subquery ........................................................................... 44 30.2. Klausa HAVING dalam Subquery ............................................................................................... 45 30.3. Subquery Multi-Baris ................................................................................................................... 45 30.4. Menggunakan Operator ANY pada Subquery Multi-Baris ......................................................... 46 30.5. Menggunakan Operator ALL pada Subquery Multi-Baris .......................................................... 46 30.6. Nilai Null pada Subquery ............................................................................................................ 46 31. Menggunakan Variabel Pengganti & ............................................................................................. 47 31.1. Nilai Karakter dan Waktu Menggunakan Variabel Pengganti ................................................... 47 31.2. Mendefinisikan Nama Kolom, Ekspresi, dan Teks ...................................................................... 48 31.3. Perintah DEFINE dan UNDEFINE ............................................................................................ 48 31.4. Menggunakan Variabel Pengganti && ....................................................................................... 48 31.5. Menggunakan Perintah VERIFY ................................................................................................. 49 31.6. Menggunakan Perintah COLUMN .............................................................................................. 49 31.7. Model Format Kolom .................................................................................................................. 49 31.8. Mengatur Lebar Kolom (Hanya untuk Teks) ............................................................................... 50 31.9. Mengubah Setting Bahasa pada Oracle ...................................................................................... 50 31.10. Menggunakan Perintah BREAK ................................................................................................ 50 31.11. Menggunakan Perintah TTITLE dan BTITLE ........................................................................... 50 31.12. Membuat File Script untuk Menghasilkan Laporan .................................................................. 51 32. Membuat dan Mengatur Tabel ....................................................................................................... 52 32.1. Aturan Penamaan ........................................................................................................................ 52 32.2. Perintah CREATE TABLE ........................................................................................................... 52 32.3. Query terhadap Data Dictionary ................................................................................................. 52 32.4. Membuat Tabel Menggunakan Subquery .................................................................................... 53 32.5. Menyalin Baris dari Tabel Lain .................................................................................................. 53 32.6. Perintah ALTER TABLE .............................................................................................................. 54 32.7. Menambah Kolom ........................................................................................................................ 54 32.8. Modifikasi Kolom ......................................................................................................................... 55 32.9. Menghapus Kolom ....................................................................................................................... 55 32.10. Membuat Objek Sequence .......................................................................................................... 55 32.10.1. Menggunakan Objek Sequence ............................................................................................... 56 32.11. Option SET UNUSED ................................................................................................................ 56 32.12. Menghapus Tabel ....................................................................................................................... 57 32.13. Mengubah Nama Objek ............................................................................................................. 57 32.14. Truncate Table ........................................................................................................................... 57 32.15. Menambah Komentar pada Tabel ............................................................................................. 57 33. Manipulasi Data ............................................................................................................................. 58 33.1. Menambah Baris dengan Nilai Null ............................................................................................ 58 33.2. Mengisi Nilai Waktu Tertentu ...................................................................................................... 59 33.3. Mengisi Tabel Menggunakan Script ............................................................................................ 59 33.4. Update Baris dalam Tabel ........................................................................................................... 59 33.5. Update Dua Kolom Menggunakan Subquery .............................................................................. 60 33.6. Menghapus Baris pada Tabel ...................................................................................................... 60 33.7. Menghapus Baris Mengacu Pada Tabel Lain ............................................................................. 60 33.8. Integrity Constraint Error Saat Menghapus Baris ...................................................................... 61 33.9. Menggunakan Subquery Pada Perintah INSERT ........................................................................ 61 34. Perintah MERGE ............................................................................................................................ 62 35. Commit Data ................................................................................................................................... 62 36. ROLLBACK dan Status Data Setelah ROLLBACK ........................................................................ 63 36.1. Penggunaan SAVEPOINT dan ROLLBACK ............................................................................... 63 37. Konsistensi Pembacaan (Read Consistency) .................................................................................. 64

    RDBMS Oracle Revisi 21 Januari 2009 4 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    38. Membuat Tablespace ...................................................................................................................... 65 39. Membuat Index ............................................................................................................................... 65 40. Mengontrol Akses Pengguna .......................................................................................................... 66 40.1. Privilege Sistem ........................................................................................................................... 66 40.2. Membuat User ............................................................................................................................. 66 40.3. Typical User Privileges ............................................................................................................... 66 40.4. Memberi Grant Pada Privilege Sistem ........................................................................................ 66 41. Role ................................................................................................................................................. 67 41.1. Membuat dan Memberikan Privilege pada Sebuah Role ............................................................ 67 42. Mengubah Password ...................................................................................................................... 67 43. Grant Object Privilege ................................................................................................................... 68 44. Menggunakan Keyword WITH GRANT OPTION dan PUBLIC .................................................... 68 45. Mencabut (Revoke) Object Privilege .............................................................................................. 68 46. Tabel Eksternal ............................................................................................................................... 69 46.1. Membuat Directory ...................................................................................................................... 69 46.2. Contoh File Teks Dipisahkan oleh Spasi ..................................................................................... 69 46.2.1. Membuat Tabel Eksternal ......................................................................................................... 69 46.3. Contoh File Teks Dipisahkan oleh Koma .................................................................................... 70 46.3.1. Membuat Tabel Eksternal ......................................................................................................... 70

    RDBMS Oracle Revisi 21 Januari 2009 5 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    Relational Database Management System

    1. Perintah SQL (Structured Query Language)

    Perintah IstilahSELECT Data retrievalINSERTUPDATEDELETEMERGE

    Data manipulation language (DML)

    CREATEALTERDROPRENAMETRUNCATE

    Data definition language (DDL)

    COMMITROLLBACKSAVEPOINT

    Transaction control

    GRANTREVOKE

    Data control language (DCL)

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    1.1. Menjalankan Oracle

    Apabila kita ingin menjalankan Oracle pada komputer yang berbasiskan Windows, kita dapat melakukan salah satu langkah berikut:a. Klik Start, Program, Oracle, cari menu Sqlplus Applicationb. Klik Start, Run, ketikkan cmd di menu Open (running under DOS),

    kemudian jalankan perintah berikut:- sqlplus /nolog- conn / as sysdba atau conn /

    c. Buka Internet Explorer, kemudian masukkan address:http://localhost/isqlplus atauhttp:///isqlplus

    Apabila kita akan menjalankan Oracle pada komputer yang berbasiskan UNIX atau Linux, maka kita dapat melakukan langkah berikut:a. Buka terminal windowb. Masukkan perintah: sqlplus /@

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    RDBMS Oracle Revisi 21 Januari 2009 6 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    __________________________________________________________________

    1.2. Cara Koneksi

    Untuk melakukan koneksi ke Oracle, kita dapat melakukan langkah berikut:a. CONN /

    Misal: CONN SCOTT/TIGERb. CONN , kemudian masukkan password

    Misal: CONN SCOTT, kemudian masukkan password: TIGER

    1.3. Mengaktifkan User HR

    Salah satu user yang telah disediakan pada saat menginstall Oracle adalah user HR. Pada kondisi awal (default) user ini dalam kondisi di-lock. Kita dapat mengaktifkan (unlock) user ini dengan langkah berikut:

    - Connect sebagai DBAo CONN / AS SYSDBA;

    - Unlock user HR dan berikan passwordo ALTER USER HR ACCOUNT UNLOCK;o ALTER USER HR IDENTIFIED BY HR;o CONN HR/HR;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    1.4. Perintah Dasar SQL: SELECT

    SELECT *|{[DISTINCT] column|expression [alias],}FROM table;

    - SELECT mengidentifikasikan kolom- FROM mengidentifikasikan table

    Dengan menggunakan perintah SELECT dapat dilakukan hal-hal sebagai berikut : Projection : menampilkan kolom tertentu pada tabel yang bersangkutan. Selection : menampilkan baris tertentu pada tabel yang bersangkutan. Joining : menampilkan kolom atau baris tertentu pada dua atau lebih

    tabel yang saling berhubungan.

    Projection Selection

    RDBMS Oracle Revisi 21 Januari 2009 7 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    Tabel-1 Tabel-2 Joining

    Dalam penulisan SQL dikenal istilah-istilah yang umum digunakan, antara lain : Keyword : Individual SQL statement, umumnya dituliskan dengan

    huruf kapital. Contohnya : SELECT dan FROM Clause : Part of SQL Statement.

    Contohnya : SELECT last_name,department_id Statement : Kombinasi dua atau lebih dari clause.

    Contohnya : SELECT last_name,department_id FROM departments;

    1.5. Melihat Keseluruhan Tabel pada User Tertentu

    SELECT * FROM TAB;

    1.6. Melihat User di Database1.6.1. User yang Aktif

    SELECT USER FROM DUAL; atauSHOW USER;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    1.6.2. User yang Ada di dalam Database

    CONN / AS SYSDBA; atau CON SYSTEM/;SELECT USERNAME FROM DBA_USERS;

    Catatan :

    __________________________________________________________________

    RDBMS Oracle Revisi 21 Januari 2009 8 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    1.7. Memilih Semua Kolom

    SELECT *FROM departments;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    1.8. Memilih Kolom Tertentu

    SELECT department_id, location_idFROM departments;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    1.9. Persyaratan Penulisan Perintah SQL

    - Perintah SQL adalah tidak case sensitive- Perintah SQL dapat berupa satu atau lebih baris- Keyword tidak dapat dapat disingkat atau dipisah menjadi beberapa baris- Klausa ditempatkan pada baris terpisah- Indent digunakan untuk meningkatkan readability

    1.10. Default untuk Heading Kolom

    - iSQL*Plus:o Default heading justification : Centero Default heading display : Uppercase

    - SQL*Plus:o Heading kolom karakter dan tanggal : Left-justifiedo Heading kolom nomor : Right-justifiedo Default heading display : Uppercase

    RDBMS Oracle Revisi 21 Januari 2009 9 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    2. Perbandingan Pernyataan SQL dengan Perintah iSQL*Plus

    SQL iSQL*PlusLanguage EnvironmentStandar ANSI Milik OracleKeyword tidak dapat disingkat Keyword dapat disingkat

    Dijalankan di browserBersifat central, tidak diimplementasikan pada tiap komputer

    2.1. Overview tentang iSQL*PlusSetelah kita log in ke iSQL*Plus, kita dapat:

    - Describe struktur tabel- Edit perintah SQL- Eksekusi SQL dari iSQL*Plus- Menyimpan perintah SQL menjadi sebuah file- Eksekusi perintah yang tersimpan pada saved file- Load perintah dari sebuah file teks ke edit window iSQL*Plus

    Keterangan gambar :1. Edit window : Area dimana perintah dan statement iSQL*Plus

    dituliskan2. Execute button : Tombol untuk mengeksekusi perintah atau statement

    yang tercantum di menu edit window3. Save script button : Tombol untuk menyimpan statement yang dituliskan

    dalam edit window kedalam sebuah file4. Clear Screen button: Tombol untuk menghapus statement yang tercantum

    dalam edit window5. Cancel button : Tombol untuk membatalkan perintah terakhir

    RDBMS Oracle Revisi 21 Januari 2009 10 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    6. Script locator : Mengidentifikasi nama dan lokasi dari file script yang akan dieksekusi

    7. Browse button : Digunakan untuk mencari file script dengan memanfaatkan dialog box Windows File Open

    8. Load script : Tombol untuk mengeksekusi statement yang ada di file script dalam script locator

    2.2. Menampilkan Struktur TabelDengan perintah DESCRIBE, kita dapat menampilkan struktur dari sebuah tabel

    DESC[RIBE] tablename

    DESCRIBE employees

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    2.3. Interaksi dengan File ScriptKita dapat menyimpan perintah dari edit window di iSQL*Plus menjadi sebuah file script text sebagai berikut:

    - Ketikkan perintah SQL pada edit window iSQL*Plus

    SELECT last_name, hire_date, salaryFROM employees;

    - Klik tombol Save Script. Kemudian akan muncul kotak dialog Windows File Save. Isikan nama file dan tentukan tujuannya.

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    2.4. Menyimpan Script Menggunakan Command LineSelain menggunakan iSQL*Plus, kita dapat pula menggunakan command line untuk menyimpan perintah atau script SQL di Orace. Caranya adalah sebagai berikut:

    a. SPOOL ;b. ;c. SPOOL OFF;d. Cek di lokasi file

    SPOOL C:\Training\Hari1.sql;SELECT * FROM departments;

    RDBMS Oracle Revisi 21 Januari 2009 11 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    SPOOL OFF;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    2.5. Menggunakan Perintah dari File Script ke iSQL*PlusKita dapat menggunakan perintah sebelumnya yang telah disimpan menjadi file ke dalam iSQL*Plus sebagai berikut:

    - Ketikkan nama script dan lokasinya. Atau kita dapat pula mengklik tombol Browse untuk mencari lokasi dan nama file script.

    D:\temp\emp_sql.htm

    - Klik tombol Load Script. Isi file akan ditampilkan pada edit window iSQL*Plus- Klik tombol Execute untuk menjalankan perintah pada edit window iSQL*Plus

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    2.6. Menjalankan Script di Command LineKita dapat menjalankan script yang telah disimpan menggunakan perintah di command line, yaitu sebagai berikut:

    @Contoh: @C:\Training\Test1

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    2.7. Menyimpan Output Perintah ke Dalam Sebuah FileKita dapat menyimpan hasil dari sebuah perintah SQL atau iSQL*Plus ke dalam sebuah file:

    - Ketikkan perintah SQL dan iSQL*Plus pada edit window di iSQL*Plus- Ubah output option menjadi Save- Klik tombol Execute untuk menjalankan perintah pada edit window iSQL*Plus.

    Kemudian akan muncul kotak dialog Windows File Save. Isikan nama file,

    RDBMS Oracle Revisi 21 Januari 2009 12 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    dengan ekstensi default .html. Tipe file dapat diubah. Hasilnya akan dikirimkan pada file tersebut.

    3. Ekspresi Aritmatika

    Operator Deskripsi+ Tambah- Kurang* Kali/ Bagi

    3.1. Menggunakan Operator Aritmatika

    SELECT last_name, salary, salary + 500FROM employees;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    3.2. Tingkatan Operator

    * / + -

    - Perkalian dan pembagian memiliki prioritas lebih tinggi daripada penambahan dan pengurangan

    - Operator dengan tingkat prioritas yang sama dievaluasi dari kiri ke kanan- Parantheses (dalam kurung) digunakan untuk membuat prioritas sendiri

    sesuai keinginan

    SELECT last_name, salary, 12*salary+500FROM employees;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    3.3. Menggunakan Parantheses

    SELECT last_name, salary, 12*(salary+500)FROM employees;

    Catatan :

    __________________________________________________________________

    RDBMS Oracle Revisi 21 Januari 2009 13 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    3.4. Definisi Nilai Null

    - Null adalah sebuah nilai yang bersifat unavailable, unassigned, unknown, atau inapplicable

    - Null tidak sama dengan nol (zero) atau blank space

    SELECT last_name, job_id, salary, commission_pctFROM employees;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    3.5. Nilai Null pada Ekspresi Aritmatika

    SELECT last_name, 12*salary*commission_pctFROM employees;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    4. Definisi Alias KolomAlias kolom :

    - Mengganti nama heading kolom- Mengikuti nama kolom, dapat berupa keyword optional AS diantara nama

    kolom dan alias- Membutuhkan double quotation jika berisikan space atau karakter spesial

    atau case sensitive

    4.1. Menggunakan Alias Kolom

    SELECT last_name AS nama, commission_pct commFROM employees;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    RDBMS Oracle Revisi 21 Januari 2009 14 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    SELECT last_name Nama, salary*12 Gaji TahunanFROM employees;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    5. Operator ConcatenationOperator concatenation:

    - Menggabungkan kolom atau string karakter dengan kolom lain- Direpresentasikan dengan dua vertical bar (||)

    5.1. Menggunakan Operator Concatenation

    SELECT last_name || job_id AS PegawaiFROM employees;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    6. Literal Character Strings- Literal merupakan karakter, nomor, atau tanggal yang terdapat pada list

    SELECT- Nilai literal tanggal dan karakter harus diapit dengan tanda kutip tunggal- Setiap string karakter dihasilkan sekali untuk setiap baris

    6.1. Menggunakan Literal Character Strings

    SELECT last_name ||adalah seorang ||job_id AS Detail PegawaiFROM employees;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    RDBMS Oracle Revisi 21 Januari 2009 15 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    Contoh lain:SELECT last_name ||: 1 bulan gaji = || salary BulananFROM employees;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    7. Duplikasi BarisSecara default, tampilan hasil query adalah semua baris, termasuk duplikasi baris

    SELECT department_idFROM employees;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    7.1. Menghilangkan Duplikasi BarisUntuk menghilangkan duplikasi baris kita dapat menggunakan keyword DISTINCT pada klausa SELECT

    SELECT DISTINCT department_idFROM employees;

    Contoh lain:SELECT DISTINCT department_id, job_idFROM employees;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    8. Membatasi Jumlah Baris Hasil dengan Pilihan

    SELECT *|{[DISTINCT] column/expression [alias],}FROM table[WHERE condition(s];

    RDBMS Oracle Revisi 21 Januari 2009 16 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    8.1. Menggunakan Klausa WHERE

    SELECT employee_id, last_name, job_id, department_idFROM employeesWHERE department_id = 90;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    9. String Karakter dan Tanggal- String karakter dan tanggal diapit dengan tanda kutip tunggal- Karakter bersifat case sensitive, dan tanggal bersifat format sensitive- Format tanggal default adalah DD-MON-YY

    SELECT last_name, job_id, department_idFROM employeesWHERE last_name = Whalen;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    10. Kondisi Pembanding

    Operator Arti= Sama dengan> Lebih dari

    >= Lebih dari atau sama dengan< Kurang dari

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    10.2. Kondisi Pembanding Lain

    Operator ArtiBETWEEN AND Diantara dua nilaiIN(set) Memenuhi beberapa dari nilai dalam listLIKE Memenuhi pola karakterIS NULL Sama dengan nilai null

    10.2.1. Menggunakan Kondisi BETWEEN

    Kondisi BETWEEN digunakan untuk menampilkan baris berdasarkan range nilai yang telah ditentukan.

    SELECT last_name, salaryFROM employeesWHERE salary BETWEEN 2500 AND 3500;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    10.2.2. Menggunakan Kondisi INKondisi IN digunakan untuk menguji nilai yang terdapat dalam list

    SELECT employee_id, last_name, salary, manager_idFROM employeesWHERE manager_id IN (100, 101, 201);

    SELECT employee_id, manager_id, department_idFROM employeesWHERE last_name IN ('Hartstein', 'Vargas');

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    10.2.3. Menggunakan Kondisi LIKE

    - Kondisi LIKE digunakan untuk mencari string yang valid menggunakan wildcard

    RDBMS Oracle Revisi 21 Januari 2009 18 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    - Kondisi pencarian dapat berisikan karakter literal atau nomor:o % menunjukkan zero atau banyak karaktero _ menunjukkan satu karakter

    SELECT first_nameFROM employeesWHERE first_name LIKE 'S%';

    SELECT last_name, hire_dateFROM employeesWHERE hire_date LIKE '%95';

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    Kita dapat pula mengkombinasikan pola-pola tersebut di atas sebagai berikut:SELECT last_nameFROM employeesWHERE last_name LIKE '_o%';

    Selain itu kita dapat pula menggunakan identifier ESCAPE untuk mencari special karakter % dan _ yang sebenarnyaSELECT employee_id, last_name, job_idFROM employeesWHERE job_id LIKE '%SA\_%' ESCAPE '\';

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    10.2.4. Menggunakan Kondisi NULL

    SELECT last_name, manager_idFROM employeesWHERE manager_id IS NULL;

    SELECT last_name, job_id, commission_pctFROM employeesWHERE commission_pct IS NULL;

    Catatan :

    RDBMS Oracle Revisi 21 Januari 2009 19 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    11. Kondisi Logika

    Operator ArtiAND Menghasilkan TRUE jka semua kondisi

    komponen benarOR Menghasilkan TRUE jika salah satu

    kondisi komponen benarNOT Menghasilkan TRUE jika kondisi bernilai

    salah

    11.1. Menggunakan Operator AND

    SELECT employee_id, last_name, job_id, salaryFROM employeesWHERE salary >=10000AND job_id LIKE '%MAN%';

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    Berikut adalah tabel kebenaran untuk kondisi ANDAND TRUE FALSE NULLTRUE TRUE FALSE NULLFALSE FALSE FALSE FALSENULL NULL FALSE NULL

    11.2. Menggunakan Operator OR

    SELECT employee_id, last_name, job_id, salaryFROM employeesWHERE salary >= 10000OR job_id LIKE '%MAN%';

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    RDBMS Oracle Revisi 21 Januari 2009 20 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    Berikut adalah tabel kebenaran untuk kondisi OROR TRUE FALSE NULLTRUE TRUE TRUE TRUEFALSE TRUE FALSE NULLNULL TRUE NULL NULL

    11.3. Menggunakan Operator NOT

    SELECT last_name, job_idFROM employeesWHERE job_id NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP');

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    Berikut adalah tabel kebenaran untuk kondisi NOTNOT TRUE FALSE NULL

    FALSE TRUE NULL

    12. Aturan Prioritas

    Tingkat Evaluasi Operator1 Operator aritmatika2 Operator concatenation3 Kondisi pembanding4 IS [NOT] NULL, LIKE, [NOT] IN 5 [NOT] BETWEEN6 Kondisi logika NOT7 Kondisi logika AND8 Kondisi logika OR

    SELECT last_name, job_id, salaryFROM employeesWHERE job_id = 'SA_REP'OR job_id = 'AD_PRES'AND salary > 15000;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    RDBMS Oracle Revisi 21 Januari 2009 21 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    Kita dapat menentukan sendiri prioritas yang diinginkan dengan menambahkan tanda dalam kurung seperti berikut:SELECT last_name, job_id, salaryFROM employeesWHERE (job_id = 'SA_REP'OR job_id = 'AD_PRES')AND salary > 15000;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    13. Klausa ORDER BYKita dapat mengurutkan baris menggunakan klausa ORDER BY- ASC : order secara ascending- DESC : order secara descendingKlausa ORDER BY berada pada urutan terakhir pada pernyataan SELECT

    SELECT last_name, job_id, department_id, hire_dateFROM employeesORDER BY hire_date;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    13.1. Mengurutkan Baris Secara Descending

    SELECT last_name, job_id, department_id, hire_dateFROM employeesORDER BY hire_date DESC;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    13.2. Mengurutkan Baris Berdasarkan Alias Kolom

    SELECT employee_id, last_name, salary*12 tahunanFROM employeesORDER BY tahunan;

    RDBMS Oracle Revisi 21 Januari 2009 22 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    13.3. Mengurutkan Baris Berdasarkan Banyak Kolom

    SELECT last_name, department_id, salaryFROM employeesORDER BY department_id, salary DESC;

    Kita dapat mengurutkan baris berdasarkan kolom yang tidak ada pada list SELECT.SELECT last_name, salaryFROM employeesORDER BY department_id, salary DESC;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    14. Fungsi KarakterFungsi case-manipulation Fungsi character-manipulation

    LOWERUPPERINITCAP

    CONCATSUBSTRLENGTHINSTRLPAD | RPADTRIMREPLACE

    14.1. Fungsi Case ManipulationFungsi ini bertujuan untuk mengubah case pada string karakter, sebagai berikut:

    Fungsi HasilLOWER('SQL Course') sql courseUPPER('SQL Course') SQL COURSEINITCAP('SQL Course') Sql Course

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    RDBMS Oracle Revisi 21 Januari 2009 23 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    14.1.1. Menggunakan Fungsi Case Manipulation

    SELECT employee_id, last_name, department_idFROM employeesWHERE last_name = 'higgins';No rows selected

    SELECT employee_id, last_name, department_idFROM employeesWHERE LOWER(last_name) = 'higgins';

    Pernyataan yang terakhir menghasilkan row yang memenuhi kriteria di atas. Dengan demikian penggunaan LOWER dapat menghasilkan query yang akurat.

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    14.2. Fungsi Character-Manipulation

    Fungsi HasilCONCAT('Selamat', 'Pagi') SelamatPagiSUBSTR('SelamatPagi',1,5) SelamLENGTH('SelamatPagi') 11INSTR('SelamatPagi', 'P') 8LPAD(salary,10, '*') *****24000RPAD(salary,10, '*') 24000*****TRIM('S' FROM 'SelamatPagi') elamatPagi

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    14.2.1. Menggunakan Fungsi Character-Manipulation

    SELECT employee_id, CONCAT(first_name, last_name) NAMA, job_id, LENGTH (last_name), INSTR(last_name, 'a') Mengandung 'a'? FROM employeesWHERE SUBSTR(job_id, 4) = 'REP';

    Catatan :

    RDBMS Oracle Revisi 21 Januari 2009 24 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    SELECT employee_id, CONCAT(first_name, last_name) NAMA, LENGTH (last_name), INSTR(last_name, 'a') Mengandung 'a'? FROM employeesWHERE SUBSTR(last_name, -1, 1) = 'n';

    SELECT REPLACE('JAKARTA', 'KARTA', 'CKMANIA') FROM dual;

    SELECT SUBSTR(last_name,3,5) FROM employees;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    15. Fungsi Angka- ROUND: Membulatkan angka sesuai dengan hukum Aritmatika

    o ROUND(45.926, 2) 45.93- TRUNC: Membulatkan angka ke bawah

    o TRUNC(45.926, 2) 45.92- MOD: Sisa hasil bagi

    o MOD(1600, 300) 100

    15.1. Menggunakan Fungsi ROUND

    SELECT ROUND(45.923,2), ROUND(45.923,0), ROUND(45.923,-1)FROM DUAL;

    DUAL adalah tabel dummy yang dapat kita gunakan untuk melihat hasil sebuah fungsi atau kalkulasi.

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    15.2. Menggunakan Fungsi TRUNC

    RDBMS Oracle Revisi 21 Januari 2009 25 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    SELECT TRUNC(45.923,2), TRUNC(45.923), TRUNC(45.923,-2)FROM DUAL;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    15.3. Menggunakan Fungsi MOD

    SELECT last_name, salary, MOD(salary, 5000)FROM employeesWHERE job_id = 'SA_REP';

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    16. Menggunakan Tanggal- Database Oracle menyimpan tanggal dalam bentuk format numerik internal

    yaitu: abad, tahun, bulan, hari, jam, menit, detik- Format tampilan tanggal default adalah DD-MON-YY

    SELECT last_name, hire_dateFROM employeesWHERE last_name like 'G%';

    SYSDATE adalah fungsi yang dapat menghasilkan waktu dan tanggal.SELECT SYSDATEFROM DUAL;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    16.1. Aritmatika Menggunakan Tanggal- Menambah atau mengurangi angka ke atau dari sebuah tanggal, nilai yang

    dihasilkan dalam bentuk tanggal- Mengurangi dua tanggal menghasilkan jumlah hari antara kedua tanggal

    tersebut- Menambah jam pada sebuah tanggal dengan membagi jumlah jam dengan 24

    RDBMS Oracle Revisi 21 Januari 2009 26 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    Operasi HasilTanggal + angka TanggalTanggal angka TanggalTanggal tanggal Jumlah hariTanggal + angka/24 Tanggal

    16.2. Menggunakan Operator Aritmatika dengan Tanggal

    SELECT last_name, (SYSDATE-hire_date)/7 AS WEEKSFROM employeesWHERE department_id = 90;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    SELECT TO_DATE('20-04-04', 'DD-MM-YY') - TO_DATE('10-04-04', 'DD-MM-YY')FROM DUAL;

    SELECT SYSDATE + NUMTODSINTERVAL(3, 'HOUR') 3 Jam LagiFROM DUAL;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    17. Fungsi Tanggal

    Fungsi DeskripsiMONTHS_BETWEEN Jumlah bulan diantara dua tanggalADD_MONTHS Menambah jumlah bulan pada tanggalNEXT_DAY Tanggal berikutnya pada hari yang

    ditentukanLAST_DAY Tanggal terakhir pada bulan tertentuROUND Round tanggalTRUNC Truncate tanggal

    17.1. Menggunakan Fungsi Tanggal

    Fungsi HasilMONTHS_BETWEEN ('01-SEP-95', '11-JAN-94') 19.6774194ADD_MONTHS ('11-JAN-94', 6) 11-JUL-94NEXT_DAY ('01-SEP-95', 'FRIDAY') 08-SEP-95

    RDBMS Oracle Revisi 21 Januari 2009 27 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    LAST_DAY ('01-FEB-95') 28-FEB-95

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    Jika diasumsikan SYSDATE = 25-JUL-95 makaFungsi Hasil

    ROUND(SYSDATE, 'MONTH') 01-AUG-95ROUND(SYSDATE, 'YEAR') 01-JAN-96TRUNC(SYSDATE, 'MONTH') 01-JUL-95TRUNC(SYSDATE, 'YEAR') 01-JAN-95

    SELECT employee_id, hire_date, ROUND(hire_date, 'MONTH'), TRUNC(hire_date, 'MONTH')FROM employeesWHERE hire_date LIKE '%97';

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    17.2. Menggunakan Fungsi TO_CHAR pada Tanggal

    TO_CHAR(date, 'format_model')

    Format model:- Harus diapit dengan tanda kutip tunggal dan case sensitive- Dapat berisikan elemen dengan format tanggal yang valid- Memiliki elemen fm untuk menghilangkan space kosong atau menghilangkan

    leading zero- Dipisahkan dari tanggal menggunakan koma

    SELECT employee_id, TO_CHAR(hire_date, 'MM/YY') BulanFROM employeesWHERE last_name = 'Higgins';

    SELECT last_name, TO_CHAR(hire_date, 'fmDD Month YYYY' ) AS TANGGALFROM employees;

    RDBMS Oracle Revisi 21 Januari 2009 28 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    17.3. Elemen Model Format Tanggal

    Elemen MaknaYYYY Tahun secara lengkap dalam bentuk

    angkaYEAR Tahun MM Bulan dalam bentuk angka 2 digitMONTH Bulan dalam bentuk nama lengkapMON Bulan dalam bentuk singkatan 3 hurufDY Hari dalam bentuk singkatan 3 hurufDAY Hari dalam bentuk nama lengkapDD Tanggal

    Format dari elemen waktu menentukan tampilan dari waktu pada Oracle.Sebagai contoh:HH24:MI:SS AM 15:45:32 PM

    Kita dapat pula menyelipkan karakter diantara elemen waktu dengan menambahkan tanda kutip ganda diantaranya.DD of MONTH 17 of AUGUST

    Tanggal dapat pula ditampilkan dalam bentuk kata sebagai berikut:ddspth Fourteenth

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    17.4. Menggunakan Fungsi TO_CHAR pada Angka

    TO_CHAR(number, 'format_model' )

    Berikut ini adalah beberapa elemen format yang dapat kita gunakan dengan fungsi TO_CHAR, untuk menampilkan angka sebagai karakter9 Menunjukkan angka

    RDBMS Oracle Revisi 21 Januari 2009 29 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    0 Memaksakan angka 0 untuk ditampilkan$ Menempatkan tanda dolarL Menggunakan simbl mata uang lokal. Menampilkan penanda desimal, Menampilkan penanda ribuan

    SELECT TO_CHAR(salary, '$99,999.00' ) GAJIFROM employeesWHERE last_name = 'Ernst';

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    17.5. Menggunakan Fungsi TO_NUMBER dan TO_DATEUntuk mengubah karakter menjadi format angka kita dapat menggunakan fungsi TO_NUMBER:TO_NUMBER(char[, format_model])

    Untuk mengubah karakter menjadi format tanggal kita dapat menggunakan fungsi TO_DATE:TO_DATE(char[, format_model])

    Fungsi-fungsi di atas memiliki modifier fx. Fungsi modifier ini dapat dilihat dengan menggunakan contoh berikut iniSELECT last_name, hire_dateFROM employeesWHERE hire_date = TO_DATE('May 24, 1999', 'fxMonth DD, YYYY');SELECT last_name, hire_dateFROM employeesWHERE hire_date = TO_DATE('May24, 1999', 'fxMonth DD, YYYY');

    SELECT last_name, hire_dateFROM employeesWHERE hire_date = TO_DATE('May 24, 1999', 'fxMonthDD, YYYY');

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    18. Fungsi UmumBeberapa fungsi umum antara lain:

    - NVL (pernyataan1, pernyataan2)

    RDBMS Oracle Revisi 21 Januari 2009 30 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    - NVL2 (pernyataan1, pernyataan2, pernyataan3)- NULLIF (pernyataan1, pernyataan2)- COALESCE (pernyataan1, pernyataan2, , pernyataann)

    Deskripsi dari fungsi-fungsi di atas dapat dijelaskan sebagai berikut:

    Fungsi DeskripsiNVL Mengubah nilai null menjadi nilai aktualNVL2 Jika pernyataan1 tidak null, maka hasilnya adalah

    pernyataan2. Jika pernyataan1 null, maka hasilnya adalah pernyataan3.

    RDBMS Oracle Revisi 21 Januari 2009 31 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    NULLIF Membandingkan dua pernyataan dan menghasilkan null jika kedua pernyataan sama, atau menghasilkan pernyataan pertama jika kedua pernyataan tidak sama

    COALESCE Menghasilkan pernyataan tidak null yang pertama dalam list

    18.1. Menggunakan Fungsi NVL

    SELECT last_name, salary, NVL(commission_pct, 0), (salary*12) + (salary*12*NVL(commission_pct, 0)) AN_SALFROM employees;

    SELECT last_name, salary, commission_pct, (salary*12) + (salary*12*commission_pct) AN_SALFROM employees;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    18.2. Menggunakan Fungsi NVL2

    SELECT last_name, salary, commission_pct, NVL2(commission_pct, 'SAL+COMM', 'SAL' ) incomeFROM employeesWHERE department_id IN (50, 80);

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    18.3. Menggunakan Fungsi NULLIF

    SELECT first_name, LENGTH(first_name) expr1, last_name, LENGTH(last_name) expr2, NULLIF(LENGTH(first_name), LENGTH(last_name)) resultFROM employees;

    RDBMS Oracle Revisi 21 Januari 2009 32 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    18.4. Menggunakan Fungsi COALESCE

    SELECT last_name, commission_pct, salary, COALESCE(commission_pct, salary, 10) commFROM employeesORDER BY commission_pct;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    19. Pernyataan KondisionalPerintah SQL mengenal kondisi logika IF-THEN-ELSE dengan cara tertentu. Ada dua metode yang dapat digunakan, yaitu:

    - CASE- DECODE

    19.1. Pernyataan CASE

    CASE expr WHEN comparison_expr1 THEN return_expr1 [WHEN comparison_expr2 THEN return_expr2 WHEN comparison_exprn THEN return_exprn ELSE else_expr]END

    19.1.1. Menggunakan Pernyataan CASE

    SELECT last_name, job_id, salary, CASE job_id WHEN 'IT_PROG' THEN 1.10*salary WHEN 'ST_CLERK' THEN 1.15*salary WHEN 'SA_REP' THEN 1.20*salary ELSE salary END REVISED_SALARYFROM employees;

    Catatan :

    __________________________________________________________________

    __________________________________________________________________

    __________________________________________________________________

    RDBMS Oracle Revisi 21 Januari 2009 33 dari 71

  • Materi Training RDBMS OraclePT PLN (Persero) UDIKLAT SEMARANG__________________________________________________

    19.2. Fungsi DECODE

    DECODE(col/expression, search1, result1 [, search2, result2, ,] [, default])

    19.2.1. Menggunakan Fungsi DECODE

    SELECT last_name, job_id, salary, DECODE(job_id, 'IT_PROG', 1.10*salary, 'ST_CLERK', 1.15*salary, 'SA_REP', 1.20*salary, salary)