You are on page 1of 45

SELECT

Penggunaan Fungsi SELECT pada bahasa SQL

Muh. Iskandar Sabang, S.ST., M.S.A.


Buatlah table pembelian dengan struktur seperti berikut ini:
Isilah
table
pembelian
Mengatur kolom yang
ditampilkan dan
mengurutkan data
- Penggunaan tanda *
- Menyebutkan kolom/field
- Penggunaan ORDER BY
- Penggunaan ASCENDING & DESCENDING
SELECT *
FROM pembelian
Menampilkan data dari
table pembelian dengan
menampilkan semua
kolom dan semua baris

Apabila nama table tersebut


menggunakan spasi maka nama
table harus diapit dengan
TANDA PETIK (`).
Contoh, nama adalah
pembelian Barang, maka
perintahnya adalah:

SELECT *
FROM `pembelian Barang`
SELECT no_beli, tgl_beli, kode barang, unit
FROM pembelian
Memampilkan kolom/field
tertentu dari sebuah dari
table pembelian.
Contoh, menampilkan
field/kolom no_beli, tgl_beli,
kode_barang, dan unit serta
semua baris.

Apabila nama kolom/field tersebut


menggunakan spasi maka nama
kolom tersebut harus diapit dengan
tanda petik satu (`).
SELECT *
FROM pembelian
ORDER BY kode_barang
Mengurutkan secara
Ascending

Tambahkan ORDER BY
dan diikuti nama kolom
yang akan menjadi
dasar pengurutan.
Contoh, memilih semua
kolom/field pada table
pembelian dan
diurutkan berdasarkan
kode_barang
SELECT *
FROM pembelian
ORDER BY Unit Desc
Mengurutkan secara
Descending

Tambahkan DESC (singkatan


Descending) setelah nama
kolom yang mengikuti order by

Contoh memilih semua


kolom/field pada table
pembelian dan diurutkan
berdasarkan Unit secara
Descending (dari besar ke kecil).
SELECT *
FROM Pembelian
ORDER BY kode_barang, unit DESC
Tuliskan semua kolom yang akan
dijadikan kolom dasar pengurutan
jika akan diurutkan berdasarkan
lebih dari satu kolom dengan
dipisahkan koma.

Urutan penulisan kolom


disesuaikan dengan prioritas
pengurutan.

Tambahkan DESC jika kolom akan


diurutkan secara descending.

Contoh, memilih semua


kolom/field pada table Pembelian
dan diurutkan berdasarkan
kode_barang secara Ascending
dan unit secara Descending
Membatasi baris/record
yang ditampilkan

- Penggunaan WHERE
- Cara penulisan data string, number, dan tanggal pada penggunaan where
- Penggunaan operator pembanding AND serta OR
Menampilkan baris tertentu (menggunakan SELECT *
syarat) FROM Pembelian
WHERE kode_barang = 'BKG'
Gunakan WHERE diikuti dengan kolom yang
menjadi kriteria, operator metematika (=, LIKE, >,
<, !=, dll) serta data nilai kriteria.

Contoh, memilih data dari table Pembelian


dengan persyaratan kolom/field kode_barang
bernilai BKG

Penulisan BKG menggunakan tanda petik –


‘BKG’ – karena kolom kriteria – kode_barang –
adalah kolom bertype string (char, varchar, text)
SELECT *
FROM Pembelian
WHERE Unit <= 70

Memilih data dari table


Pembelian dengan
persyaratan kolom/field unit
bernilai 70 ke bawah

Penulisan angka 70 tidak


menggunakan tanda petik
karena kolom kriteria – unit –
adalah kolom bertype number
(int, double, decimal)
SELECT *
FROM Pembelian
WHERE tgl_beli >= ‘2017-07-25’

Memilih data dari table


Pembelian dengan
persyaratan kolom/field
tgl_beli bernilai tanggal 25 Juli
2017 atau setelahnya

Penulisan angka tanggal


menggunakan tanda petik.
Tatanan penulisan adalah
TAHUN-BULAN-TANGGAL.
Menampilkan baris tertentu dengan lebih dari Contoh, memilih data dari tabel pembelian
persyaratan tetapi hanya data yang pada kolom/field
Gunakan operator pembanding AND atau kode_barang bernilai BKG dan pada
OR kolom/field Unit bernilai 70 kebawah
SELECT *
FROM Pembelian
SELECT * Where kode_barang = ‘BKG’ And Unit <= 70
FROM Pembelian
Where Unit <= 20 Or tgl_beli >= '2017-08-25'

Contoh, memilih data dari tabel


pembelian tetapi hanya data yang pada
kolom/field unit 20 kebawah dan pada
kolom/field tanggal pembelian 25 Agustus
2017 serta setelahnya.
Membentuk kolom
formula

- Penulisan formula dan pemberian nama kolom hasil formula


- Mengurutkan data berdasarkan hasil formula
- Membatasi baris/record yang akan ditampilkan berdasarkan hasil formula
SELECT no_beli, kode_barang, unit, harga, unit * harga As Jumlah
FROM pembelian
Menampilkan kolom hasil
formulasi

Penulisan formulasi mengikuti


tata tulis formula matematika
lalu diikuti teks untuk
penamaan hasil formulasi

Contoh, menampilkan
kolom no_beli,
kode_barang, unit, harga,
serta hasil perkalian unit
dan harga.
Hasil perkalian unit dan
harga dinamai kolom
jumlah
SELECT no_beli, kode_barang, unit, harga, unit * harga As Jumlah
Formulasi sebagai kriteria FROM pembelian
WHERE (unit * harga) >= 500000
dalam menampilkan baris

Contoh, menampilkan
kolom no_beli,
kode_barang, unit, harga,
serta hasil perkalian unit
dan harga dengan nama
Jumlah tetapi baris yang
hasil pekalian unit dan
jumlah lebih besar sama
500000

SELECT no_beli, kode_barang, unit, harga, unit * harga As Jumlah Salah salah karena table
FROM pembelian pembelian tidak memiliki
Where jumlah >= 500000 kolom jumlah secara fisik
SELECT no_beli, kode_barang, unit, harga, unit * harga As Jumlah
Formulasi sebagai FROM pembelian
ORDER BY (unit * harga)
kriteria pengurutan.

Contoh, menampilkan
kolom no_beli,
kode_barang, unit,
harga, serta hasil
perkalian unit dan
harga dengan nama
Jumlah dan diurutkan
berdasarkan hasil
pekalian unit dan
jumlah.
Membentuk kolom
formula

- Agregat COUNT, MIN, MAX, dan SUM


- Membatasi record yang akan diagregat
- Mengelompokkan hasil agregat
- Membatasi hasil agregat yang ditampilkan
SELECT COUNT(*) As JmlData
FROM Pembelian
Fungsi-fungsi agregat
Contoh, mengetahui
a. Count(*) digunakan untuk jumlah record pada table
mengetahui jumlah record pembelian. Jumlah record
sebuah table ditampilkan pada kolom
b. MIN(kolom) digunakan untuk JmlData
mengetahui nilai terendah dari
sebuah kolom Select MIN(tgl_beli) As TglBeliTerlama,
c. MAX(kolom) digunakan untuk MAX(tgl_beli) As TglBeliTerbaru,
mengetahui nilai tertinggi dari MIN(Unit) As UnitTerendah,
sebuah kolom MAX(Unit) As UnitTertinggi,
d. SUM(kolom) digunakan untuk SUM(Unit) As TotalUnit
mengetahui total nilai dari FROM Pembelian
sebuah kolom.

Mengetahui tgl_beli terendah dan dibuatkan kolom TglBeliTerlama, tgl_beli tertinggi dan
dibuatkan kolom TglBeliTerbaru, Unit terendah ditampilkan dengan kolom UnitTerendah,
Unit tertinggi dan ditampilkan dengan kolom UnitTertinggi, serta total Unit yang
ditampilkan dengan dibuatkan kolom TotalUnit
SELECT COUNT(*) As JmlData
FROM Pembelian
Membatasi baris/record yang akan Where kode_barang = 'BKG'
diagregatkan Mengetahui jumlah data/record
dalam table pembelian tetapi
hanya data yang pada kolom
kode_barang bernilai BKG,
jumlah data tersebut dibuatkan
sebuah kolom/field bernama
Mengetahui tgl_beli terendah dan JmlData
dibuatkan kolom TglBeliTerlama, tgl_beli
tertinggi dan dibuatkan kolom Select MIN(tgl_beli) As TglBeliTerlama,
TglBeliTerbaru, Unit terendah MAX(tgl_beli) As TglBeliTerbaru,
ditampilkan dengan kolom MIN(Unit) As UnitTerendah,
UnitTerendah, Unit tertinggi dan MAX(Unit) As UnitTertinggi,
ditampilkan dengan kolom UnitTertinggi, SUM(Unit) As TotalUnit
serta total Unit yang ditampilkan FROM Pembelian
dengan dibuatkan kolom TotalUnit Where kode_barang = 'BKG'
tetapi hanya data yang pada kolom
kode_barang bernilai BKG
Agregat kolom formula

Kolom yang dapat diagregatkan


bukan hanya untuk kolom fisik Select MIN(Unit * Harga) As JumlahTerendah,
table tetapi termasuk kolom hasil MAX(Unit * Harga) As JumlahTertinggi
formula FROM Pembelian

Contoh, Mengetahui hasil


perkalian terendah antara Unit
dan Harga dan dibuatkan
kolom/field bernama
JumlahTerendah, serta hasil
perkalian tertinggi antara Unit dan
Harga dan dibuatkan kolom/field
bernama JumlahTertinggi
SELECT kode_barang,
MIN(tgl_beli) As TglBeliTerlama,
Pengelompokan hasil agregat
MAX(tgl_beli) As TglBeliTerbaru,
MIN(Unit) As UnitTerendah,
Hasil formula agregat dapat juga
MAX(Unit) As UnitTertinggi,
dikelompokkan sesuai dengan
SUM(Unit) As TotalUnit
pengelompokan yang diinginkan.
FROM Pembelian
Misalnya berapa jumlah baris/record
GROUP BY kode_barang
masing-masing kode_barang, berapa
unit pembelian tertinggi dari masing-
masing kode_barang.

Contoh, menampilkan kode_barang dan


mengetahui tgl_beli terendah/terlama dan
dibuatkan kolom/field TglBeliTerlama, Tgl Pembelian
tertinggi/terbaru dan dibuatkan kolom/field
TglBeliTerbaru, Unit terendah dan dibuatkan
kolom/field UnitTerendah, Unit tertinggi dan
dibuatkan kolom/field UnitTertinggi, serta jumlah Unit
dan dibuatkan kolom/field TotalUnit.
select kode_barang, count(*) as JmlBaris
from pembelian
Mengelompokkan hasil agregat dan where unit > 30
memilih data tertentu yang akan GROUP BY kode_barang
diagregatkan.

Data yang akan diagregatkan data


serta akan dikelompokkan dapat saja
dibatasi

Contoh, berapa jumlah


baris tiap-tiap
kode_barang tetapi yang
unit pembeliannya diatas
30
SELECT kode_barang,
MIN(tgl_beli) As TglBeliTerlama,
Membatasi hasil agragat yang akan MAX(tgl_beli) As TglBeliTerbaru,
ditampilkan. Gunakan HAVING untuk MIN(Unit) As UnitTerendah,
membatasi hasil agregat yang akan MAX(Unit) As UnitTertinggi,
ditampilkan SUM(Unit) As TotalUnit
FROM Pembelian
GROUP BY kode_barang
HAVING SUM(Unit) > 100

Menampilkan data
hasil agregat unit
(Totalunit) diatas 100

Perbedaan antara WHERE dan HAVING adalah, where untuk membatasi record/baris
sedangkan HAVING untuk membatasi hasil agregat.
!
JOIN

- Table Parent & Table Child


- INNER JOIN, LEFT JOIN, RIGHT JOIN
FORMAT JOIN TABEL

SELECT KOLOM-KOLOM YANG AKAN DITAMPILKAN


FROM TABEL_INDUK
JENIS JOIN TABEL_ANAK ON TABEL_INDUK.KOLOM = TABEL_ANAK.KOLOM

1. Tabel induk adalah table yang akan dilengkapi, table anak adalah table yang melengkapi
2. Kolom yang merelasikan table
3. Jenis join, INNER (ada di kedua table), LEFT (semua yg ada di table induk), RIGHT (semua yg
ada ditabel anak)
4. Kolom yang ditampilkan dilengkapi dengan nama table (nama_table.kolom)
Contoh, menampilkan data
dari table pembelian dan
dilengkapi dengan nama
barang dari table barang. Data
yang ditampilkan adalah data
yang ada di kedua tabel

SELECT pembelian.no_beli, pembelian.tgl_beli,pembelian.kode_barang,


data_barang.nama_barang, pembelian.unit, pembelian.harga
FROM pembelian
INNER JOIN data_barang on pembelian.kode_barang = data_barang.kode_barang
Contoh, menampilkan data
dari table barang
(kode_barang, nama_barang)
dan dilengkapi dengan data
pembeliannya (no_beli,
tgl_beli, unit, dan harga).
Data yang ditampilkan adalah
data yang ada di kedua tabel

SELECT data_barang.kode_barang, data_barang.nama_barang, pembelian.no_beli,


pembelian.tgl_beli, pembelian.unit, pembelian.harga
FROM data_barang
INNER JOIN pembelian ON data_barang.kode_barang = pembelian.kode_barang
Contoh, menampilkan data
dari table barang
(kode_barang, nama_barang)
dan dilengkapi dengan data
pembeliannya (no_beli,
tgl_beli, unit, dan harga).
Tampilkan semua data barang
walaupun tidak memiliki
transaksi.

SELECT data_barang.kode_barang, data_barang.nama_barang, pembelian.no_beli,


pembelian.tgl_beli, pembelian.unit, pembelian.harga
FROM data_barang
LEFT JOIN pembelian ON data_barang.kode_barang = pembelian.kode_barang
Penanganan Nilai Null

Fungsi IfNull
SELECT data_barang.kode_barang,
data_barang.nama_barang,
pembelian.unit
FROM data_barang
LEFT JOIN pembelian
ON data_barang.kode_barang = pembelian.kode_barang

Query di atas menampilkan seluruh data dari table


data_barang dilengkapi dengan unit dibeli dari table
pembelian.

Salah satu kode barang (TNR) tidak memiliki record di


table pembelian, jadi unit hanya ditampilkan NULL
SELECT data_barang.kode_barang, data_barang.nama_barang,
data_barang.saldo_awal,
SUM(pembelian.unit) AS totaldibeli
FROM data_barang
LEFT JOIN pembelian
ON data_barang.kode_barang = pembelian.kode_barang
GROUP BY kode_barang

Hasil agregat (rekepitulasi) pun


demikian, oleh karena unit
pembelian bernilai NULL maka
hasil rekapitulasi pun bernilai NULL
SELECT data_barang.kode_barang, data_barang.nama_barang, data_barang.saldo_awal,
SUM(pembelian.unit) AS totaldibeli,
data_barang.saldo_awal + SUM(pembelian.unit) AS saldo_akhir
FROM data_barang
LEFT JOIN pembelian ON data_barang.kode_barang = pembelian.kode_barang
GROUP BY kode_barang
SELECT data_barang.kode_barang,
data_barang.nama_barang,
IFNULL(pembelian.unit , 0) AS unit
FROM data_barang
LEFT JOIN pembelian
ON data_barang.kode_barang = pembelian.kode_barang
SELECT data_barang.kode_barang, data_barang.nama_barang,
data_barang.saldo_awal,
SUM(IFNULL(pembelian.unit,0)) AS totaldibeli
FROM data_barang
LEFT JOIN pembelian
ON data_barang.kode_barang = pembelian.kode_barang
GROUP BY kode_barang
SELECT data_barang.kode_barang, data_barang.nama_barang,
data_barang.saldo_awal,
SUM(IFNULL(pembelian.unit,0)) AS totaldibeli,
SUM(IFNULL(pembelian.unit,0)) + data_barang.saldo_awal AS saldo_akhir
FROM data_barang
LEFT JOIN pembelian
ON data_barang.kode_barang = pembelian.kode_barang
GROUP BY kode_barang
Pembuatan View
VIEW merupakan sintax SQL yang disimpan. Oleh karena view merupakan sintax SQL yang
disimpan, maka view dapat digunakan setiap saat tanpa mengulangi proses pengetikan
sintax. Hasil view menyerupai sebuah table dapat dioperasikan (select) sebagaimana
layaknya sebuah table.

Menyimpan sintax dan menjadikan view biasanya digunakan jika dalam sintax terdapat
formulasi yang frekuensi pengulangan penulisannya sangat tinggi.
SELECT data_barang.kode_barang, data_barang.nama_barang,
data_barang.saldo_awal,
SUM(IFNULL(pembelian.unit,0)) AS totaldibeli,
SUM(IFNULL(pembelian.unit,0)) + data_barang.saldo_awal AS saldo_akhir,
SUM(IFNULL(pembelian.unit,0)) * 1.1 AS prediksi_beli,
(SUM(IFNULL(pembelian.unit,0)) * 1.1) + data_barang.saldo_awal AS prediksi_saldo_akhir
FROM data_barang
LEFT JOIN pembelian
ON data_barang.kode_barang = pembelian.kode_barang
GROUP BY kode_barang

SUM(IFNULL(pembelian.unit,0))
Diulang berulang kali
1. Jalan perintah berikut (membuat rekap/agregat jumlah):

SELECT data_barang.kode_barang,
SUM(IFNULL(pembelian.unit,0)) AS totaldibeli
FROM data_barang
LEFT JOIN pembelian
ON data_barang.kode_barang = pembelian.kode_barang
GROUP BY kode_barang

2. Klik create view


3. Isi VIEW name (contoh, rekap_pembelian)
4. Klik Go

Object bertambah, view


rekap_pembelian
Object VIEW dapat diseleksi sebagaimana sebuah table tetapi tidak dapat melakukan
proses penambahan maupun penghapusan record

SELECT *
FROM rekap_pembelian
SELECT data_barang.kode_barang, data_barang.nama_barang, data_barang.saldo_awal,
rekap_pembelian.totaldibeli,
rekap_pembelian.totaldibeli + data_barang.saldo_awal AS saldo_akhir
FROM data_barang
INNER JOIN rekap_pembelian
ON data_barang.kode_barang = rekap_pembelian.kode_barang

SELECT data_barang.kode_barang, data_barang.nama_barang, data_barang.saldo_awal,


SUM(IFNULL(pembelian.unit,0)) AS totaldibeli,
SUM(IFNULL(pembelian.unit,0)) + data_barang.saldo_awal AS saldo_akhir
FROM data_barang
LEFT JOIN pembelian
ON data_barang.kode_barang = pembelian.kode_barang
GROUP BY kode_barang
SELECT data_barang.kode_barang, data_barang.nama_barang,
data_barang.saldo_awal, rekap_pembelian.totaldibeli,
rekap_pembelian.totaldibeli + data_barang.saldo_awal AS saldo_akhir,
rekap_pembelian.totaldibeli * 1.1 AS prediksi_beli,
(rekap_pembelian.totaldibeli * 1.1) + data_barang.saldo_awal AS prediksi_saldo_akhir
FROM data_barang
INNER JOIN rekap_pembelian ON data_barang.kode_barang = rekap_pembelian.kode_barang

SELECT data_barang.kode_barang, data_barang.nama_barang,


data_barang.saldo_awal,
SUM(IFNULL(pembelian.unit,0)) AS totaldibeli,
SUM(IFNULL(pembelian.unit,0)) + data_barang.saldo_awal AS saldo_akhir,
SUM(IFNULL(pembelian.unit,0)) * 1.1 AS prediksi_beli,
(SUM(IFNULL(pembelian.unit,0)) * 1.1) + data_barang.saldo_awal AS prediksi_saldo_akhir
FROM data_barang
LEFT JOIN pembelian
ON data_barang.kode_barang = pembelian.kode_barang
GROUP BY kode_barang

You might also like