basis data 6 select statement (2) · 2. jika menggunakan where, maka pembatasan dilakukan sebelum...

16
HanungNP/Basis Data/Politel/2012

Upload: phungkhue

Post on 27-Mar-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

HanungNP/Basis Data/Politel/2012

Page 2: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

Lanjutan perintah Select (2)

• Like

• Agregate Function (fungsi agregasi)

• Having (with group by)

• Case ‘MIX’• Case ‘MIX’

HanungNP/Basis Data/Politel/2012

Page 3: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

Like

• SELECT * FROM nama_table

• WHERE nama_kolom LIKE ‘content%’

atau

• SELECT * FROM nama_table• SELECT * FROM nama_table

• WHERE nama_kolom LIKE ‘%content’

Atau

SELECT * FROM nama_table

• WHERE nama_kolom LIKE ‘%content%’

HanungNP/Basis Data/Politel/2012

Page 4: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

karakter

karakter keterangan

+ Kata ini harus ada pada pencarian

- Kata ini tidak boleh ada dalam pencarian- Kata ini tidak boleh ada dalam pencarian

> Kata ini lebih diutamakan

< Kata ini tidak diutamakan

* Mencari sembarang karakter

HanungNP/Basis Data/Politel/2012

Page 5: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

Gabungan Like & Join

Menampilkan nama anggota dan judul bukuyang diawail huruf W dan terdiri dariMINIMAL 8 huruf

SELECT nama_anggota, judul_buku

FROM anggota, buku, peminjaman

WHERE buku.id_buku = peminjaman.id_buku

AND judul_buku LIKE 'W_______%';

HanungNP/Basis Data/Politel/2012

Page 6: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

Agregate Function

Fungsi Agregat:

• MIN(),

• MAX(),

• AVG(),• AVG(),

• SUM(),

• COUNT()

HanungNP/Basis Data/Politel/2012

Page 7: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

Contoh tabel employee

HanungNP/Basis Data/Politel/2012

Page 8: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

Function dasar

• SELECT COUNT(*) FROM employee;

• select SUM(salary) FROM employee;

• select MAX(salary) FROM employee;

• select MIN(salary) FROM employee;• select MIN(salary) FROM employee;

• select AVG(salary) FROM employee;

HanungNP/Basis Data/Politel/2012

Page 9: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

• Beberapa aggregate functions bisadigabungkan dalam satu perintah SQL

Bisa menambahkan ekspresi aritmetika:

SELECT SUM(saldo + 1000) FROM rekening;SELECT SUM(saldo + 1000) FROM rekening;

SELECT SUM(saldo) + 1000 FROM rekening;

SELECT MAX(saldo) - MIN(saldo) FROMrekening;

HanungNP/Basis Data/Politel/2012

Page 10: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

Sintax umum

• SELECT daftar_kolom_non_fungsi_ag,fungsi_ag(nama_kolom1),

fungsi_ag(nama_kolom2)

• FROM daftar_tabel• FROM daftar_tabel

• WHERE syarat_dan_atau_foreign_key

• GROUP BY daftar_kolom_non_fungsi_ag

HanungNP/Basis Data/Politel/2012

Page 11: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

Agregate Function, Group By

• SELECT designation, MIN(salary) , MAX(salary)FROM employee

GROUP BY designation;

HanungNP/Basis Data/Politel/2012

Page 12: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

SELECT kolom1, SUM( kolom2 * kolom3) total

FROM nama_tabel

GROUP BY kolom1;

HanungNP/Basis Data/Politel/2012

Page 13: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

Dalam Group by

• Yang harus diperhatikan ketika menggunakan GROUP BYJika menggunakan GROUP BY, semua field yang ingin ditampilkandalam SELECT harus tercantum di GROUP BY.

• Contoh yang salah:– SELECT jenis_transaksi, tanggal FROM transaksiGROUP BY jenis_transaksi;GROUP BY jenis_transaksi;

atau– SELECT jenis_transaksi, tanggal FROM transaksiGROUP BY tanggal;

• Contoh yang benar:– SELECT jenis_transaksi, tanggal FROM transaksiGROUP BY jenis_transaksi, tanggal;

HanungNP/Basis Data/Politel/2012

Page 14: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

HAVING

• Merupakan pasangan dari GROUP BY, digunakan untukmembatasi kelompok yang ditampilkan:

SELECT jenis_transaksi, tanggal FROM transaksiGROUP BY jenis_transaksi, tanggalHAVING jenis_transaksi = ‘kredit’;HAVING jenis_transaksi = ‘kredit’;

• Hasil yang sama bisa didapatkan dengan:

SELECT jenis_transaksi, tanggal FROM transaksiWHERE jenis_transaksi = ‘kredit’GROUP BY jenis_transaksi, tanggal;

HanungNP/Basis Data/Politel/2012

Page 15: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

Dalam Having

Yang harus diperhatikan:

1. Jika menggunakan HAVING, maka pembatasandilakukan setelah hasil dikelompokkan dalamGROUP BY.GROUP BY.

2. Jika menggunakan WHERE, maka pembatasandilakukan sebelum hasil dikelompokkan dalamGROUP BY.

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

HanungNP/Basis Data/Politel/2012

Page 16: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus

Contoh dengan HAVING:

SELECT kode_cabang, SUM(saldo), COUNT(*)FROM rekeningGROUP BY kode_cabangGROUP BY kode_cabangHAVING SUM(saldo) >= 5000000

HanungNP/Basis Data/Politel/2012