ADVANCE SQL 1
A.
Tujuan
Mahasiswa mampu menggunakan select
statement beserta optionsnya untuk mencari, mengolah, dan menampilkan data yang
ada di basis data sesuai kebutuhan.
B.
Landasan Teori
·
IN
Ø Contoh
-
SELECT*FROM rekening
WHERE kode_cabang IN (‘BRUM’,’BRUL’);
Ø Perintah
SQL diatassamadengan :
-
SELECT*FROM rekening
WHERE kode_cabang = ‘BRUM’ OR kode_cabang = ‘BRUL’;
Ø Tidakadabatasbanyaknyanilai
yang bisaada di dalam IN (….)
·
NOT IN
Ø Contoh
-
SELECT*FROM rekening
WHERE kode_cabang NOT IN (‘BRUS’,’BRUL’)
Ø Nilai
NULL tidak akan tampil dalam IN dan NOT IN.
·
BETWEEN
Ø Contoh
-
SELECT*FROM rekening
WHERE saldo BETWEEN 500000 AND 1000000;
Ø Nilai
yang pertama dalam
BETWEEN harus lebih kecil dari nilai yang kedua.
·
NOT BETWEEN
Ø Contoh
-
SELECT*FROM rekening
WHERE saldo NOT BETWEEN 500000 AND 1000000;
·
AGGREGATE FUNCTION
Fungsi-fungsi untuk aggregate
:
Ø MIN
( )
ü Digunakan untuk mencari nilai terkecil dari sekumpulan record.
ü Contoh
-
SELECT MIN (saldo) FROM
rekening;
ü Bisa dibatasi dengan WHERE clause
sehingga hanya
record tertentu yang ditelusuri :
-
SELECT MIN (Saldo) FROM
rekening WHERE kode_cabang=’BRUS’;
Ø MAX
( )
ü Digunakan untuk mencari nilai terbesar dari sekumpulan record.
ü Contoh
-
SELECT MAX (saldo) FROM
rekening;
ü Bisa dibatasi dengan WHERE clause :
-
SELECT MAX (Saldo) FROM
rekening WHERE kode_cabang=’BRUS’;
Ø COUNT
( )
ü Digunakan untuk menghitung banyaknya record.
ü Contoh
-
SELECT COUNT (*) FROM
nasabah;
-
SELECT
COUNT(nama_nasabah) FROM nasabah;
-
SELECT COUNT
(alamat_nasabah) FROM nasabah;
ü Bisa dibatasi dengan WHERE clause.
ü Jika kita ingin menghitung record yang
unik (tidak ada pengulangan) maka gunakan DISTINCT.
-
SELECT COUNT (DISTINCT
alamat_nasabah) FFROM nasabah;
Ø SUM
( )
ü Digunakan untuk menjumlahkan nilai-nilai dari sekumpulan record.
ü Contoh
-
SELECT SUM(saldo)FROM
rekening;
ü Bisa dibatasi dengan WHERE clause.
Ø AVG
( )
ü Digunakan untuk menghitung rata-rata
nilai dari sekumpulan record.
ü Contoh
-
SELECT AVG (saldo) FROM
rekening;
ü Bisa dibatasi dengan WHERE clause.
ü Beberapa aggregate
functions bias digabungkan dalam satu perintah SQL :
-
SEELCT MIN(saldo), MAX
(saldo), AVG (saldo) FROM rekening;
ü Bisa menggunakanColumn Alias (AS) untuk membuat tampilan lebih professional.
·
GROUP BY
Ø Digunakan untuk mengelompokkan sekumpulan record
berdasarkan (kolom-kolom) tertentu.
Ø Contoh
-
SELECT jenis_transaksi
FROM transaksi GROUP BY jenis_transaksi;
·
HAVING
Ø Merupakan pasangan dari GROUP BY,
digunakan untuk membatasi yang
ditampikan.
Ø Contoh
-
SELECT jenis_transaksi,
tanggal FROM transaksi GROUP BY jenis_transaksi, tanggal HAVING
jenis_transaksi-‘kredit’;
Ø Jika menggunakan HAVING,
maka pembatasan dilakukan setelah dikelompokkan dalam GROUP BY.
Ø Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY.
·
GROUP BY dan AGGREGATE
Ø GROUP
BY sangat cocok untuk aggregate
functions. Dengan menggunakan
GROUP BY, kita bias mengelompokkan
record-record dan menghitung
min, max, count, sum, dan avg untuk masing-masing kelompok.
-
SELECT kode_cabang,
MIN(saldo), MAX(saldo), COUNT(*), SUM(saldo), AVG(saldo) FROM rekening GROUP BY
kode_cabang;
Ø Bisa digabungkan dengan tabel join dan ORDER
BY.
-
SELECT nama_cabang,
SUM(saldo) FROM rekening NATURAL JOIN cabang_bank GROUP BY nama_cabang ORDER BY
nama_cabang;
C.
Alat dan Bahan
1. Komputer
2. Program
aplikasi postgreeSQL
9.2
3. Modul praktikum sistem basis data
D.
Langkah-langkah Praktikum
1. Menampilkan tanggal transaksi, jenis transaksi, dan jumlah transaksi untuk semua transaksi yang
dilakukan oleh Sutopo dan Canka Lokananta dan diurutkan berdasarkan tanggal transaksi, dengan kode berikut :
è SELECT
transaksi.tanggal, transaksi.jenis_transaksi, transaksi.jumlah FROM nasabah,
transaksi WHERE nasabah.id_nasabah=transaksi.id-nasabahFK AND
nasabah.nama_nasabah IN (‘Sutopo’,’CankaLokananta’) ORDER BY transaksi.tanggal;
2. Menampilkan tanggal transaksi, nama nasabah, jenis transaksi, dan jumlah transaksi untuk semua transaksi yang terjadi dari 15 november sampai 20 November 2009
dan diurutkan berdasarkan tanggal transaksi dan nama nasabah dengan kode berikut :
è SELECT
transaksi.tanggal, nasabah.nama_nasabah, transaksi.jenis_transaksi,
transaksi.jumlah FROM transaksi, nasabah WHERE transaksi.tanggal BETWEEN
‘2009-11-15’ AND ‘2009-11-20’ AND nasabah.id_nasabah=transaksi.id_nasabahFK
ORDER BY transaksi.tanggal, nasabah.nama_nasabah.
3. Menampilkan jenis transaksi dan total jumlah transaksi (dalam
rupiah) untuk tiap jenis transaksi dan diurutkan berdasarkan jenis transaksi dengan kode berikut :
è SELECT
transaksi.jenis_transaksi AS “JenisTransaksi”, SUM(jumlah) AS “Jumlah (Rp)”
FROM transaksi GROUP BY transaksi.jenis_transaksi ORDER BY
transaksi.jenis_transaksi;
4. Menampilkan jenis transaksi, jumlah transaksi yang terbesar serta terkecil untuk tiap jenis transaksi dan diurutkan berdasarkan jenis transaksi dengan kode berikut:
è SELECT
jenis_transaksi AS “JenisTransaksi”, MAX(jumlah) AS “TransaksiTerbesar”,
MIN(jumlah) AS “TransaksiTerkecil” FROM transaksi GROUP BY
transaksi.jenis_transaksi ORDER BY transaksi.jenis_transaksi;
5. Menampilkan jenis transaksi, total jumlah transaksi (dalam
rupiah), dan banyaknya transaksi yang tercatat untuk tiap jenis transaksi yang terjadi sebelum bulan Desember dan diurutkan berdasarkan jenis transaksi dengan kode berikut :
è SELECT
jenis_transaksi AS “JenisTransaksi”, SUM(jumlah) AS “Jumlah (Rp)”,
COUNT(jumlah) AS “JumlahTransaksi” FROM transaksi WHERE tanggal BETWEEN
‘2009-11-1’ AND ‘2009-11-30’ GROUP BY transaksi.jenis_transaksi ORDER BY
transaksi.jenis_transaksi;
E.
Analisa
Pada percobaan kali ini kita bias mengenal dan menggunakan lebih banyak macam select statement
beserta option-nya, seperti IN, NOT IN, BETWEEN, NOT BETWEEN, AGGREGATE FUNCTIONS (MIN, MAX.
COUNT, SUM, AVG), GROUP BY, HAVING. Fungsi dari select statement
tersebut sudah saya jelaskan pada landasanteori di atas.
GROUP
BY sangat cocok untuk aggregate
function.Dengan menggunakan GROUP BY,
kita bias mengelompokkan
record-record dan menghitung
min, max, count, sum, dan avg untuk masing-masing kelompok. GROUP BY dan aggregate
function juga bias digabungkan dengan tabel join dan ORDER
BY. Semua select
statement tersebut akan lebih memudahkan kita dalam mengelola database.
F.
Tugas
1. Tampilkan jenis transaksi, jumlah transaksi dalam Rp dan total transaksi untuk nasabah yang bernama akhiran
‘KartikaPadmasari’ untuk masing-masing jenis transaksi!
2. Berapa jumlah total saldo yang
dimiliki olehMaryati?
Tidak ada komentar:
Posting Komentar