0% menganggap dokumen ini bermanfaat (0 suara)
159 tayangan8 halaman

Contoh Query Database SQL Tingkat Lanjut

Dokumen tersebut memberikan contoh query database SQL tingkat lanjut yang mencakup perintah SELECT dengan klausa IN, NOT IN, BETWEEN, NOT BETWEEN, fungsi aggregate seperti MIN, MAX, COUNT, SUM, AVG, serta penggunaan GROUP BY dan HAVING.

Diunggah oleh

Syahdie Fahledi
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
159 tayangan8 halaman

Contoh Query Database SQL Tingkat Lanjut

Dokumen tersebut memberikan contoh query database SQL tingkat lanjut yang mencakup perintah SELECT dengan klausa IN, NOT IN, BETWEEN, NOT BETWEEN, fungsi aggregate seperti MIN, MAX, COUNT, SUM, AVG, serta penggunaan GROUP BY dan HAVING.

Diunggah oleh

Syahdie Fahledi
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 8

Contoh Query Database SQL Tingkat Lanjut

atau Expert
January 5, 2019 
 
dewan 
 
6 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

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’;
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 ( )

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:

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;
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..

Anda mungkin juga menyukai