Membatasi dan Mensortir Data

Resume2

Stikom surabaya

Membatasi dan Mensortir Data

Dalam sintak:

  • WHERE membatasi query ke barisbaris yang memenuhi kondisi
  • condition susunan namanama kolom, ekspresiekspresi, konstanta-konstanta dan operator pembanding

Klausa WHERE dapat membandingkan nilai nilai dalam kolomkolom, 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 nilainilai

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 casesensitive. Dalam contoh berikut, tidak ada barisbaris

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 DDMONRR.

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.

Catatan : Simbol-simbol

!= dan ^= juga dapat menunjukkan kondisi tidak sama dengan.

  • Menggunakan Kondisi BETWEEN

Rentang yang di tentukan terdiri satu batas bawah dan satu batas atas. Nilai-nilai yang telah ditentukan pada kondisi BETWEEN adalah inclusive (yang termasuk).

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 . 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

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).

SELECT last_name, hire_date

FROM employees

WHERE hire_date LIKE ‘%95’;

  • Menggunakan Kondisi-Kondisi NULL

Kondisi-kondisi NULL terdiri dari kondisi IS NULL dan kondisi IS NOT NULL. Kondisi IS NULL untuk menguji null-null. Nilai null berarti nilainya tidak ada (unavailable), tidak diberikan

(unassigned), tidak diketahui (unknown) atau tidak dipakai (inapplicable). Oleh sebab itu, tidak bisa menguji dengan = karena suatu null bukan sama atau tidak sama dengan dalam sembarang nilai.

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 kondisikondisi

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
  • OR
  • NOT
  • Menggunakan operator AND

Dalam contoh, kedua kondisi harus benar untuk setiap record yang dipilih.

  • Menggunakan Operator OR

Dalam contoh, salah satu kondisi bisa bernilai benar untuk sembarang record yang dipilih.

  • Menggunakan Operator NOT

Contoh di slide menampilakan nama belakang dan job ID untuk semua pegawai dimana job ID bukan IT_PROG, ST_CLERK, atau SA_REP.Catatan : Operator NOT bisa juga digunakan bersama operator-operatorSQL yang lain, seperti

BETWEEN, LIKE dan NULL.

. . . WHERE job_id NOT IN (‘AC_ACCOUNT’,’AD_VP’)

. . . WHERE salary NOT BETWEEN 10000 AND 15000

. . . WHERE last_name NOT LIKE ’%A%’

. . . WHERE commission_pct IS NOT NULL

1. Contoh dari Precedence pada Operator AND

  • Kondisi pertama adalah job ID yaitu AD_PRESS dan penghasilan lebih besar dari $15,000.
  • Kondisi kedua adalah job ID yaitu SA_REP.

Oleh karena itu, pernyataan SELECT dibaca sebagai berikut :

“Pilih suatu baris jika seorang pegawai adalah seorang presiden dan berpenghasilan lebih dari $15,000,

atau jika pegawai adalah sales representative.”

2. Contoh Menggunakan Tanda Kurung

  • Kondisi pertama adalah job ID yaitu AD_PRES atau SA_REP.
  • Kondisi kedua adalah penghasilan lebih besar dari $15,000.

Oleh karena itu, pernyataan SELECT dibaca sebagai berikut :

“Pilih suatu baris jika seorang pegawai adalah seorang presiden atau sales representative, dan jika

pegawai berpenghasilan lebih dari $15,000.”

  • 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. 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]];

Default Pengurutan pada data

Default urutan pensortiran adalah ascending :

  • Nilai-nilai numeric yang pertama ditampilkan adalah nilai terendah (contoh, 1 sampai 999).
  • Nilai-nilai tanggal yang pertama ditampilkan adalah nilai pertama (contoh, 01JAN92 sebelum 01JAN95).
  • Nilai- nilai karakter ditampilkan dalam urutan alfabetikal (contoh, A pertama dan Z terakhir).
  • Nilai-nilai null ditampilkan terakhir pada urutan ascending dan diawal pada urutan descending.

Contoh

1. Untuk membalik urutan baris-baris mana yang ditampilkan , tentukan keyword (kata kunci) DESC setelah nama kolom pada klausa ORDER BY. Dalam slide dicontohkan hasil pensortiran per pegawai yang paling baru diterima.

2. Dapat menggunakan kolom alias pada klausa ORDER BY. Dalam slide dicontohkan pensortiran data per penghasilan tahunan.

3. Dapat mensortir hasil-hasil query dengan lebih dari satu kolom. Batas pensortiran adalah sejumlah kolom-kolom yang ada dalam tabel. Dalam klausa ORDER BY, tentukan kolom-kolom dan pisahkan nama-nama

kolom menggunakan koma. Jika menginginkan untuk membalik urutan suatu kolom, tentukan DESC setelah nama-nama kolom tersebut.

  • Menentukan NamaNama Kolom, Ekspresi-Ekspresi dan Teks

Anda tidak hanya dapat menggunakan substitution variables pada klausa WHERE pada suatu

pernyataan SQL, tapi variable-variable tersebut bisa juga digunakan untuk mengganti nama-nama

kolom, ekspresi-ekspresiatau teks.

  • Double Ampersand Subtitution Variable

Anda bisa menggunakan substitution variable double ampersand (&&) jika Anda ingin

menggunakan kembali nilai variable tanpa mengingatkan user setiap saat. User melihat peringatan

untuk suatu nilai hanya sekali.

  • Menggunakan perintah iSQL*Plus DEFINE

Dalam contoh ditunjukkan pembuatan suatu variable pengganti iSQL *Plus untuk satu nomor

pegawai dengan menggunakan pernyataan DEFINE

  • Menggunakan Perintah VERIFY

Untuk menegaskan perubahan-perubahan dalam pernyataan SQL, gunakan perintah iSQL*Plus

VERIFY.

  • Variabel-variabel Sistem iSQL*Plus

iSQL*Plus menggunakan beragam variable-variabel yang mengontrol suatu lingkungan kerja

itu adalah VERIFY.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s