Pada pembahasan sebelumnya, kita telah mempelajari bagaimana cara
menampilkan seluruh data dari suatu tabel. Kali ini kita akan
mempelajari bagaimana menampilkan data tertentu sesuai dengan kriteria
yang diinginkan.
3.1. Membatasi Hasil Query
Kita dapat membatasi hasil query dengan menggunakan klausa WHERE,
yang mengandung kondisi yang kita inginkan, dan secara langsung
mengikuti klausa FROM.
SELECT [DISTINCT] {*, column [alias], . . .}
FROM table
[WHERE condition(s)];
WHERE: menentukan kondisi yang akan digunakan untuk membatasi hasil query
condition(s): terdiri dari nama-nama kolom, ekspresi, konstanta, dan operator-operator pembanding
3.2. Operator-operator Pembanding
Operator-operator pembanding terbagi ke dalam dua kategori: logical
dan SQL, dan digunakan dalam klausa WHERE untuk membandingkan suatu
ekspresi dengan lainnya menggunakan format berikut:
. . . WHERE expr operator value
Contoh:
Menampilkan data karyawan yang bekerja pada departemen berkode 42.
SELECT last_name
FROM employee
WHERE dept_id = 42;
3.2.1. Operator-operator Pembanding Logical
= : sama dengan
> : lebih besar dari
>= : lebih besar atau sama dengan
< : lebih kecil dari
<= : lebih kecil atau sama dengan
3.2.2. Operator-operator SQL
BETWEEN . . . AND . . . : diantara dua nilai
IN (
list) : sesuai dengan salah satu dari kumpulan nilai
LIKE : sesuai dengan susunan karakter
IS NULL : adalah bernilai null
3.2.3. Operator-operator Logical
AND : jika kedua komponen bernilai TRUE, hasilnya TRUE
OR : jika salah satu komponen bernilai TRUE, hasilnya TRUE
NOT : mengembalikan nilai sebaliknya
3.2.4. Negasi Operator-operator Logical
!= : tidak sama dengan (VAX, UNIX, PC)
^= : tidak sama dengan (IBM)
<> : tidak sama dengan (seluruh sistem operasi)
NOT
colname = : tidak sama dengan
NOT
colname > : tidak lebih besar dari
3.2.5. Negasi Operator-operator SQL
NOT BETWEEN . . . AND . . . : tidak diantara dua nilai
NOT IN (
list) : tidak dalam kumpulan nilai yang ditentukan
NOT LIKE : tidak sesuai dengan string pembanding
NOT IS NULL: bukan merupakan nilai null
Jika kita ingin membandingkan nilai yang diketahui dengan nilai null,
dapat menggunakan operator pembanding IS NULL atau IS NOT NULL. Jika
kita membandingkan nilai null menggunakan operator-operator lain,
hasilkan akan selalu FALSE.
Sebagai contoh, kondisi
commission_pct <> NULL akan selalu FALSE karena nilai null tidak boleh sama atau tidak sama dengan nilai lain, bahkan dengan nilai null lainnya.’
3.3. Kumpulan Karakter dan Tanggal
Kumpulan karakter dan tanggal dalam klausa WHERE harus ditutup dengan tanda petik tunggal (’ ‘).
Contoh:
Menampilkan data karyawan yang memiliki nama belakang “Ngao”.
SELECT last_name, title
FROM employee
WHERE last_name = ‘NGAO’;
Seluruh
kumpulan karakter adalah case sensitive, sehingga query diatas tidak
menemukan hasil. Oleh karena itu, query diatas harus diubah sedemikian
sehingga sesuai dengan data yang terdapat dalam tabel Karyawan.
SELECT last_name, title
FROM employee
WHERE last_name = ‘Ngao’;
3.4. Operator BETWEEN
Kita
dapat menampilkan data berdasarkan jangkauan nilai tertentu menggunakan
operator BETWEEN. Jangkauan yang kita tentukan adalah jangkauan rendah
dan tinggi.
Contoh:
Menampilkan data karyawan yang mulai bekerja antara tanggal 9 Mei 1991 dan 17 Juni 1991.
SELECT last_name, hire_date
FROM employee
WHERE hire_date BETWEEN ‘09-MAY-91′ AND ‘17-JUN-91′;
3.5. Operator IN
Operator IN dapat digunakan untuk mengecek suatu nilai dalam daftar tertentu.
Contoh:
Menampilkan data departemen yang memiliki kode 1 dan 3.
SELECT id, name
FROM department
WHERE id IN(1,3);
Penggunaan karakter atau tanggal dalam daftar harus ditutup dengan tanda petik tunggal (’ ‘).
3.6. Operator LIKE
Kita
mungkin tidak selalu mengetahui nilai tertentu secara pasti dalam
proses pencarian. Kita dapat menampilkan baris data yang sesuai dengan
susunan karakter tertentu menggunakan operator LIKE. Dua jenis simbol
dapat digunakan untuk membangun string pencarian.
% : Menunjukkan beberapa urutan nilai karakter 0 atau lebih
- : Menunjukkan beberapa karakter tunggal
Contoh:
Menampilkan data karyawan yang memiliki nama berawalan huruf “M”.
SELECT last_name
FROM employee
WHERE last_name LIKE ‘M%’;
Menampilkan data karyawan yang memiliki nama tidak mengandung huruf “a”.SELECT last_name
FROM employee
WHERE last_name NOT LIKE ‘%a%’;
Operator LIKE dapat digunakan sebagai jalan pintas bagi beberapa perbandingan menggunakan BETWEEN.
Contoh:
Menampilkan data karyawan yang mulai bekerja pada tahun 1991.
SELECT last_name, hire_date
FROM employee
WHERE hire_date LIKE ‘%91′;
3.7. Menggabungkan Karakter WILDCARD
Simbol % dan _ dapat digunakan dalam beberapa kombinasi dengan karakter biasa.
Contoh
Menampilkan data karyawan yang memiliki nama berawalan ‘_a’.
SELECT last_name
FROM employee
WHERE last_name LIKE ‘_a%’;
3.7.1. OPSI ESCAPE
Ketika
kita memerlukan hasil yang benar-benar tepat bagi karakter-karakter
aktual “%” dan “_” , kita dapat menggunakan opsi ESCAPE. Opsi ini
menentukan apa karakter ESCAPE-nya.
Contoh:
Menampilkan data departemen dengan nama mengandung ‘X_Y’.
SELECT name
FROM department
WHERE name LIKE ‘%X\_Y%’ ESCAPE ‘\’;
3.8. Operator IS NULL
Operator
IS NULL mengetes nilai yang null. Nilai null berarti nilai tersebut
tidak tersedia, tidak diberikan, tidak diketahui, atau tidak dapat
digunakan. Oleh karena itu, kita tidak dapat menggunakan “=” karena
nilai null tidak dapat sama atau tidak sama dengan suatu nilai.
Contoh:
Menampilkan data karyawan yang tidak memiliki atasan.
SELECT id, last_name, manager_id
FROM employee
WHERE manager_id = NULL;
SELECT id, last_name, manager_id
FROM employee
WHERE manager_id = ‘ ‘;
Menampilkan data karyawan yang memiliki prosentase komisi.
SELECT last_name, title, commission_pct
FROM employee
WHERE commission_pct IS NOT NULL
3.9. Menampilkan Data Berdasarkan Beberapa Kondisi
Kita
mungkin perlu menentukan kriteria kompleks dengan mengkombinasikan
beberapa kondisi pencarian. Operator AND dan OR dapat digunakan.
Operator AND menghasilkan nilai TRUE jika kedua kondisi bernilai TRUE,
sedangkan operator OR menghasilkan nilai TRUE jika salah satu kondisi
bernilai TRUE. Dalam dua contoh berikut , kondisinya sama, namun
operator yang digunakan berbeda. Perhatikan bagaimana hasilnya berubah.
Contoh:
Menampilkan data karyawan yang memiliki jabatan ‘Stock Clerk’ dan bekerja pada departemen 41.
SELECT last_name, salary, dept_id, title
FROM employee
WHERE dept_id = 41 AND title = ‘Stock Clerk’;
Menampilkan data karyawan yang memiliki jabatan ‘Stock Clerk’ atau yang bekerja pada departemen 41.
SELECT last_name, salary, dept_id, title
FROM employee
WHERE dept_id = 41 OR title = ‘Stock Clerk’;
3.9.1. Aturan Evaluasi Operator
Kita
mungkin mengkombinasikan operator-operator AND dan OR pada ekspresi
logika yang sama. Hasil dari seluruh kondisi dikombinasikan dalam urutan
yang ditentukan oleh evaluasi dari operator-operator yang terhubung.
Operator yang memiliki urutan evaluasi yang sama digunakan selanjutnya
satu sama lain, dicek dari kiri ke kanan.
1 : Seluruh operator pembanding (=,<>,>,>=,<,<=,IN, LIKE, IS NULL, BETWEEN)
2 : AND
3 : OR
Catatan: Ketika menggunakan ekspresi negasi, operator-operator pembanding tetap dievaluasi pertama.
Anda
dapat mengabaikan evaluasi operator dengan menggunakan tanda kurung,
Oracle akan mengevaluasi terlebih dahulu ekspresi-ekspresi dalam kurung.
Jika
Anda ragu operasi mana diantara dua operasi yang dicek terlebih dahulu
saat ekspresi dievaluasi, gunakan tanda kurung untuk memperjelas.
0 komentar:
Posting Komentar