Membatasi Baris
Baris yang Dipilih
Anda bisa membatasi
baris baris yang dihasilkan dari query dengan menggunakan klausa WHERE.
Suatu klausa WHERE
berisi suatu kondisi yang harus terpenuhi, dan tepat setelah klausa
FROM. Jika kondisinya benar, baris yang memenuhi kondisi dikembalikan.
Contoh:
SELECT *
FROM table
WHERE condition;
Dalam sintak:
WHERE membatasi query
ke baris baris yang memenuhi kondisi
condition susunan nama nama kolom, ekspresi ekspresi, konstanta
konstanta dan operator pembanding
Klausa WHERE dapat
membandingkan nilai nilai dalam kolom kolom, nilai nilai literal,
ekspresi ekspresi aritmatika atau fungsi fungsi (functions).
Klausa WHERE terdiri
dari 3 bagian :
Nama · kolom
Kondisi · pembanding
Nama · kolom, konstanta atau daftar nilai nilai
Karakter Karakter String
dan Tanggal
Karakter karakter string
(rangkaian) dan tanggal dalam klausa WHERE harus diapit dengan
tanda petik satu (’ ’). Meskipun demikian, konstanta angka tidak
harus diapit oleh tanda petik satu.
Semua pencarian
karakter adalah case sensitive.
Dalam contoh berikut,
tidak ada baris baris yang dihasilkan karena tabel EMPLOYEES menyimpan
semua nama belakang dalam bentuk campuran (mixed case):
SELECT last_name, job_id, departement_id
FROM
employees
WHERE last_name = ‘WHALEN’;
Database Oracle
menyimpan tanggal dengan format angka sendiri, yang menunjukkan abad,
tahun, bulan, hari, jam, menit dan detik. Default tanggal yang
ditampilkan adalah DD-MON-RR.
Kondisi Kondisi
Pembanding
Kondisi kondisi
pembanding adalah digunakan dalam kondisi kondisi yang membandingkan
satu
ekspresi dengan nilai atau ekspresi lain. Kondisi
kondisi tersebut digunakan dalam klausa WHERE dengan format sebagai
berikut :
Sintak :
. . . WHERE expr operator value
Contoh
. . .
WHERE hire_date = ’01JAN95’
. . . WHERE salary >= 6000
. . . WHERE last_name = ‘Smith’
Suatu alias tidak bisa
digunakan dalam klausa WHERE.
Operator pembanding:
=
adalah sama dengan
>
adalah lebih besar dari
>=
adalah lebih besar dari atau sama dengan
<
adalah kurang dari
<=
adalah kurang dari atau sama dengan
<>
adalah tidak sama dengan
BETWEEN…AND adalah
diantara dua nilai
IN(set)
adalah beberapa sesuai dengan suatu daftar nilai
LIKE
adalah sesuai suatu bentuk karakter
IS
NULL adalah nilai null
Catatan : Simbol symbol != dan ^= juga dapat
menunjukkan kondisi tidak sama dengan.
Menggunakan
Kondisi BETWEEN
Anda dapat
menampilkan baris baris berdasarkan rentang nilai menggunakan kondisi
rentang
(range) BETWEEN.
Rentang yang Anda tentukan terdiri satu batas bawah dan satu batas
atas.
Pernyataan SELECT pada slide menghasilkan baris baris
dari tabel EMPLOYEES untuk beberapa pegawai yang mempunyai penghasilan
antara $2,500 dan $3,500.
Nilai nilai yang telah
ditentukan pada kondisi BETWEEN adalah inclusive (yang termasuk).
Anda
harus menentukan batas bawah dulu.
Anda juga bisa
menggunakan kondisi BETWEEN untuk nilai nilai huruf (karakter) :
SELECT last_name
FROM employees
WHERE last_name BETWEEN ‘King’ AND ‘Smith’;
Menggunakan
Kondisi IN
Untuk menguji nilai
dalam suatu kelompok nilai nilai tertentu, gunakan kondisi IN. Kondisi
IN
disebut juga sebagai membership condition .
Contoh pada slide
menampilkan nomor pegawai, nama belakang, penghasilan dan nomor manajer
para pegawai untuk semua pegawai dimana nomor manajer para pegawai
adalah 100, 101 atau 201.
Kondisi IN dapat
digunakan pada setiap tipe data. Contoh berikut ini menghasilkan suatu
baris dari tabel EMPLOYEES untuk beberapa pegawai yang mempunyai nama
belakang termasuk dalam daftar nama nama pada klausa WHERE :
SELECT employee_id, manager_id, departement_id
FROM
employees
WHERE last_name IN (‘Hartstein’,’Vargas’);
Jika karakter karakter
atau tanggal digunakan dalam daftar, harus diapit oleh tanda petik
satu (’ ’).
Menggunakan
Kondisi LIKE
Anda mungkin tidak
selalu tahu nilai pasti yang dicari . Anda dapat memilih baris baris
yang sesuai dengan pola
karakter dengan menggunakan kondisi LIKE. Cara kerja (operation) pola
karakter yang bersesuaian adalah seperti mengacu ke pencarian acak (wildcard
search). Dua simbol yang dapat digunakan untuk membuat pencarian string
(rangkaian).
Simbol
% adalah
Mewakili setiap urutan kosong atau beberapa karakter
_ adalah
Mewakili setiap karakter tunggal
Pernyataan SELECT pada
slide menghasilkan nama depan pegawai dari tabel EMPLOYEES untuk
beberapa pegawai yang memiliki nama depan yang diawali dengan huruf S.
Catatan huruf besar S.
Nama nama yang diawali
dengan suatu huruf s tidak ditampilkan.
Kondisi LIKE dapat
digunakan sebagai suatu shortcut (jalan pintas) untuk beberapa
perbandingan BETWEEN.
Contoh berikut
menampilkan nama belakang dan tanggal mulai bekerja dari semua pegawai
yang bergabung antara bulan Januari 1995 dan Desember 1995 :
SELECT last_name, hire_date
FROM employees
WHERE hire_date LIKE ‘%95’;
Memgkombinasikan
Pencarian Acak (Wildcard) Karakter Karakter
Simbol symbol % dan
_ dapat digunakan pada setiap kombinasi dengan karakter karakter
literal.
Contoh pada slide
menampilkan nama nama dari semua pegawai yang memiliki nama belakang
dengan huruf o sebagai
karakter kedua.
Opsi ESCAPE
Saat Anda perlu untuk
mendapatkan kepastian dari karakter karakter
% dan _, gunakan
pilihan ESCAPE. Pilihan ini menentukan keluaran karakter (escape
character) apa. Jika Anda ingin mencari rangkaian rangkaian (strings)
yang berisi ’SA_’ , Anda dapat menggunakan pernyataan SQL berikut :
SELECT employee_id, last_name, job_id
FROM
employees WHERE job_id LIKE ‘%SA\_%’ ESCAPE ‘\’;
Opsi ESCAPE ditandai backslash
(\) sebagai keluaran karakter. Dalam pola, keluaran karakter
diawali underscore (
_ ). Hal ini menyebabkan server Oracle menafsirkan underscore secara
harfiah (literally).
Menggunakan
Kondisi Kondisi NULL
Kondisi kondisi
NULL terdiri dari kondisi IS NULL dan kondisi IS NOT NULL. Kondisi IS
NULL untuk menguji nullnull.
Nilai null berarti
nilainya tidak ada (unavailable), tidak diberikan (unassigned),
tidak diketahui (unknown) atau tidak dipakai (inapplicable).
Oleh sebab itu, Anda tidak bisa menguji dengan = karena suatu null
bukan sama atau tidak sama dengan dalam sembarang nilai. Contoh
pada slide menghasilkan nama belakang dan manager manager dari para
pegawai yang tidak mempunyai manager.
Berikut adalah contoh
lainnya :
Untuk menampilkan nama
belakang, job ID dan komisi dari semua pegawai yang ditandai tidak untuk
menerima komisi, gunakan pernyataan SQL berikut:
SELECT last_name, job_id, commission_pct
FROM
employees
WHERE commission_pct IS NULL;
Kondisi Kondisi
Logika
Suatu kondisi
logika menggabungkan hasil dari dua bagian kondisi kondisi untuk
menghasilkan
hasil tunggal
berdasarkan kondisi kondisi tersebut, atau kondisi kondisi logika
membalik hasil dari
suatu kondisi tunggal.
Satu baris dikembalikan, hanya jika hasil secara keseluruhan dalam suatu
kondisi adalah benar (true).
Tiga operator logika
yang ada pada SQL:
AND · adalah menghasilkan nilai TRUE jika kedua bagian
adalah benar
OR · adalah menghasilkan nilai TRUE jika salah satu
bagian adalah benar
NOT · adalah menghasilkan nilai TRUE jika kedua bagian
adalah salah
Semua contoh contoh
sejauh ini ditentukan hanya satu kondisi dalam klausa WHERE. Anda dapat
menggunakan beberapa kondisi dalam satu klausa WHERE menggunakan
operator AND dan OR.
Menggunakan
operator AND
Contoh:
SELECT employee_id, last_name job_id, salary
FROM
employee
WHERE salary >=10000
AND Job_id LIKE ‘%MAN%’;
Dalam contoh, kedua
kondisi harus benar untuk setiap record yang dipilih. Oleh sebab
itu, hanya
Pegawai pegawai yang
mempunyai suatu nama job yang berisi rangkaian kata ‘MAN’ dan
berpenghasilan $10,000
atau lebih yang dipilih.
Semua karakter yang
dicari adalah case sensitive.
Tidak ada baris baris
yang dihasilkan jika ’ MAN’ bukan huruf besar. Rangkaia nrangkaian
karakter harus diapit oleh tanda petik.
Menggunakan
Operator OR
Contoh
SELECT employee_id,last_name
FROM employees
WHERE salary >=10000
OR job_id LIKE ‘%MAN%’;
Dalam contoh, salah
satu kondisi bisa bernilai benar untuk sembarang record yang
dipilih. Oleh
karena itu beberapa
pegawai yang mempunyai job ID yang berisi rangkaian kata ‘MAN’ atau
berpenghasilan $10,000
atau lebih yang dipilih.
Menggunakan
Operator NOT
Contoh
SELECT last_name
FROM employees
WHERE job_id NOT IN
(‘IT_PROG’, ‘ST_CLERK’, ‘SA_REP’);
Contoh tersebut
menampilakan nama belakang dan job ID untuk semua pegawai dimana job ID bukan
IT_PROG, ST_CLERK, atau
SA_REP.
Menggunakan klausa
ORDER BY
Urutan dari baris
baris yang dihasilkan dari suatu hasil query adalah tidak tetap. Klausa
ORDER BY bisa digunakan untuk menyortir baris baris.
Jika Anda menggunakan
klausa ORDER BY, ORDER BY harus berada diakhir pernyataan SQL. Anda bisa
menentukan suatu ekspresi , suatu alias atau posisi kolom sebagai
kondisi pensortiran.
Sintak
SELECT
expr
FROM table
[WHERE condition(s)]
[ORDER BY {column,expr,numeric_position}[ASC|DESC]];
Dalam sintak :
ORDER BY menentukan
suatu urutan dimana baris baris yang dihasilkan ditampilkan ASC
mengurutkan baris baris dalam urutan ascending, ASC adalah default
pengurutan
DESC mengurutkan baris
baris dalam urutan descending Jika klausa ORDER BY tidak
digunakan, urutan pensortiran tidak tetap, maka server Oracle mungkin
tidak mengambil baris baris dalam urutan yang sama pada query yang sama
untuk kedua kalinya. Gunakan
klausa
ORDER BY untuk menampilkan baris baris dalam urutan tertentu.
Tidak ada komentar:
Posting Komentar