Home > Oracle > Dasar SQL dan SQL*Plus bagian II (tamat)

Dasar SQL dan SQL*Plus bagian II (tamat)

Sekarang kita akan mulai menggunakan perintah SQL. Pada tutorial ini saya akan membahas perintah SELECT, perintah lainnya akan saya bahas pada tutorial-tutorial selanjutnya. Ada empat keyword utama yang digunakan untuk mengambil informasi dari database, yaitu SELECT, FROM, WHERE dan ORDER BY.

Sebelum memulai mempraktekan baris-baris perintah yang saya berikan, pastikan anda sudah membuat database sample terlebih dahulu. Apabila belum anda dapat mengikuti tutorialnya di sini.

SELECT digunakan untuk memilih kolom mana saja yang ingin ditampilkan. Keyword FROM akan menentukan dari tabel mana data akan diambil. WHERE digunakan untuk melakukan filter terhadap data yang akan ditampilkan. Sedangkan ORDER BY digunakan untuk mengurutkan data hasil query. Bentuk SQL sangat mirip dengan kalimat berbahasa Inggris, sehingga kita akan cepat memahami perintah-perintah SQL ini.

Perintah berikut akan menampilkan hasil yang sama dengan perintah ‘select * from jobs’

SQL> select job_id, job_title, min_salary, max_salary from jobs;

Setiap nama kolom dipisahkan dengan tanda koma (kecuali kolom terakhir). Setiap perintah SQL wajib diakhiri dengan tanda titik koma (;). Ini akan memeberitahukan SQL*Plus jika perintah yang kita masukan sudah selesai dan siap untuk dieksekusi.

Perintah di bawah ini akan menampilkan nama pekerjaan dimana gajinya sebesar 2500. Perhatikan penulisan literal 2500, saya menuliskannya tanpa tanda petik satu (‘) karena tipe data dalam kolom min_salary adalah number. Jika tipe datanya adalah varchar atau char maka kita menuliskan literal dalam tanda petik satu.

SQL> select job_title, min_salary from jobs where min_salary=2500;

Perintah where ini akan melakukan perbandingan logic. Beikut ini beberapa operator yang dapat digunakan untuk perbandingan dengan satu nilai:

  • = kesamaan nilai
  • > lebih dari
  • < kurang dari
  • >= lebih besar sama dengan
  • <= lebih kecil sama dengan
  • != tidak sama dengan
  • ^= tidak sama dengan
  • <> tidak sama dengan

Berhati-hatilah pada saat menggunakan operator >= dan <= untuk kolom bertipe varchar dan char dengan nilai angka, karena perbandingan yang dilakukan menggunakan karakter. Artinya angka pembanding tersebut akan dianggap karakter. Misalnya kita membandingkan 12 >= 9, jika dilakukan dengan tipe number maka hasilnya TRUE, sedangkan jika tipenya karakter maka hasilnya FALSE karena karakter 9 lebih besar dari 12.

Selain itu itu ada juga operator pattern macthing yang akan melakukan pencarian berdasarkan pattern yang kita gunakan.

  1. LIKE ‘S%’
  2. LIKE ‘S_’

% berarti ada satu atau lebih karakter (termasuk nol karakter), underscore berarti tepat 1 karakter.

Juga ada operator yang dapat melakukan filtering apakah kolom bernilai null atau tidak.

  • IS NULL memeriksa apakah suatu kolom bernilai null.
  • IS NOT NULL memeriksa apakah suatu kolom memiliki nilai.

NULL itu sendiri dapat diartikan tanpa nilai. Artinya apabila suatu kolom belum diisikan suatu nilai maka IS NULL akan mengembalikan nilai TRUE. Apabila kolom tersebut sudah berisi nilai (termasuk spasi) maka nilai IS NULL akan bernilai FALSE.

Untuk melihat penggunaan dari operator-operator tersebut silahkan ketikan dan jalankan perintah SQL berikut ini:

SQL> select job_title from jobs where min_salary=2500;

SQL> select job_title from jobs where min_salary>3000;

SQL> select job_title from jobs where min_salary<4000;

SQL> select job_title from jobs where min_salary>=2500;

SQL> select job_title from jobs where min_salary<=9000;

SQL> select job_title from jobs where min_salary!=4000;

SQL> select job_title from jobs where job_title LIKE ‘Ac%’;

SQL> select job_title from jobs where job_title LIKE ‘_rogrammer’;

SQL> select job_title from jobs where min_salary IS NULL;

SQL> select job_title from jobs where min_salary IS NOT NULL;

Operator yang sudah dijelaskan di atas digunakan untuk melakukan perbandingan satu nilai, apabila kita ingin membandingkan dengan suatu kumpulan nilai maka dapat menggunakan operator:

  • IN memeriksa apakah nilai tersebut ada dalam kumpulan nilai
  • NOT IN memeriksa apakah nilai tersebut tidak ada dalam kumpulan nilai
  • BETWEEN xx AND yy memeriksa apakah nilai berada dalam rentang xx sampai yy (jika sama dengan xx atau yy juga termasuk)
  • NOT BETWEEN xx AND yy memeriksa apakah nilai tidak berada dalam rentang xx sampai yy (jika sama dengan xx atau yy juga termasuk)

Untuk lebih jelasnya silahkan ketikan perintah-perintah berikut dan jalankan:

SQL> select job_title from jobs where min_salary IN (2500, 3000);

SQL> select job_title from jobs where min_salary NOT IN (2500, 3000, 4000);

SQL> select job_title from jobs where min_salary BETWEEN 2500 AND 5000;

SQL> select job_title from jobs where min_salary NOT BETWEEN 2500 AND 5000;

Operator-operator di atas juga dapat dikombinasikan satu dengan yang lain dengan menggunakan perintah AND atau OR.

Nilai yang digunakan sebagai pembanding tidak selalu berupa literal, tapi dapat juga berupa subquery. Apa itu subquery? subquery dapat diartikan sebagai query yang dijalankan dari dalam query yang lain. Misalnya kita ingin menampilkan nama karyawan yang berada dalam tabel employees yang memiliki pekerjaan sebagai programmer. Dalam definisi tabel employees tidak ada kolom yang berisikan nama pekerjaan, yang ada kolom berisikan id pekerjaan yang terhubung dengan tabel jobs. Untuk menyelesaikan query ini maka kita harus membuat subquery yang mengambil nilai job_id dimana isi job_title adalah programmer lalu menempatkannya dalam perintah where, berikut perintah lengkapnya, silahkan dicoba:

SQL> select first_name, last_name from employees where job_id = (select job_id from jobs where job_title=’programmer’);

Subquery selalu harus ada dalam tanda kurung buka dan kurung tutup. Apabila hasil yang dikembalikan subquery berupa banyak nilai maka operator yang digunakan adalah operator perbandingan banyak nilai (IN atau BETWEEN) sedangkan jika hanya mengembalikan satu nilai maka menggunakan operator perbandingan satu nilai.

Keyword yang terakhir yaitu ORDER BY, digunakan untuk mengurutkan data hasil query. Ada dua jenis pengurutan yaitu ascending (meningkat), setingan defaultnya, atau descending (menurun). Berikut contoh penggunaannya:

SQL> select job_title from jobs order by job_title;

SQL> select job_title from jobs order by job_title desc;

Dalam dunia database ada istilah normalisasi, yaitu tabel-tabel dalam keadaan normal (akan dijelaskan dalam tutorial yang lain). Tabel-tabel dalam keadaan normal akan terpisah-pisah dan dihubungkan dengan mekanisme foreign key (akan dijelaskan dalam tutorial yang lain). Misalnya kita ingin menampilkan nama karyawan dan nama pekerjaannya. Detail pekerjaan berada dalam tabel jobs sedangkan detail karyawan berada dalam tabel employees, keduanya dihubungkan dengan mekanisme foreign key, yaitu memakai kolom yang berada dalam tabel employees dan tabel jobs (kolom job_id). Untuk mendapatkan hasil yang diinginkan kita harus menggabungkan kedua tabel tersebut, perintahnya adalah sebagai berikut:

SQL> select employees.first_name, employees.last_name, jobs.job_title from employees, jobs where employees.job_id = jobs.job_id;

Perhatikan penyebutan nama kolom, di depan masing-masing nama kolom kita tambahkan juga nama tabel tempat kolom tersebut berasal. Ini untuk mencegah ambiguitas apabila yang ditulis hanya nama kolom saja.

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to TwitterAdd to TechnoratiAdd to Yahoo BuzzAdd to Newsvine

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: