5.1 Menggunakan Klausa WHERE Tabel-tabel database biasanya berisi sejumlah besar data, dan jarang Anda perlu mengambil semua record dalam sebuah tabel. Anda lebih sering mengekstrak sub-kumpulan data tabel sebagaimana diperlukan untuk operasi atau laporan khusus. Jika Anda mengambil hanya data yang Anda perlukan, Anda perlu menentukan kriteria pencarian, yang disebut juga kondisi penyaringan / filter condition. Dalam statemen SELECT, data disaring berdasarkan penetapan kriteria pencarian dalam klausa WHERE. Klausa WHERE ditempatkan disebelah kana setelah nama tabel (klausa FROM) berikut : INPUT SELECT nama, harga FROM Barang WHERE harga = 3.49; ANALYSIS Statemen tersebut mengambil dua field dari tabel Barang. Daripada mengembalikan semua record, hanya record dengan nilai harga bernilai 3.49 yang ditampilkan. OUTPUT nama harga ---- ----- Fish bean bag toy 3.49 Bird bean bag toy 3.49 Rabbit bean bag toy 3.49 Contoh ini menggunakan percobaan persamaan sederhana : persamaan itu memeriksa untuk mengetahui apakah ada field yang memiliki nilai khusus, dan menyaring data yang sesuai. Tetapi SQL membiarkan Anda melakukan lebih dari sekedar memeriksa persamaan. 5.2 Operator Klausa WHERE Klausa WHERE pertama kita dapat pada pemeriksaan persamaan – menentukan apakah field berisi nilai khusus. SQL mengdukung operator kondisional seperti ditunjukan pada Tabel 5.1 Tabel 5.1 Operator-Operator Klausa WHERE | Operator | Keterangan | | = != < <= !< > >= !> BETWEEN IS NULL | Sama dengan Tidak sama dengan Tidak sama dengan Lebih keci dari Lebih kecil atau sama dengan Tidak lebih kecil dari Lebih besar dari Lebih besar dari atau sama dengan Tidak lebih besar dari Antara dua nilai khusus Nilai NULL (kosong) | 5.2.1 Menandai Nilai Tunggal Kita sudah melihat contoh pengujian persamaan. Mari kita lihat beberapa contoh untuk menunjukkan penggunakan operator-operator lainnya. Contoh pertama adalah daftar semua barang yang harganya dibawah $10 : INPUT SELECT nama, harga FROM Barang WHERE harga < 10; OUTPUT nama harga ---- ----- 8 inch teddy bear 5.99 12 inch teddy bear 8.99 Fish bean bag toy 3.49 Bird bean bag toy 3.49 Rabbit bean bag toy 3.49 Raggedy Ann 4.99 5.2.2 Menandai Perbedaan Contoh berikut ini mendaftarkan semua barang yang tidak dibuat oleh supplier DLL01 : INPUT SELECT kodeSup, nama FROM Barang WHERE KodeSup ‘DLL01’; OUTPUT kodeSup nama ------- ---- BRS01 8 inch teddy bear BRS01 12 inch teddy bear BRS01 18 inch teddy bear 5.2.3 Menandai Nilai Range Untuk menandai range nilai, Anda dapat menggunakan operator BETWEEN. Syntax ini sedikit berbeda dari operator-operator klausa WHERE karena memerlukan dua nilai, yaitu nilai pertama dan terakhir dari susunannya. Operator BETWEEN dapat digunakan, misalnya menandai semua barang yang berharga antara $5 dan $10, atau untuk semua tanggal yang jatuh diantara tanggal awal dan akhir yang ditentukan. INPUT SELECT nama, harga FROM Barang WHERE Harga BETWEEN 5 AND 10; OUTPUT nama harga ---- ----- 8 inch teddy bear 5.99 12 inch teddy bear 8.99 ANALYSIS Seperti tampak dalam contoh, pada saat BETWEEN digunakan, ada dua nilai yang harus ditentukan – yang terendah dan yang tertinggi dari range yang diinginkan. Kedua nilai tersebut juga harus dipisahkan dengan keyword AND. BETWEEN akan menyesuaikan semua nilai dalam susunan tersebut, termasuk nilai awal dan akhir yang ditentukan. 5.2.4 Menandai Nilai Kosong Pada saat membuat tabel, perancangan tabel dapat menetapkan apakah satu atau beberapa field berisi nilai kosong. Jika field tersebut tidak mempunyai nilai, maka field tersebut dikatakan bernilai NULL. Statemen SELECT mempunyai klausa WHERE khusus yang dapat digunakan untuk menandai field-field dengan nilai NULL – klausa IS NULL. Syntax-nya adalah sebagai berikut : INPUT SELECT nama FROM Barang WHERE Harga IS NULL; ANALYSIS Statemen ini mengembalikan daftar dari semua barang yang tidak mempunyai harga (field kosong untuk harga, bukan dengan nilai 0), dan karena memang tidak ada nilai, maka tidak ada data yang akan ditampilkan. 5.3 Menggabungkan Klausa WHERE Semuaklausa WHERE yang diperkenalkan diatas adalah menyaring data dengan satu kriteria tunggal. Untuk tingkat kontrol penyaringan yang lebih tinggi, SQL mengijinkan Anda menentukan banyak klausa WHERE. Klausa-klausa tersebut dapat dalam dua cara, yaitu sebagai klausa AND atau sebagai klausa OR. 5.3.1 Menggunakan Operator AND Untuk menyaring lebih dari satu field, Anda dapat menggunakan operator AND untuk melampirkan syarat-syarat pada klausa WHERE Anda. Ikuti program berikut ini : INPUT SELECT nama, harga FROM Barang WHERE KodeSup = ‘DLL01’ AND Harga <= 4; ANALYSIS Statemen SQL menarik nama dan harga untuk semua barang yang dibuat oleh supplier DLL01 selama berharga $4 atau kurang. Klausa WHERE dalam statemen SELECT dibentuk dengan dua kondisi, dan digunakan keyword AND untuk menggabungkannya. OUTPUT nama harga ---- ----- Fish bean bag toy 3.49 Bird bean bag toy 3.49 Rabbit bean bag toy 3.49 5.3.2 Menggunakan Operator OR Operator OR kebalikan dari AND. Operator OR memerintahkan software DBMS untuk mengambil record-record yang sesuai dengan dua atau lebih kondisi yang ditentukan. Lihat statemen SELECT berikut ini : INPUT SELECT nama, harga FROM Barang WHERE KodeSup = ‘DLL01’ OR KodeSUP = ‘BRS01’; ANALYSIS Statemen SQL tersebut akan mengambil nama dan harga untuk semua barang yang dibuat oleh salah satu supplier yang ditentukan. OUTPUT nama harga ---- ----- 8 inch teddy bear 5.99 12 inch teddy bear 8.99 18 inch teddy bear 11.99 Fish bean bag toy 3.49 Bird bean bag toy 3.49 Rabbit bean bag toy 3.49 Raggedy Ann 4.99 5.3.3 Memahami Urutan Evaluasi Klausa WHERE dapat berisi sembarang jumlah operator AND dan OR. Menggabungkan keduanya membuat Anda dapat melakukan penyaringan yang kompleks dan pintar. Tetapi terkadang dalam penggabungan keduanya juga akan dapat menimbulkan masalah. Perhatikan contoh berikut : INPUT SELECT nama, harga FROM Barang WHERE (KodeSup = ‘DLL01’ OR KodeSUP = ‘BRS01’) AND Harga >= 10; OUTPUT nama harga ---- ----- 18 inch teddy bear 11.99 ANALYSIS Karena tanda kurung mempunyai urutan evaluasi yang lebih tinggi daripada operator AND atau OR, maka DBMS pertama-tama akan menyaring kondisi OR dalam tanda kurung tersebut. Statemen SQL kemudian menjadi semua barang yang dibuat oleh supplier DLL01 atau supplier BRS01 dengan harga $10 atau lebih besar. Catatan : Sekarang coba hilangkan tanda kurung dan perhatikan apa yang terjadi ? 5.3.4 Menggunakan Operator LIKE Semua operator diatas digunakan untuk menyaring nilai-nilai yang sudah diketahui. Membuatnya memenuhi satu atau lebih nilai, menguji lebih besar atau lebih kecil daripada nilai yang diketahui, atau menandai range nilai, maka denominator umumnya adalah nilai-nilai yang digunakan dalam penyaringan telah diketahui. Tetapi penyaringan data dengan cara seperti itu tidak selalu bekerja. Sebagai contoh, bagaimana Anda dapat mencari semua barang yang berisi teks bean bag dalam nama barang? Hal itu tidak dapat dilakukan dengan operator perbandingan sederhana. Untuk contoh kasus diatas dapat diatasi dengan menggunakan penyaringan wildcard. Dengan menggunakan wildcard, Anda dapat membuat pola pencari yang dapat diperbandingkan pada data Anda. Pada contoh ini, jika hendak mencari semua barang yang berisikan teks bean bag, Anda dapat membangun wildcard pola pencarian yang memungkinkan Anda menemukan teks bean bag dimana saja dalam nama barang. Wildcard sendiri sebenarnya adalah karakter yang memiliki arti khusus dalam klausa WHERE, dan SQL mendukung beberapa tipe wildcard yang berbeda. Untuk menggunakan wildcard dalam klausa pencarian, operator LIKE sebaiknya digunakan. a. Tanda Wildcard % (Persen) Wildcard yang paling sering digunakan adalah tanda persen (%). Dalam string pencarian % berarti mencocokkan semua jumlah kejadian dari beberapa karakter. Sebagai contoh, untuk menemukan semua barang yang diawali dengan kata fish, Anda dapat membuat statemen SELECT berikut ini : INPUT SELECT kodebrg, nama FROM Barang WHERE Nama LIKE ‘fish%’; ANALYSIS Contoh tersebut menggunakan pola pencarian ‘fish%’. Jika klausa ini dievaluasi, maka semua nilai yang dimulai dengan fish akan diambil. % memberitahu DBMS untuk menerima semua karakter setelah kata fish, tanpa peduli berapa banyak karakter tersebut. OUTPUT kodebrg nama ------- ---- BNBG01 Fish bean bag toy Wildcard dapat digunakan di semua tempat dalam pola pencarian, dan dapat digunakan banyak wildcard. Contoh berikut menggunakan dua wilcard : INPUT SELECT kodebrg, nama FROM Barang WHERE Nama LIKE ‘%bean bag%’; ANALYSIS Pola pencarian ‘%bean bag%’ berarti mencocokkan semua nilai yang berisi teks bean bag dimana saja yang ada didalamnya, tanpa memperhatikan semua karakter sebelum ataupun sesudah teks tersebut. OUTPUT kodebrg nama ------- ---- BNBG01 Fish bean bag toy BNBG02 Bird bean bag toy BNBG03 Rabbit bean bag toy Penting untuk dicatat bahwa sebagai tambahan untuk mencocokkan satu atau lebih karakter, % juga mencocokkan dengan karakter kosong, % mewakili nol, satu atau lebih karakter di tempat yang telah ditentukan dalam pola pencarian. b. Wildcard Underscore ( _ ) Wildcard lainnya yang bermanfaat adalah tanda garis bawah ( _ ). Tanda garis bawah digunakan sama seperti ‘%’, tetapi untuk mencocokkan satu karakter tunggal, bukan untuk banyak karakter. Perhatikan contoh berikut ini : INPUT SELECT kodebrg, nama FROM Barang WHERE Nama LIKE ‘__ inch teddy bear’; ANALYSIS Pola pencarian yang digunakan dalam klausa WHERE ini menentukan dua wildcard yang diikuti oleh teks harafiah. Hasilnya memperlihatkan hanya record-record yang cocok dengan pola pencarian : tanda garis bawah mencocokkan 12 untuk record pertama dan 18 untuk record kedua. Barang 8 inch teddy bear tidak cocok karena pola pencarian hanya memerlukan 2 wildcard yang cocok, bukan satu. OUTPUT kodebrg nama ------- ---- BR02 12 inch teddy bear BR03 18 inch teddy bear Tip-tip Menggunakan Wildcard Seperti yang Anda ketahui, wildcard SQL benar-benar sangat berguna. Tetapi manfaat tersebut juga menuntut resiko: Wildcard pencarian membutuhkan waktu yang lebih lama untuk memproses daripada jenis-jenis pencarian lain yang telah dibahas sebelumnya. Berikut ini beberapa ketentuan kapan menggunakan wildcard : · Jangan berlebihan menggunakan wildcard. Jika operator pencarian yang lainnya mendukung, gunakan. · Pada saat Anda menggunakan wildcard, cobalah untuk tidak menggunakannya pada awal pola pencarian kecuali benar-benar dibutuhkan. Pola pencarian yang diawali dengan wildcard merupakan proses pencarian paling lambat. · Perhatikan benar-benar penempatan simbol-simbol wildcard. Jika penempatannya salah, Anda tidak akan mendapatkan data yang Anda kehendaki. Namun demikian, wildcard tool pencarian yang penting dan bermanfaat, dan tool yang akan sering Anda gunakan. WildCard adalah karakter khusus yang digunakan untuk menyesuaikan bagian-bagian dari satu nilai.
 |