Penggunaan LIKE, HAVING dan GROUP BY pada SQL

1.LIKE dan %
Pengertian : Untuk membandingkan data dengan pola atau struktur tertentu untuk satu karakter yang dipakai dan string (%)
X%
Contoh 1 :
Tabel Persons :
No
Nama belakang
Nama depan
Alamat
Kota
1
Hanizar
Ratih
Duren 8
Sandias
2
Hafizuddin
Teguh
Manggis 5
Sandias
3
Cantika
Tya
Salak 4
Sensoria
Jika kita ingin memilih seseorang yang tinggal di sebuat kota yang berawalan “s”, maka kita akan menggunakan statement SELECT  sebagai berikut :
SELECT * FROM Persons
WHERE Kota LIKE 's%'
% dapat juga dapat digunakan untuk mencari sebuah kata yang diawali atau diakhiri huruf yang kita cari.

Maka, hasilnya adalah :
No
Nama belakang
Nama depan
Alamat
Kota
1
Hanizar
Ratih
Duren 8
Sandias
2
Hafizuddin
Teguh
Manggis 5
Sandias
3
Cantika
Tya
Salak 4
Sensoria

Contoh 2 :
Tabel Mahasiswa
NPM
Nama
Nilai
1234
Zigaz
70
5678
Zeroz
89
9101
Sansas
68
Jika kita ingin memilih seseorang yang memiliki awalan nama dari “Z” maka, dapat menggunakan statement :
SELECT * FROM Mahasiswa
WHERE Nama LIKE 'Z%'
Maka hasilnya adalah sebagai berikut :
NPM
Nama
Nilai
1234
Zigaz
70
5678
Zeroz
89


Contoh 3
Tabel Pembayaran
No
Nama
Alamat
Dibayar
1
Annisa
Pondok Gede
Tunai
2
Meili
Wisma Jaya
Tunai
3
Rindi
BTP
Kredit
Apabila kita ingin mencari seseorang yang pembayarannya secara Tunai maka kita dapat menggunakan statement :
SELECT * FROM Pembayaran
WHERE Dibayar LIKE 'T%'
Maka, hasilnya adalah sebagai berikut :
No
Nama
Alamat
Dibayar
1
Annisa
Pondok Gede
Tunai
2
Meili
Wisma Jaya
Tunai
%X
Contoh 1 :
Tabel Persons :
No
Nama belakang
Nama depan
Alamat
Kota
1
Hanizar
Ratih
Duren 8
Sandias
2
Hafizuddin
Teguh
Manggis 5
Sandias
3
Cantika
Tya
Salak 4
Sensoria
Selanjutnya, kita akan mencari orang yang tinggal disebuah kota yang diakhiri dengan huruf “s”. Kita menggunakan statement SELECT sebagai berikut :
SELECT * FROM Persons
WHERE Kota LIKE '%s'
Maka hasilnya adalah :
No
Nama belakang
Nama depan
Alamat
Kota
1
Hanizar
Ratih
Duren 8
Sandias
2
Hafizuddin
Teguh
Manggis 5
Sandias
Contoh 2 :
Tabel Mahasiswa
NPM
Nama
Nilai
1234
Zigaz
70
5678
Zeroz
89
9101
Sansas
68
Jika kita ingin mencari seseorang yang memiliki nama berakhiran “Z”, maka Statement yang digunakan adalah :
SELECT * FROM Mahasiswa
WHERE Nama LIKE '%Z'
Maka hasilnya adalah sebagai berikut :
NPM
Nama
Nilai
1234
Zigaz
70
5678
Zeroz
89

Contoh 3
Tabel Pembayaran
No
Nama
Alamat
Dibayar
1
Annisa
Pondok Gede
Tunai
2
Meili
Wisma Jaya
Tunai
3
Rindi
BTP
Kredit
Jika kita ingin mencari seseorang yang pembayarannya berakhiran huruf “i”. Maka, statement yang digunakan adalah :
SELECT * FROM Pembayaran
WHERE Dibayar LIKE '%i'
Maka, hasilnya adalah sebagai berikut :
No
Nama
Alamat
Dibayar
1
Annisa
Pondok Gede
Tunai
2
Meili
Wisma Jaya
Tunai

%X%
Contoh 1 :
Tabel Persons :
No
Nama belakang
Nama depan
Alamat
Kota
1
Hanizar
Ratih
Duren 8
Sandias
2
Hafizuddin
Teguh
Manggis 5
Sandias
3
Cantika
Tya
Salak 4
Sensoria
Kita dapat mencari seseorang yang tinggal disebuah kota yang memiliki 3 huruf tengah "nso" dari tabel “person”. Yaitu sebagai berikut :
SELECT * FROM Persons
WHERE Kota LIKE '%nso%'
Maka, hasilnya adalah sebagai berikut :
No
Nama Belakang
Nama depan
Alamat
Kota
3
Cantika
Tya
Salak 4
Sensoria
Kita juga dapat mencari seseorang yang tinggal disebuah kota yang BUKAN dari huruf tengahnya "nso" dari tabel "Persons". Caranya yaitu tinggal tambahkan NOT pada like seperti ini :
SELECT * FROM Persons
WHERE Kota NOT LIKE '%nso%'
Contoh 2 :
Tabel Mahasiswa
NPM
Nama
Nilai
1234
Zigaz
70
5678
Zeroz
89
9101
Sansas
68

Untuk mencari seseorang yang nama tengahnya terdiri dari huruf “ero”. Maka, statement yang dapat digunakan adalah :
SELECT * FROM mahasiswa
WHERE Nama LIKE '%ero%'
Maka, hasilnya yaitu sebagai berikut :
NPM
Nama
Nilai
5678
Zeroz
89


Contoh 3 :
Tabel Pembayaran
No
Nama
Alamat
Dibayar
1
Annisa
Pondok Gede
Tunai
2
Meili
Wisma Jaya
Tunai
3
Rindi
BTP
Kredit
Jika kita ingin mencari seseorang yang nama tengahnya terdiri dari  huruf “eil”. Maka, statement yang digunakan adalah :
SELECT * FROM Pembayaran
WHERE Nama LIKE '%eil%'

Maka, hasilnya adalah sebagai berikut :
No
Nama
Alamat
Dibayar
2
Meili
Wisma Jaya
Tunai

Statement Having

Statement  HAVING telah ditambahkan ke SQL karena keyword WHERE tidak dapat digunakan dengan fungsi agregat.

Bentuk umum HAVING:
SELECT nama_kolom, aggregate_function (nama_kolom)
DARI nama_tabel
WHERE nama_kolom operator nilai
GROUP BY nama_kolom
HAVING aggregate_function (nama_kolom) Nilai operator

Contoh penggunaan HAVING dalam SQL

Contoh 1 :

Kita akan menggunakan tabel “pesanan”
No
Tanggal Order
Harga Order
Pelanggan
1
2011/11/12
1000
Ratih
2
2011/10/23
1600
Anita
3
2011/09/02
700
Ratih
4
2011/09/03
300
Ratih
5
2011/08/30
2000
Teguh
6
2011/10/04
100
Anita

Sekarang jika kita ingin mencari pelanggan yang memiliki total order kurang dari 2000.
Maka, kita dapat menggunakan statement :

SELECT Pelanggan, SUM (HargaOrder) FROM Pesanan
GROUP BY Pelanggan
HAVING SUM (HargaOrder) <2000Simak
Baca secara fonetik
Maka, hasilnya :
Pelanggan
SUM(HargaOrder)
Anita
1700

Contoh 2 :
Dan jika kita ingin menemukan apakah pelanggan "Ratih" atau "Teguh" memiliki total order lebih dari 1500.
Kita dapat menambahkan WHERE contohnya yaitu sebagai berikut:

SELECT Pelanggan, SUM (HargaOrder) FROM Pesanan
WHERE Pelanggan 'Hansen' = OR Pelanggan ‘Jensen '=
GROUP BY Pelanggan
HAVING SUM (HargaOrder)> 1500
Simak
Baca secara fonetik

Maka, hasilnya:
Pelanggan
SUM(HargaOrder)
Ratih
2000
Teguh
2000

Contoh 3
Tabel Pekerjaan
Nama
Jam Bekerja
Roni
12
Dewi
10
Roni
8
Dewi
15

SELECT Nama, SUM (Jam_bekerja)
FROM NamaJam_Bekerja
GROUP BY Nama
HAVING SUM (Jam_Bekerja) > 21

Maka, Hasilnya adalah :

Nama
Jam Bekerja
Roni
27


Contoh 4

SELECT Nama, MIN (Jam_Bekerja)
FROM NamaJam_Bekerja
GROUP BY Nama
HAVING MIN (Jam_Bekerja) > 5

Maka, hasilnya adalah :
                                                                                                           
Nama
Jam Bekerja
Roni
8

Contoh 5

SELECT Nama, MAX (Jam_Bekerja)
FROM NamaJam_Bekerja
GROUP BY Nama
HAVING MAX (Jam_Bekerja) > 12

Maka, hasilnya adalah :
                                                                                                           
Nama
Jam Bekerja
Dewi
15

Statement GROUP BY

Statement GROUP BY digunakan bersama dengan fungsi agregat ke grup hasil-set oleh satu atau beberapa kolom.

Bentuk umum GROUP BY:
SELECT nama_kolom, aggregate_function (nama_kolom)
DARI nama_tabel
WHERE nama_kolom operator nilai
GROUP BY nama_kolom


Contoh GROUP BY SQL

Contoh 1

Tabel Pesanan
No
Tanngal pesanan
Harga Pesanan
Pelanggan
1
2011/11/12
1000
Hanizar
2
2011/10/23
1600
Nilam
3
2011/09/02
700
Hanizar
4
2011/09/03
300
Hanizar
5
2011/08/30
2000
Jeni
6
2011/10/04
100
Nilam

Jika kita ingin mencari jumlah total pesanan dari setiap pelanggan.
Maka, kita harus menggunakan pernyataan GROUP BY untuk kelompok pelanggan.

Bentuk umumnya adalah :
SELECT Pelanggan, SUM (Harga pesanan) FROM Pesanan
GROUP BY Pelanggan
Simak
Baca secara fonetik
Maka, hasilnya adalah sebagai berikut :

Pelanggan
SUM(HargaPesanan)
Hanizar
2000
Nilam
1700
Jeni
2000


Contoh 2
Tabel Pekerjaan
Nama
Jam kerja
Raisya
12
Doni
10
Raisya
8
Doni
15

SELECT Nama, DESC (Jam_Kerja)
FROM NamaJam_Kerja
GROUP BY Nama

Maka, Hasilnya adalah :
                                   
Nama
Jam Kerja
Doni
15
Raisya
12
Doni
10
Raisya
8

Contoh 3


 SELECT Nama, MIN (Jam_Kerja)
FROM NamaJam_Kerja
GROUP BY Nama

                                    Output:
Nama
Jam Kerja
Raisya
8


Contoh 4

SELECT Nama, MAX (Jam_Kerja)
FROM NamaJam_Kerja
GROUP BY Nama


                                    Output:
Nama
Jam Kerja
Doni
15

14 komentar:

  1. Jika Kita mau Menghapus Recort gimana ba..contoh baris ke 6 ampe ke 7 mau kita buang gimana tuh

    BalasHapus
  2. Record maksudnya yaa ?
    DELETE FROM (nama Tabel)
    WHERE (nama judul kolom)='(isinya)' AND (nama judul kolom2 = '(isinya)'

    saya kasih contoh yaa..
    contoh dari tabel yang saya buat paling atas

    DELELE FROM persons
    WHERE nama_depan=Ratih AND nama_belakang=hanizar

    tapi untuk ketik judul kolom jangan pakai spasi yaa..kalo emang di tabelnya pake spasi, meding edit dulu judul kolomnya dari tabel. supaya bisa terbaca nanti.. :)

    nah tinggal di masukan aja deh nama judul kolom di kolom 6 sama 7 itu apa..

    BalasHapus
  3. materi group by, nanti view nya kayak gimana ya?? kalo view id kan, ->id, kalo hasil sum nya gimana ya??

    BalasHapus
  4. View apanya nih maksudnya? klo hasil SUM sudah ada contohnya diatas :)

    BalasHapus
  5. Singkat tapi sangat bermanfaat.. good job

    BalasHapus
  6. gk ada group by yang menggunakan like?

    BalasHapus
  7. group by dengan menggunakan like saya belum pernah mencobanya. tetapi dilihat dari bentuk umum group by sepertinya tidak ada. karena group by digunakan untuk mencari data dalam kelompok/group.

    BalasHapus
  8. saya punya tabel "test" dengan field (id,nama,harga,qty)
    dengan isi
    01,kartu perdana ,3000 ,2
    02,kartu perdana ,2500 ,2
    03,as ,4000 ,5
    04,headset ,15000 ,1

    pengen hasil dengan field (nama, banyak,total)
    dengan isi
    kartu perdana , 4 ,11000
    as , 5 ,20000
    headset , 1 ,15000

    statement nya gmana yah?
    help me plis,,,

    BalasHapus
  9. kartu perdana , 4, 11000 dapet dari
    ---> harga(3000) * qty(2) = 6000
    ---> harga(2500) * qty(2) = 5000
    ---------------------------------- +
    kartu perdana , 4, 11000

    BalasHapus
  10. dicoba ya rendhi
    SELECT nama,(banyak*qty) as total
    FROM nama_tabelnya

    BalasHapus
  11. kalau saya mau keluarkan data yang berulang-ulang dalam database untuk dipaparkan di website tetapi data tersebut cuma boleh keluar 1 shj utk setiap jenis dan sy mau kira berapa kali data itu berulang dalam database. macamana ya? contohnya table pembeli. ada column nama_pembeli dan item.tidak kisahlah item apa saja.data dalam column nama_pembeli oleh berulang-ulang.maksudnya pembeli itu boleh membeli di kedai itu seberapa kali mungkin yang dia mau. apa yang saya mau keluarkan adalah data nama_pembeli dan kekerapan pembeli tersebut ke kedai itu.tolong saya sis.

    BalasHapus
  12. maaf ni di copy buat belajar soalna ni, gpp ya

    BalasHapus
  13. Saya punya 4 Tabel
    anggota (kode_anggota,nama_anggota)
    wajib(kode_anggota,masuk,keluar)
    manasuka(kode_anggota,masuk,keluar)
    pokok(kode_anggota,masuk,keluar)
    Bagaimana caranya kalau saya ingin menampilkan data dengan urutan :
    (kode_anggota,nama_anggota, sum(wajib.masuk - wajib.keluar), sum(manasuka.masuk - manasuka.keluar), sum(pokok.masuk - pokok.keluar), jumlah (sum(wajib.masuk - wajib.keluar) + sum(manasuka.masuk - manasuka.keluar) +sum(pokok.masuk - pokok.keluar). Terima kasih

    BalasHapus

Beautiful in white

Google Translator

English French German Spain Italian Dutch Russian Japanese Korean Arabic Chinese Simplified
Related Posts Plugin for WordPress, Blogger...

Followers

Web Informer Button