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%'
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%'
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'
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'
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
Untuk mencari seseorang yang nama tengahnya terdiri dari huruf “ero”. Maka, statement yang dapat digunakan adalah : |
SELECT * FROM mahasiswa
WHERE Nama LIKE '%ero%'
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%'
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) <2000
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:
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
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
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.
Maka, kita harus menggunakan pernyataan GROUP BY untuk kelompok pelanggan.
Bentuk umumnya adalah :
SELECT Pelanggan, SUM (Harga pesanan) FROM Pesanan
GROUP BY Pelanggan
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 |
Jika Kita mau Menghapus Recort gimana ba..contoh baris ke 6 ampe ke 7 mau kita buang gimana tuh
BalasHapusRecord maksudnya yaa ?
BalasHapusDELETE 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..
materi group by, nanti view nya kayak gimana ya?? kalo view id kan, ->id, kalo hasil sum nya gimana ya??
BalasHapusView apanya nih maksudnya? klo hasil SUM sudah ada contohnya diatas :)
BalasHapusSingkat tapi sangat bermanfaat.. good job
BalasHapusthank's :)
BalasHapusgk ada group by yang menggunakan like?
BalasHapusgroup 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.
BalasHapussaya punya tabel "test" dengan field (id,nama,harga,qty)
BalasHapusdengan 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,,,
kartu perdana , 4, 11000 dapet dari
BalasHapus---> harga(3000) * qty(2) = 6000
---> harga(2500) * qty(2) = 5000
---------------------------------- +
kartu perdana , 4, 11000
dicoba ya rendhi
BalasHapusSELECT nama,(banyak*qty) as total
FROM nama_tabelnya
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.
BalasHapusmaaf ni di copy buat belajar soalna ni, gpp ya
BalasHapusSaya punya 4 Tabel
BalasHapusanggota (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