Home » , » Oracle SQL & PL/SQL – 3. Menampilkan Data Tertentu

Oracle SQL & PL/SQL – 3. Menampilkan Data Tertentu

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

Comments

Kontak Jodoh

Featured

free counters

Arsip Blog

Followers