Jumat, 10 Mei 2013

Retrieving Result Set Dengan SQL Server 2005

Masih berbicara mengenai basis data, dan pastinya ga jauh2 dari ngomongin query, heheheh....kalo qta ngomongin masalah basis data, qta bisa bayangin klo basis data itu ibarat lemari arsip. tau dong lemari arsip itu isinya apaan?yes, betul banget dan 100 buat yang jawab isinya adalah data/arsip. biasanya lemari arsip itu ada beberapa bagian ya, tergantung dari modelnya. bayangkan lemari arsip besar yang tersusun atas beberapa laci dan dari setiap laci tersebut diberi nama/label berdasarkan abjad A-Z. kemudian dari masing-masing laci tersebut berisi arsip dengan awalan nama sesuai abjad di laci, dan isi laci tersebut diurutkan misalnya berdasarkan tanggal. 

Oke, sampe sini udah bisa bayangin kan basis data itu kaya apa? nah sekarang persepsi diatas tinggal di replace dengan cara ganti gambar lemari menjadi hardisk, kemudian dalam hardisk tersebut, bayangkan qta menyimpan file yang diurut seperti urutan laci dan isinya. laci dalam basis data biasanya mencerminkan sebuah tabel. dan file2 yang ada dalam laci tersebut, klo dalam istilah basis data disebut dengan record/tuple.  jadi kalo ada user ambil file bernama budi dari laci B, berarti user tersebut mengambil record si Budi dari tabel B. nah itulah basis data :)
Biasanya setiap orang memiliki kebutuhan yang berbeda untuk data yang diambil dari basis data. dan dari data yang ada dalam sebuah tabelpun, terkadang hanya record tertentu saja yang dibuthkan.bahkan bisa jadi dari record tersebut hanya beberapa field tertentu yang diambil. field? apa itu field?hehehe...field itu beda ya sama file. field istilah lainnya adalah attribut/kolom dari suatu record. untuk menangani kebutuhan yang berbeda dari masing2 user tersebut, SQL Server menyediakan fitur untuk Retrieving data menggunakan beberapa cara. nah cara2 yang bisa dipake antara lain:
  1. Menggunakan Wildcard dengan menggunakan kata kunci LIKE
  2. Menggunakan klausa ORDER BY
  3. Menggunakan Keyword TOP
  4. Menggunakan Keyword DISTINCT
  5. Menggunakan Fungsi Aggregate
Oke,yu disimak bagaimana mekanisme dari masing2 cara retrieving data diatas.

Menggunakan Wildcard dengan kata kunci LIKE

SQL Server menyediakan sebuah metode pencocokan pola untuk ekspresi string dengan menggunakan kata kunci LIKE dengan mekanisme wildcard.  Kata kunci LIKE digunakan untuk memilih baris yang cocok dengan bagian tertentu dari string karakter. Penggunaan kata kunci LIKE biasanya diikuti dengan penggunaan tanda persen (%) didepan, dibelakang atau didepan dan belakang nilai yang dicari. Syntax yang bisa digunakan yaitu:

SELECT field1, field2,…..
FROM nama_table
WHERE nm_field
LIKE '%string%’

Keterangan:
  • SELECT berisi field yang akan ditampilkan dari sebuah atau beberapa tabel
  • FROM disini berisi tabel sumber yang akan digunakan 
  • WHERE berisi kondisi, dimana akan digunakan sebagai data yang akan dicocokan dengan string yang ada pada kata kunci LIKE
  • pada baris terakhir, yaitu LIKE berisi kata kunci yang akan dicocokan dengan pencarian.
bingung ya? :D oke2, yu' liat contoh penggunaannya berikut:
Misalnya gw punya basis data "Recruitment" dan tabel "College" dengan instance sebagai berikut:
dari tabel tersebut gw mau nyari data College dimana cState nya memiliki kata tengah "For". itu artinya kata diawal dan diakhir kata "for" bisa sembarang karakter dan dengan panjang tak ditentukan. untuk retrieve data tersebut, dapat menggunakan query berikut:

use recruitment
SELECT * from college WHERE (cState LIKE '%for%')

pada saat query diatas diexecute di SQL Server, maka akan menghasilkan dataset berikut:
Penggunaan symbol "%" disini mengasumsikan sembarang karakter yang akan dicari baik yang ada diawal maupun diakhir. klo misalkan nyari string yg sudah diketahui jumlah karakternya tapi ga tau karakter yg mengisinya apa bisa ga?oh tentu bisa :D jika jumlah string sudah diketahui panjangnya bisa menggunakan simbol under score "_". 
Contoh:
cari kota yang jumlah karakter dalam nama kota tersebut adalah 5 karakter dan dua huruf pertamanya adalah "Te". nah, untuk kasus ini pada kata kunci LIKE, masukan: 'te___'
setelah karakter "te" diikuti dengan under score sebanyak 3 buah.

Menggunakan Keyword TOP

apa fungsi dari keyword TOP? fungsinya adalah untuk menampilkan data teratas dari sebuah tabel. penggunaan keyword TOP biasanya diikuti dengan jumlah record yang akan ditampilkan. Syntaxnya adalah sebagai berikut:
SELECT TOP (n) column_name [,column_name]
FROM table_name

n yang berada dalam keyword TOP diisi dengan jumlah record teratas yang akan ditampilkan.
Contoh:
tampilkan 5 record teratas dari tabel College.
untuk retrieve data tersebut dapat dilakukan dengan menggunakan query berikut:
use recruitment
SELECT TOP(5) * From College

pada saat query diatas diexecute, maka akan menghasilkan dataset dengan 5 record teratas dari tabel College.

Menggunakan Keyword ORDER BY

ORDER BY digunakan untuk menampilkan data tersusun secara urut. Pengurutan dapat dilakukan berdasarkan data terkecil ke besar atau sebaliknya. Syntax dari penggunaan clausa ORDER by ini adalah sebagai berikut:
SELECT select_list
FROM table_name
[ORDER BY column_name | select_list_number | expression [ASC|DESC]

Keterangan:
  • pada Pernyataan SELECT berisi field yang akan ditampikan
  • pernyataan FROM berisi tabel yang akan digunakan
  • pernyataan ORDER BY berisi kriteria pengurutan, bisa berisi field/kolom, kemudian diikuti dengan metode pengurutannya
Misalnya qta mau mengurutkan data lagi2 dari tabel college diatas diurutkan berdasarkan cCollegeName nya. maka bisa dilakukan dengan menggunakan query berikut ini:

use recruitment
SELECT * FROM College
ORDER BY cCollegeName ASC

query diatas pada saat di execute akan menghasilkan dataset terurut berdasarkan cCollegeName nya.

Menggunakan Keyword DISTINCT

DISTINCT digunakan apabila ingin menghilangkan duplikasi baris dari hasil set. misalkan pada field cState tabel College diatas kan terdapat nama kota yang sama ya, klo mau ditampilkan namun hanya satu nama kota dari setiap kota, alias tidak ada nama kota yang sama berulang ditampilkan, maka tambahkan keyword DISTINCT pada pernyataan SELECT nya.
contoh:

use recruitment
SELECT DISTINCT cState FROM College

Query diatas apabila dieksekusi akan menghasilkan nama kota tanpa duplikasi seperti berikut ini:






Menggunakan Fungsi Aggregate

Fungsi aggregate sering digunakan untuk operasi perhitungan dari sebuah grup data.  Fungsi-fungsi aggregate yang sering digunakan dalam query adalah :
  • AVG: Berfungsi untuk mencari nilai rata-rata.
  • SUM: Berfungsi untuk mencari jumlahdari suatu field.
  • MAX: Berfungsi untuk mencari nilai maximum.
  • MIN: Berfungsi untuk mencari nilai minimum.
  • COUNT: Berfungsi untuk mencari jumlah data/total record.

untuk menggunakan fungsi anggegate diatas, gw punya contoh tabel "OrderDetail" pada basis data "GlobalToyz" dengan instance sebagai berikut:
 
Nah dari tabel diatas, untuk mendapatkan Harga Rata-Rata adalah dengan query berikut ini:
use GlobalToyz

SELECT AVG (mToyCost) AS 'Biaya Rata-Rata'
FROM OrderDetail

hasil execute query diatas adalah:
BiayaRata-Rata
36.2173

kalo mw nyari total dari biaya gimana? pake fungsi aggregate yaitu SUM dengan cara sebagai berikut:
use GlobalToyz

SELECT SUM (mToyCost) AS 'Total Biaya'
FROM OrderDetail

hasil execute query diatas adalah:
Total Biaya
543.26

Klo buat nyari nilai minimal,nilai maximal dan jumlah data dari tabel diatas bisa dengan query berikut:
use GlobalToyz

SELECT COUNT(mToyCost) AS 'Jml Data', MIN(mToyCost) AS 'Minimal Cost', MAX(mToyCost) AS 'Maximal Cost'
FROM OrderDetail

hasil execute query diatas adalah:
Jml Data Minimal Cost Maximal Cost
15 12.99 86.50

Sampe sini ada pertanyaan?heheheh...oke untuk sesi ini sekian apa yang bisa gw share. mudah2an bermanfaat dan nambah pengetahuan bagi yang belum tau :D

0 Comment:

Posting Komentar