MENGENAL BERBAGAI OPERATOR LAINNYA Sistem Basis Data – Bab 7 MENGENAL BERBAGAI OPERATOR LAINNYA
1. Operator BETWEEN dan NOT BETWEEN Operator BETWEEN berguna menangani operasi “jangkauan”. Contoh pernyataan SQL berikut digunakan untuk menampilkan bintang film pada tabel infoprib antara tahun 1960 sampai dengan 1970. SELECT nama, tgl_lahir FROM infoprib WHERE tgl_lahir BETWEEN ‘1960-01-01’ AND ‘1970-12-31’ Hasilnya dapat dilihat pada Gambar 1.
nama tgl_lahir Julia Roberts 1967-10-28 Demi Moore 1962-11-11 Cindy Crawford 1966-02-20 Keanu Reeves 1964-09-02 Sandra Bullock Gambar 1. Daftar bintang film pada tabel infoprib yg lahir antara tahun 1960-1970
Contoh pernyataan SQL, perintah berikut digunakan untuk menampilkan nama yg tidak berawalan “C’ dan “J” pada tabel infoprib dengan cara menambahkan NOT di depan BETWEEN. SELECT nama FROM infoprib WHERE nama NOT BETWEEN ‘C’ AND ‘J’
nama Sharon Stone Sylvester Stallone Kevin Costner Demi Moore Keanu Reeves Sandra Bullock Richard Gere Slamet Rahardjo Kelly McGillis Angelina Jolie Gambar 2. Daftar bintang film yg tidak berawalan “C’ dan “J” pada tabel infoprib
2. Operator IN dan NOT IN Operator IN dan NOT IN berguna untuk melakukan pencocokan dengan salah satu yg ada pada suatu daftar nilai. Contoh pernyataan SQL : SELECT nama FROM infoprib WHERE id_bin = ‘KEVIN’ OR id_bin = ‘STONE’ OR id_bin = ‘DREWB’; Atau WHERE id_bin IN (‘KEVIN’, ‘STONE’, ‘DREWB’) Merupakan pernyataan SQL untuk memperoleh nama-nama bintang film yg sesuai dengan id_bin yg disebutkan. Hasil query dapat dilihat pada gambar 3.
Gambar 3. Daftar tiga orang bintang film pada tabel infoprib nama Sharon Stone Kevin Costner Drew Barrymore Gambar 3. Daftar tiga orang bintang film pada tabel infoprib
Jika ingin mendapatkan adalah SELAIN yg terdapat dalam daftar tertentu, Anda perlu menambahkan NOT di depan IN. Contoh pernyataan SQL : SELECT nama FROM infoprib WHERE id_bin NOT IN (‘KEVIN’, ‘STONE’, ‘DREWB’);
Gambar 4. Hasil NOT IN nama Sylvester Stallone Cristine Hakim Julia Roberts Demi Moore Cindy Crawford Cameron Diaz Keanu Reeves Sandra Bullock Richard Gere Slamet Rahardjo Kelly McGillis Angelina Jolie Gambar 4. Hasil NOT IN
3. Operator LIKE and NOT LIKE Operator LIKE sangat bermanfaat untuk mencari data semacam siapa saja bintang film yg namanya mengandung huruf a atau siapa saja yg mengandung huruf a atau siapa saja yg mengandung nama ‘one’. Dalam melakukan pencarian dengan operator LIKE, perlu menyebutkan tanda wildcard berupa garis bawah (_) atau persen (%). Tanda garis bawah (_) berarti sebuah karakter apa saja. Contoh: a_i cocok dengan ani, ali, ataupun abi, tetapi lebih cocok dengan andi. Tanda persen (%) berarti cocok dengan karakter apa saja & berapapun panjangnya (termasuk cocok dengan nol karakter). Beberapa contoh % dapat dilihat pada Tabal 1. Selain itu huruf kecil maupun huruf kapital dianggap sama.
Tabel 1. Contoh pemakaian wildchard % Pola Keterangan %a% Cocok dengan apa saja yg mengandung karakter a atau A %a Cocok dengan yg berakhiran a atau A. Hanya berlaku untuk yg bertipe VARCHAR a% Cocok dengan yg berawalan a atau A Tabel 1. Contoh pemakaian wildchard %
Beberapa contoh penerapan wildchard %: Contoh 1, Pernyataan SQL untuk Menampilkan semua bintang film yg mengandung on : SELECT nama FROM infoprib WHERE nama LIKE ‘%on%’;
Gambar 5. Daftar bintang film pada tabel infoprib yg mengandung on nama Sylvester Stallone Sharon Stone Cameron Diaz Gambar 5. Daftar bintang film pada tabel infoprib yg mengandung on
Beberapa contoh penerapan wildchard %: Contoh 2, Pernyataan SQL untuk Menampilkan semua bintang film yg berawalan dengan S : SELECT nama FROM infoprib WHERE nama LIKE ‘S%’;
nama Sylvester Stallone Sharon Stone Sandra Bullock Slamet Stallone Gambar 6. Daftar bintang film pada tabel infoprib yg berawalan dengan S
Beberapa contoh penerapan wildchard %: Contoh 3, Pernyataan SQL untuk Menampilkan semua bintang film yg tdk berawalan dengan S : SELECT nama FROM infoprib WHERE nama NOT LIKE ‘S%’;
nama Drew Barrymore Kevin Costner Cristine Hakim Julia Roberts Demi Moore Cindy Crawford Cameron Diaz Keanu Reeves Richard Gere Kelly McGillis Angelina Jolie Gambar 7. Daftar bintang film pada tabel infoprib yg tdk berawalan dengan S
4. Operator IS NULL dan IS NOT NULL Di dalam tabel infoprib terdapat nilai NULL pada kolom tgl_lahir. Apa yg terjadi seandainya Anda memberikan Pernyataan SQL berikut: SELECT * FROM infoprib WHERE tgl_lahir = NULL Pada sistem MySQL, ternyata tdk ada hasil yg diberikan. Mengapa demikian? Tidak lain hal ini disebabkan jika ada nilai NULL dibandingkan dengan sebarang nilai (termasuk NULL) maka hasilnya tdk berupa benar atau salah, tetapi berupa ‘tak dikenai’. Namun, dalam prakteknya ada sistem yg memberikan hasil yg berbeda, yaitu tetap menghasilkan baris yg tgl_lahir – nya berupa NULL (Misalnya pada PostgreSQL). Lalu bagaimana caranya kalau ingin menampilkan semua baris yg kolom tgl_lahir – nya bernilai NULL pada sistem yg tdk mendukung pembandingan dengan nilai NULL? SQL menyediakan operator IS NULL untuk menangani hal seperti ini. Dengan demikian, perlu mengganti pernyataan di atas menjadi seperti berikut:
Gambar 8. Hasil query dengan operator IS NULL SELECT * FROM infoprib WHERE tgl_lahir IS NULL; id_bin nama tgl_lahir sex RAHAR Slamet Rahardjo P Gambar 8. Hasil query dengan operator IS NULL
Jika ingin menampilkan semua bintang film yg tgl_lahir nya tdk berisi NULL, bisa memakai IS NOT NULL. Contoh memberikan Pernyataan SQL : SELECT * FROM infoprib WHERE tgl_lahir IS NOT NULL;
id_bin nama tgl_lahir sex DREWB Drew Barrymore 1975-02-22 W STONE Sharon Stone 1958-03-10 SYLVE Sylvester Stallone 1946-07-06 P KEVIN Kevin Costner 1955-01-18 HAKIM Cristine Hakim 1957-12-25 JULIA Julia Roberts 1967-10-28 DEMIM Demi Moore 1962-11-11 CINDY Cindy Crawford 1966-02-20 CDIAZ Cameron Diaz 1972-08-30 KEANU Keanu Reeves 1964-09-02 SANDR Sandra Bullock RGERE Richard Gere 1948-08-29 KELLY Kelly McGillis 1957-07-09 JOLIE Angelina Jolie 1975-06-04 Gambar 9. Daftar bintang film pada tabel infoprib yg tanggal lahirnya tdk NULL