Anda di halaman 1dari 7

1/9/22, 12:24 AM Contoh Query Database SQL Tingkat Lanjut atau Expert - Dewan Komputer

Saturday, January 8, 2022 Home | Kebijakan Privasi | Kontak | Tentang

Dewan Komputer
Blog berisi tentang tips dan trik komputer serta berbagai macam tutorial pemrograman

Home / 2019 / January / 5 / Contoh Query Database SQL Tingkat Lanjut atau Expert 

DATABASE

Contoh Query Database SQL Tingkat Lanjut atau Expert


January 5, 2019 / dewan / 7 Comments

Contoh Query Database SQL Tingkat Lanjut atau Expert – Hai sobat dewan komputer ketemulagi dengan saya dan pada kesempatan kali ini
saya ingin memposting tentang contoh query database tingkat lanjut atau expert. Query ini sudah saya coba pada database MySQL dan
dimana-mana juga sebagian besar query work pada database lainnya seperti SQL Server, Oracle, dll. Query database berfungsi untuk manulis
sebuah perintah pada database. Pada contoh-contoh kali ini bukanlah query dasar yang biasa digunakan melainkan query yang sudah sulit
atau penggabungan dari query-query tersebut oleh karena itu bisa saya sebut tingkat expert.

Langsung saja saya contohkan querynya dibawah ini :

1. PERINTAH SELECT :
   a. IN

https://dewankomputer.com/2019/01/05/contoh-query-database-sql-tingkat-lanjut-atau-expert/ 1/7
1/9/22, 12:24 AM Contoh Query Database SQL Tingkat Lanjut atau Expert - Dewan Komputer

 Contoh:

– SELECT * FROM tbl_mahasiswa WHERE kode_prodi IN (’si, ‘ti’);

Perintah SQL di atas sama dengan:

– SELECT * FROM tbl_mahasiswa WHERE kode_prodi = ‘si’ OR kode_cabang = ‘ti’;

[Tidak ada batas banyaknya nilai yang bisa ada di dalam IN (…)]

Query ini berfungsi jika sobat ingin memfilter suatu data namun data yang difilter lebih dari satu. Query ini bisa mempersingkat query sobat
dibandingkan sobat menggunakan OR. Pada contoh diatas berarti perintahnya menampilkan data yang ada pada tabel mahasiswa yang
mempunyai kode_prodi ‘si‘ dan ‘ti’.

   b. NOT IN

 Contoh:

– SELECT * FROM tbl_mahasiswa WHERE kode_prodi NOT IN (’si’, ‘ti’);

Perintah SQL di atas sama dengan:

– SELECT * FROM tbl_mahasiswa WHERE kode_prodi <> ‘si’ AND kode_cabang <> ‘ti’;

Query ini kebalikan dari IN. Query ini juga sangat berguna untuk mempersingkat query pada aplikasi yang sobat buat. Nilai NULL tidak akan
tampil dalam IN dan NOT IN. Perhatikan perbedaan penggunaan OR dan AND dalam IN dan NOT IN. Pada contoh diatas artinya menampilkan
data yang ada pada tabel mahasiswa yang mempunyai nilai kode_prodi selain ‘si‘ dan ‘ti’

2. PERINTAH BETWEEN

   a. BETWEEN

 Contoh:

– SELECT * FROM tbl_rekening WHERE saldo BETWEEN 500000 AND 1000000;

Perintah SQL di atas sama dengan:

– SELECT * FROM tbl_rekening WHERE saldo >= 500000 AND saldo <= 1000000;

Nilai yang pertama dalam BETWEEN harus lebih kecil dari nilai yang kedua. Pada contoh diatas artinya menampilkan data yang ada pada
tabel rekening dan mempunyai nilai saldo antara 500000  dan 1000000.

   b. NOT BETWEEN

 Contoh:

– SELECT * FROM tbl_rekening WHERE saldo NOT BETWEEN 500000 AND 1000000;

Perintah SQL di atas sama dengan:

– SELECT * FROM tbl_rekening WHERE saldo < 500000 OR saldo > 1000000;

Fungsi NOT BETWEEN merupakan kebalikan dari fungsi BETWEEN. Perhatikan perbedaan penggunaan AND dan OR dalam BETWEEN dan
NOT BETWEEN. Pada query diatas artinya menampilkan semua data yang ada pada tabel rekening yang mempunyai nilai saldo selain 500000
–1000000 atau dengan kata lain di bawah 500000 dan diatas 1000000.

3. FUNGSI AGGREGATE

Query dengan fungsi Aggredat antara lain MIN ( ), MAX ( ), COUNT( ), SUM ( ), AVG ( ).

a) MIN ( )

 Contoh:

SELECT MIN(saldo) FROM tbl_rekening;

Bisa dibatasi dengan WHERE clause sehingga hanya record(-record) tertentu yang ditelusuri:

SELECT MIN(saldo) FROM tbl_rekening WHERE kode_cabang = ‘clp’;

https://dewankomputer.com/2019/01/05/contoh-query-database-sql-tingkat-lanjut-atau-expert/ 2/7
1/9/22, 12:24 AM Contoh Query Database SQL Tingkat Lanjut atau Expert - Dewan Komputer

Digunakan untuk mencari nilai terkecil dari sekumpulan record. Pada contoh pertama artinya tampilkan saldo paling kecil pada tabel
rekening. Pada contoh kedua artinya tampilkan saldo paling kecil pada tabel rekening yang mempunyai nilai ‘clp‘ pada kolom kode_cabang.

b) MAX ( )

 Contoh:

SELECT MAX(saldo) FROM tbl_rekening;

Juga bisa dibatasi dengan WHERE clause:

SELECT MAX(saldo) FROM tbl_rekening WHERE kode_cabang = ‘clp’;

Digunakan untuk mencari nilai terbesar dari sekumpulan record. Pada contoh pertama artinya tampilkan saldo paling besar pada tabel
rekening. Pada contoh kedua artinya tampilkan saldo paling besar pada tabel rekening yang mempunyai nilai ‘clp‘ pada kolom kode_cabang.

c) COUNT ( )

 Contoh:

a. SELECT COUNT(*) FROM tbl_mahasiswa;

b. SELECT COUNT(nama_mahasiswaFROM tbl_mahasiswa;

c. SELECT COUNT(alamat_mahasiswa) FROM tbl_mahasiswa;

Juga bisa dibatasi dengan WHERE clause.

SELECT COUNT(sks) as jmlsks from tbl_matkul where sks=4;

Jika kita ingin menghitung banyaknya record yang unik (tidak ada pengulangan), gunakan DISTINCT:

SELECT COUNT(DISTINCT nama_mahasiswa) FROM tbl_mahasiswa;

Digunakan untuk menghitung banyaknya record.

1. Pada contoh paling atas a,b,c artinya sama yaitu menampilkan jumlah baris pada tabel mahasiswa.

2. Pada contoh kedua yang menggunakan WHERE artinya menampilkan jumlah baris yang diberi nama ‘jmlsks’  dari tabel matkul yang
mempunyai nilai 4 pada kolom ‘sks’, gunanya diberi nama ‘jmlsks’ adalah jika sobat ingin menampilkan data pada website tentunya
memanggil nama kolomnya/headernya. Jika menggunakan fungsi ini headernya dideklarasikan sebagai jmlsks.

3. Pada contoh paling bawah yang menggunakan DISTINC artinya menampilkan jumlah yang pada kolom nama_mahasiswa tidak sama yang
ada pada tabel mahasiswa.

d) SUM ( )

 Contoh:

SELECT SUM(saldo) FROM tbl_rekening;

Bisa dibatasi dengan WHERE clause:

SELECT SUM(saldo) FROM tbl_rekening WHERE kode_cabang = ‘CLP’;

Digunakan untuk menjumlahkan nilai-nilai dari sekumpulan record.

1. Pada contoh pertama artinya menampilkan hasil penjumlahan semua saldo yang ada pada tabel rekening.

2. Pada contoh kedua artinya menampilkan hasil penjumlahan semua saldo yang ada pada tabel rekening yang mempunyai kode_cabang
‘CLP‘.

e) AVG ( )

https://dewankomputer.com/2019/01/05/contoh-query-database-sql-tingkat-lanjut-atau-expert/ 3/7
1/9/22, 12:24 AM Contoh Query Database SQL Tingkat Lanjut atau Expert - Dewan Komputer

 Contoh:

1. SELECT AVG(saldo) FROM tbl_rekening;

Bisa dibatasi dengan WHERE clause:

2. SELECT AVG(saldo) FROM tbl_rekening WHERE kode_cabang = ‘CLP’;

Beberapa aggregate functions bisa digabungkan dalam satu perintah SQL:

3. SELECT MIN(saldo), MAX(saldo), AVG(saldo) FROM tbl_rekening;

Bisa menambahkan ekspresi aritmetika:

4. SELECT SUM(saldo + 1000) FROM tbl_rekening;

5. SELECT SUM(saldo) + 1000 FROM tbl_rekening;

6. SELECT MAX(saldo) – MIN(saldo) FROM tbl_rekening;

Digunakan untuk menghitung rata-rata nilai dari sekumpulan record.

1. Artinya menampilkan jumlah rata-rata saldo yang ada pada tabel rekening.

2. Artinya menampilkan jumlah rata-rata saldo yang ada pada tabel rekening yang mempunyai nilai ‘CLP’ pada kolom kode_cabang.

3. Artinya menampilkan saldo terkecil, saldo terbesar, rata-rata saldo pada tabel rekening.

4. Artinya menampilkan jumlah saldo yang sebelumnya ditambahkan 1000, misalkan ada 3 record yaitu mempunyai nilai 5000, 6000 dan
7000, maka rumusnya akan menjadi (5000+1000)+(6000+1000)+(7000+1000)=21000.

5. Artinya menampilkan jumlah saldo keseluruhan ditambah 1000, misalkan ada 3 record yaitu mempunyai nilai 5000, 6000 dan 7000, maka
rumusnya akan menjadi (5000+6000+7000)+1000=19000.

6. Artinya rumus pengurangan yaitu saldo paling besar dikurangi saldo paling kecil yang ada pada tabel rekening.

4. GROUP BY

Digunakan untuk mengelompokkan sekumpulan record berdasarkan kolom(-kolom) tertentu.

 Contoh:

• SELECT jenis_transaksi FROM tbl_transaksi GROUP BY jenis_transaksi;

• SELECT jenis_transaksi, tanggal FROM tbl_transaksi GROUP BY jenis_transaksi, tanggal;

Hasil yang sama bisa didapatkan dengan menggunakan DISTINCT:

• SELECT DISTINCT jenis_transaksi, tanggal FROM tbl_transaksi;

Yang harus diperhatikan ketika menggunakan GROUP BY. Jika menggunakan GROUP BY, semua field yang ingin ditampilkan dalam SELECT
harus tercantum di GROUP BY.

 Contoh yang salah:

– SELECT jenis_transaksi, tanggal FROM tbl_transaksi GROUP BY jenis_transaksi;

– SELECT jenis_transaksi, tanggal FROM tbl_transaksi GROUP BY tanggal;

Contoh yang benar:

– SELECT jenis_transaksi, tanggal FROM tbl_transaksi GROUP BY jenis_transaksi, tanggal;

5. HAVING

Merupakan pasangan dari GROUP BY, digunakan untuk membatasi kelompok yang ditampilkan:

https://dewankomputer.com/2019/01/05/contoh-query-database-sql-tingkat-lanjut-atau-expert/ 4/7
1/9/22, 12:24 AM Contoh Query Database SQL Tingkat Lanjut atau Expert - Dewan Komputer

 Contoh :

SELECT jenis_transaksi, tanggal FROM tbl_transaksi

GROUP BY jenis_transaksi, tanggal

HAVING jenis_transaksi = ‘kredit’;

Hasil yang sama bisa didapatkan dengan:

SELECT jenis_transaksi, tanggal FROM tbl_transaksi

WHERE jenis_transaksi = ‘kredit’

GROUP BY jenis_transaksi, tanggal;

Yang harus diperhatikan :

• Jika menggunakan HAVING, maka pembatasan dilakukan setelah hasil dikelompokkan dalam GROUP BY.

• Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY.

• Field(-field) yang disebut di HAVING harus ada di GROUP BY, atau berupa aggregate functions.

 Contoh yang salah:

SELECT jenis_transaksi, tanggal FROM tbl_transaksi

GROUP BY jenis_transaksi, tanggal

HAVING jumlah = 50000;

Contoh yang benar:

SELECT jenis_transaksi, tanggal FROM tbl_transaksi

WHERE jumlah = 50000

GROUP BY jenis_transaksi, tanggal;

Penggabungan GROUP BY dengan Aggregate

GROUP BY sangat cocok untuk aggregate functions. Dengan menggunakan GROUP BY, kita bisa mengelompokkan record-record dan
menghitung min, max, count, sum, dan avg untuk masing-masing kelompok.

 Contoh:

SELECT kode_cabang, MIN(saldo), MAX(saldo), COUNT(*), SUM(saldo), AVG(saldo)

FROM tbl_rekening

GROUP BY kode_cabang;

Bisa digabungkan dengan tabel join dan ORDER BY:

SELECT nama_cabang, SUM(saldo)

FROM tbl_rekening NATURAL JOIN cabang_bank

GROUP BY nama_cabang

ORDER BY nama_cabang;

Hasil di atas menampilkan total saldo untuk masing-masing cabang_bank.

Perintah SQL di bawah menampilkan banyaknya nasabah yang dilayani oleh masing-masing cabang bank:

 SELECT nama_cabang, COUNT(DISTINCT id_nasabah)

FROM cabang_bank NATURAL JOIN rekening NATURAL JOIN nasabah_has_rekening

GROUP BY nama_cabang

ORDER BY nama_cabang;

Contoh dengan HAVING:

 SELECT kode_cabang, SUM(saldo), COUNT(*)

FROM rekening

GROUP BY kode_cabang

HAVING SUM(saldo) >= 5000000

ORDER BY kode_cabang;

https://dewankomputer.com/2019/01/05/contoh-query-database-sql-tingkat-lanjut-atau-expert/ 5/7
1/9/22, 12:24 AM Contoh Query Database SQL Tingkat Lanjut atau Expert - Dewan Komputer

Karena SUM(saldo) hanya bisa dihitung setelah hasil dikelompokkan dengan GROUP BY, maka kita harus menggunakan HAVING untuk
membatasi hasil berdasarkan SUM(saldo) >= 5000000. Kita tidak bisa menggunakan WHERE.

Query diatas merupakan query yang wajib sobat pelajari karena jika sobat membuat aplikasi apalagi untuk sebuah perusahaan, sobat tidak
bisa hanya dengan query itu-itu saja yang standar karena nanti akan menyebabkan aplikasi tidak berkalan dengan maksimal. Sekian
postingan saya tentang Contoh Query Database SQL Tingkat Lanjut atau Expert. Jika ada salah-salah mohon dikoreksi, jika sobat mempunyai
fungsi yang sulit namun belum ada pada postingan diatas mohon bisa diberitahu karena saya juga masih belajar dan kita tidak bisa puas
dengan ilmu yang kita miliki karena dunia pemrograman akan berkembang sepanjang waktu. Sekian dan terimakasih.

Sampai bertemu pada postingan saya selanjutnya..

Related

Cara Membuat Koneksi dengan Database Cara Membuat Koneksi dengan Database Cara Ekspor Laporan/Data dari Database
MySQL bisa Dua atau Lebih Koneksi MySQL menggunakan PHP – Part 1 MySQL ke dalam Word Tanpa Plugin
database/Multiple Connection dalam Satu January 9, 2019 January 12, 2019
Host maupun beda Host Menggunakan PHP In "Native" In "Native"
– Part 3
January 10, 2019
In "Native"

Tags: query expert example

7 thoughts on “Contoh Query Database SQL Tingkat Lanjut atau Expert”


Eris Eka Saputra says:
October 10, 2020 at 2:47 am

Apakah kode ini bisa diterapkan di VB net ?

dewan says:
October 10, 2020 at 4:06 pm

bisa selama VBnya pake SQL Query bukan No SQL

Dadang says:
March 14, 2021 at 12:20 am

Terimakasih, sangat bermanfaat..

Untuk select dengan multi where.. gimana ya Pak. Mohon pencerahannya… Contoh:

Select * from tabelbarang

Where nobrg = 1 and jnsbrg = padat

and kondisi = baru or warna = hijau

dewan says:
March 17, 2021 at 11:34 am

bisa pake kurung mas

Select * from tabelbarang

Where (jnsbrg=’padat’ and warna=’hijau’) or (kondisi=’baru’ and warna=’merah’)

contoh diatas akan menampilkan

barang dengan jnsbrg padat yg berwana hijau

dan jg barang dgn kondisinya baru yg berwarna merah

Dadang says:
March 19, 2021 at 2:14 am

Terima kasih berhasil….

mohon satu lagi Pak..

ini untuk menghitung selisih bulan

tabelA (nobrg, tglpemesanan)

tabelB (nobrg, tgltibabarang)

https://dewankomputer.com/2019/01/05/contoh-query-database-sql-tingkat-lanjut-atau-expert/ 6/7
1/9/22, 12:24 AM Contoh Query Database SQL Tingkat Lanjut atau Expert - Dewan Komputer

bagaimana query mencari selisih bulan antara tglpemesanan(tabelA) dengan tgltibabarang (tabelB) ??

mohon pencerahannya…Terimakasih

dewan says:
March 24, 2021 at 7:13 am

bisa pake datediff

contoh :

SELECT datediff((SELECT tgl1 FROM tablea LIMIT 1), (SELECT tgl2 FROM tableb LIMIT 1));

anonym says:
December 21, 2021 at 4:47 am

boleh minta source database nya buat pelajaran

https://dewankomputer.com/2019/01/05/contoh-query-database-sql-tingkat-lanjut-atau-expert/ 7/7

Anda mungkin juga menyukai