Tutorial SQL ( Structured Query Language ) part 2


Cari yang mirip dengan LIKE

Apabila WHERE memfilter data berdasarkan kriteria tertentu yang sudah pasti, maka LIKE digunakan untuk memberikan kriteria yang tidak memiliki kepastian. 
Misalkan anda ingin mencari nama produk yang dimulai dengan huruf c maka digunakan perintah berikut :

SELECT ProductID, ProductName
from Products
WHERE ProductName LIKE 'c%'


Perhatikan tanda % setelah huruf c tersebut, yang dapat diartikan sebagai : semua yang dimulai dengan c. 
Keluaran perintah tersebut adalah :
ProductID   ProductName                              
----------- ------------------------- 
60          Camembert Pierrot
18          Carnarvon Tigers
1           Chai
2           Chang
39          Chartreuse verte
4           Chef Anton's Cajun Seasoning
5           Chef Anton's Gumbo Mix
48          Chocolade
38          Côte de Blaye
(9 row(s) affected)

Contoh lain adalah bila diinginkan mencari nama produk yang mengandung huruf v maka digunakan perintah berikut :

select ProductID, ProductName
from dbo.Products
WHERE ProductName LIKE '%v%' 



Perhatikan bahwa tanda % diletakkan sebelum dan sesudah huruf v, yang berarti dicari segala sesuatu yang mengandung huruf v tersebut. Tanda % tersebut biasa dikenal sebagai wildcard, yang berfungsi menentukan berbagai kriteria dalam operator LIKE. Daftar selengkapnya mengenai wildcard yang dapat digunakan di SQL Server dapat Anda baca di Books Online SQL Server.


Melakukan Perhitungan

Selain mengambil data dari database anda dapat juga melakukan berbagai perhitungan terhadap data tersebut.
Berbagai fungsi yang dapat dilakukan adalah penjumlahan, perkalian, pembagian dan pengurangan. Simbol-
simbol yang digunakan adalah sebagai berikut :
•  * Perkalian
•  / Pembagian
•  + Penjumlahan
•  - Pengurangan

Contoh berikut menghitung harga setiap produk yang terjual dengan mengalikan Quantity dan UnitPrice.

SELECT ProductID, (UnitPrice * Quantity) as TotalHarga
FROM [Order Details]


Misalkan tiap produk dikenakan diskon sebesar 10% dan ingin menampilkan harga setelah diskon, maka perintahnya adalah sebagai berikut :

SELECT ProductID, (UnitPrice * Quantity) as TotalHarga,
(UnitPrice * Quantity) * 0.1 as Diskon,
(UnitPrice * Quantity) * (1 - 0.1) as HargaDiskon
FROM [Order Details]


Diskon 10% adalah sama dengan 0.1, sehingga angka tersebut digunakan dalam kode program. 
Hasil perhitungan selengkapnya adalah :
ProductID   TotalHarga     Diskon       HargaDiskon               
----------- --------------------- ----------------------- 
11          168.0000      16.80000      151.20000
42          98.0000       9.80000       88.20000
72          174.0000      17.40000      156.60000
14          167.4000      16.74000      150.66000
51          1696.0000     169.60000     1526.40000
41          77.0000       7.70000       69.30000
51          1484.0000     148.40000     1335.60000
 

Membuat Alias Dengan AS

 Dalam contoh perhitungan dengan SQL diatas banyak digunakan keyword AS unatuk memberikan nama kolom. Fungsi AS tersebut adalah memberikan alias terhadap hasil perhitungan sehingga lebih mudah dibaca. 
Apabila suatu perhitungan tidak disertakan alias menggunakan AS maka kolom hasil perhitungan tersebut menjadi tidak dikenal. Perhatikan contoh berikut :

SELECT ProductID, (UnitPrice * Quantity) 
FROM [Order Details]


Maka kolom hasil perkalian tidak memiliki nama sebagaimana hasil berikut :
ProductID                         
----------- ---------- 
11          168.0000
42          98.0000
72          174.0000
14          167.4000
51          1696.0000
41          77.0000

Mengitung Group Data Dengan Fungsi Agregat

Selain mengambil data dengan kriteria tertentu, sering juga diperlukan berbagai perhitungan yang bersifat ringkasan. Fungsi agregat merupakan sekumpulan fungsi yang siap dipakai untuk mendapatkan hasil penjumlahan, penghitungan frekuansi, rata-rata, dan lain-lain. Penggunaan fungsi ini sering digabungkan dengan klausa GROUP BY yang akan diterangkan kemudian.

Fungsi SUM

Apabila anda ingin mendapatkan jumlah dari sekelompok data yang memiliki kriteria tertentu maka SUM adalah pilihan yang tepat. Fungsi ini menjumlahkan nilai kolom tertentu yang telah dikelompokkan menurut kriteria tertentu.
Misalnya anda ingin menghitung jumlah jumlah barang yang terjual untuk kategori produk tertentu yang terdapat di tabel Order Details pada database NorthWind.

USE NorthWind
SELECT SUM(Quantity) as QTY from [Order Details] 
WHERE ProductID = 11 


Maka dihasilkan output sebagai berikut :
QTY         
----------- 
706
(1 row(s) affected)

Perintah tersebut diawali dengan USE Northwind yang artinya anda menggunakan database NorthWind.
Misalnya anda ingin menggunakan database lain bernama Pubs maka diketikkan perintah USE Pubs. Perintah ini merupakan alternatif pemilihan database dengan cara manual dari menu combo di Query Analyser. Selanjutnya diambil data kolom Quantity yang telah dimasukkan sebagai argumen fungsi SUM, sehingga output yang diharapkan adalah total Quantity produk yang memiliki ProductID = 11. Pengunaan kriteria ProductID merupakan suatu keharusan karena fungsi SUM akan menjumlahkan data yang memiliki kriteria tertentu. Kriteria tersebut dalam contoh diatas adalah ProductID = 11.
Fungsi SUM hanya dapat digunakan untuk menjumlahkan kolom dengan type data Numeric.

Fungsi COUNT

Untuk menghitung frekuensi pemunculan suatu data digunakan fungsi COUNT. Sebagaimana fungsi SUM, maka COUNT hanya dapat digunakan apabila data tersebut telah ditentukan kriterianya dengan klausa WHERE.
Misalkan anda ingin menghitung jumlah Customer yang terdapat di negara France. Tabel yang digunakan adalah tabel Customers.

SELECT COUNT (CustomerID) as Jumlah from Customers
WHERE Country = 'France'  


Fungsi AVG

Fungsi ini hanya dapat digunakan untuk tipe data numeric, sebagaimana fungsi SUM. AVG menghitung rata-rata sekumpulan data yang telah ditentukan kriterianya menggunakan WHERE.

USE NorthWind
SELECT AVG(Quantity) as Rataan from [Order Details] 
WHERE ProductID = 11


Contoh diatas menghitung rata-rata jumlah produk yang terjual untuk barang dengan ProductID = 11. Apabila diinginkan menghitung rata-rata seluruh jumlah peroduk terjual maka perintahnya menjadi :

SELECT AVG(Quantity) as Rataan from [Order Details] 



Funsi MIN dan MAX

Untuk mencari nilai maksimum dan minimum dari sekumpulan data anda dapat menggunakan fungsi MIN dan MAX. Misalkan anda ingin mencari jumlah barang yang paling banyak terjual maka dijalankan perintah berikut :

SELECT MAX(Quantity) as Maksimum from [Order Details] 

Menggunakan Beberapa Funsi Sekaligus

Fungsi-fungsi yang telah dijelaskan diatas juga dapat digunakan bersama-sama dalam satu perintah.
Perhatikan baris kode berikut :

USE NorthWind
SELECT MAX(Quantity) as Maksimum, 
MIN(Quantity) as Minimum, 
AVG(Quantity) as Rataan 
from [Order Details]


Jalankan perintah tersebut maka didapat hasil sebagai berikut :
Maksimum Minimum Rataan      
-------- ------- ----------- 
130      1       23
(1 row(s) affected)

Klausa Group By

Fungsi agregat yang telah dijelaskan sebelumnya hanya menampilkan satu baris hasil. Sering dibutuhkan untuk menampilkan rangkuman hasil perhitungan beberapa kelompok data dalam satu kali tampilan.
Misalnya anda ingin menghitung rata-rata dan jumlah produk yang terjual untuk setiap jenis produk. Untuk melakukan ini digunakan klausa GROUP BY yang berfungsi mengelompokkan data yang memiliki kriteria sama. Dengan demikian dapat dihasilkan suatu rangkuman hasil perhitungan untuk tiap kategori data. Tuliskan kode program berikut :

SELECT ProductID, SUM(Quantity)as Jumlah
from [Order Details] 
GROUP BY ProductID


Perintah tersebut akan menghitung jumlah produk yang terjual untuk setiap ProductID dan mengelompokkan hasilnya berdasarkan ProductID tersebut. Hasil yang didapat sebagai berikut :
ProductID   Jumlah      
----------- ----------- 
23          580
46          548
69          714
77          791
31          1397
15          122
62  1083

Terlihat jelas bahwa SQL Server telah mengelompokkan barang berdasarkan ProductID dan menghitung jumlah di kolom (QTY) untuk tiap ProductID tersebut. 
Hal yang perlu mendapatkan perhatian adalah pada baris terakhir kode program tersebut yaitu pada bagian :

GROUP BY ProductID 

 Bagian ini berfungsi mengelompokkan barang berdasarkan ProductID nya. Sedangkan kolom ProductID sendiri telah disebutkan di dalam daftar SELECT. Ini merupakan aturan dasar apabila anda menggunakan GROUP BY dalam perhitungan dengan fungsi agregat. Kolom dalam daftar SELECT yang tidak dihitung dengan fungsi agregat harus dimasukkan dalam daftar GROUP BY. Pada contoh diatas kolom ProductID masuk dalam daftar SELCT tetapi tidak dihitung menggunakan fungsi SUM, sehingga harus dimasukkan dalam daftar GROUP BY.
Salah satu contoh pengembangan yang lebih kompleks dari perintah penggunaan GROUP BY ini adalah sebagai berikut :

SELECT ProductID, SUM(Quantity)as Jumlah, 
 AVG(Quantity) as Rataan, 
 SUM(Quantity*UnitPrice)as Nilai,
 AVG(Quantity*UnitPrice)as AVGNilai
from [Order Details] 
GROUP BY ProductID
ORDER BY Nilai DESC


Kode tersebut menghitung jumlah, rata-rata, serta nilai uang tiap kategori produk. Nilai uang dari tiap produk didapat dengan mengalikan Quantity dengan UnitPrice. Selanjutnya data diurutkan berdasarkan nilai uangnya dari yang terbesar hingga terkecil. Hasilnya adalah sebagai berikut :
ProductID   Jumlah   Rataan    Nilai        AVGNilai              
----------- ----------- ----------- -------------------
38          623         25    149984.2000     6249.3416
29          746         23    87736.4000      2741.7625
59          1496        27    76296.0000      1412.8888
60          1577        30    50286.0000      986.0000
62          1083        22    49827.9000      1038.0812
56          1263        25    45121.2000      902.4240
51          886         22    44742.6000      1147.2461
17          978         26    35482.2000      958.9783
18          539         19    31987.5000      1184.7222
28          640         19    26865.6000      814.1090

Perhatikan baik-baik bahwa perintah ORDER BY harus selalu diletakkan setelah GROUP BY.
 

Comments

Popular posts from this blog

INSTALL SQL SERVER 2000 SP4 WINDOWS 10 SIMDA BMD KAB.TANGERANG

SISTEM INFORMASI KEPEGAWAIAN (SIMPEG) DENGAN CODEIGNITER 3

SISTEM INFORMASI DAFTAR USULAN PENETAPAN ANGKA KREDIT ( DUPAK ) KAB.TANGERANG BANTEN DENGAN PHPMYSQL

SISTEM IMFORMASI INSIDEN DAN PELAYANAN KESEHATAN KAB.TANGERANG BANTEN

SISTEM INFORMASI PUSKESMAS PHP PDO MYSQL

Aplikasi Banjir Dinas Kesehatan Kab. Tangerang Dengan AJAX dan PHPMYSQL

Install Laravel 5.4 di Windows 10 dengan Composer dan GIT

Konsep Jaringan Komputer

Tutorial SQL ( Structured Query Language ) part 4