Membatasi Baris Mengggunakan Klausa WHERE
Baris-baris data yang dihasilkan dari suatu query dapat dibatasi dengan memberikan klausa WHERE.
Bentuk umumnya sebagai berikut :
SELECT [DISTINCT] {*, column [alias], …} FROM table;
[WHERE condition(s)];
Contoh :
SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90 ;
String Karakter dan Tanggal
Penggunaan string karakter dan tanggal pada klausa WHERE menggunakan tanda petik tunggal. Format default dari tipe data tanggal adalah DD-MON-YY.
SELECT last_name, job_id, department_id
FROM employees
WHERE last_name = 'Whalen' ;
Kondisi Pembandingan
Operator perbandingan dapat digunakan pada klausa WHERE, dan mempunyai sintak sebagai berikut : WHERE expr operator value
SELECT last_name, salary
FROM employees
WHERE salary <= 3000 ;
Menggunakan kondisi BETWEEN
Operator BETWEEN digunakan untuk menampilkan baris berdasarkan suatu jangkauan (range) nilai.
SELECT last_name, salary
FROM employees
WHERE salary BETWEEN 2500 AND 3500 ;
Menggunakan Kondisi IN
Operator IN digunakan untuk menguji nilai-nilai yang ada dalam list (tanda kurung).
SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN (100, 101, 201) ;
Menggunakan Kondisi LIKE
Operator LIKE digunakan untuk membentuk pencarian string yang sesuai dengan nilai yang dicantumkan pada kondisi. Kondisi pencarian dapat berisi karakter atau bilangan, dan 2 (dua) symbol khusus berikut :
- % menotasikan zero atau banyak karakter
- _ menotasikan satu karakter
SELECT first_name
FROM employees
WHERE first_name LIKE 'S%' ;
SELECT last_name
FROM employees
WHERE last_name LIKE '_o%' ;
Menggunakan Kondisi NULL
Untuk menguji adanya nilai NULL, digunakan operator IS NULL
SELECT last_name, manager_id
FROM employees
WHERE manager_id IS NULL ;
Kondisi Logika
Operator logika mengkombinasikan hasildari dua komponen kondisi yang tersedia, yaitu AND, OR, dan NOT.
*) Menggunakan Operator AND
Operator logika AND akan bernilai benar jika semua kondisi benar.
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >=10000
AND job_id LIKE '%MAN%' ;
*) Menggunakan Operator OR
Operator logika OR bernilai benar jika salah satu dari kondisi bernilai benar.
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >=10000
OR job_id LIKE '%MAN%' ;
*) Menggunakan Operator NOT
Berikut ini contoh penggunaan dari operator logika NOT :
SELECT last_name, job_id
FROM employees
WHERE job_id
NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP') ;
Aturan Presedensi
Berikut ini table aturan presedensi :
Perhatikan contoh berikut ini, dan perhatikan hasil yang diperoleh berdasarkan presedensi operator yang digunakan :
Gunakan tanda kurung untuk menunjukkan prioritas :
Klausa ORDER BY
Klausa ORDER BY digunakan untuk mengurutkan data hasil query.
Terdapat 2 (dua) jenis : ASC (Ascending – urut naik), dan DESC (Descending – urut turun). Secara default jika tidak ditampilkan maka dianggap urut naik.
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date ;
Pengurutan menurun
Untuk melakukan pengurutan menurun digunakan DESC.
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date DESC ;
Pengurutan dengan Kolom Alias
Kolom alias juga bisa digunakan dalam klausa ORDER BY.
SELECT employee_id, last_name, salary*12 annsal
FROM employees
ORDER BY annsal ;
Pengurutan dengan Banyak Kolom
Pengurutan data bisa melibatkan dua kolom atau lebih.
SELECT last_name, department_id, salary
FROM employees
ORDER BY department_id, salary DESC ;