LABSHEET 4
QUERY
RELASI
(Accessing
Data in Multiple Tables)
Query
Relasi digunakan untuk mengakses satu atau lebih tabel dalam suatu database
dalam waktu bersamaan. Perintah query relasi bisa dilakukan dengan 2 macam
perintah, yaitu WHERE-AND dan JOIN.
1.
WHERE-AND
Perintah query WHERE-AND biasa disebut juga
Join Without Join Statement.
Sintak umum:
SELECT
nama_tabel1.nama_field1, nama_tabel2.nama_field2 FROM nama_tabel1, nama_tabel2 WHERE
nama_tabel1.key=nama_tabel2.key AND ‘kondisi’ ;
|
Contoh:
Menampilkan nama pelanggan yang melakukan transaksi pembelian pada
tanggal 28 Februari 2016
SELECT
transaksi.tgl_transaksi, pelanggan.nama FROM transaksi,pelanggan
WHERE transaksi.id_pelanggan
= pelanggan.id_pelanggan
AND transaksi.tgl_transaksi='2016-02-28'
|
Hasil
2.
JOIN
a.
INNER
JOIN
INNER JOIN merupakan jenis join yang paling
umum digunakan untuk menampilkan record dari beberapa tabel. Perbedaan perintah
tersebut terletak pada relasinya yaitu ON (untuk JOIN) dan AND (untuk
WHERE-AND).
Sintak Umum:
SELECT
nama_tabel1.nama_field1, nama_tabel2.nama_field2 FROM nama_tabel1 INNER JOIN nama_tabel2 ON
nama_tabel1.key=nama_tabel2.key
|
Contoh:
Menampilkan nama pelanggan yang melakukan transaksi pembelian pada
tanggal 28 Februari 2016
SELECT transaksi.tgl_transaksi, pelanggan.nama FROM transaksi INNERJOIN
pelanggan ON transaksi.id_pelanggan = pelanggan.id_pelanggan AND
transaksi.tgl_transaksi='2016-02-28'
|
Hasil
b.
OUTER
JOIN
OUTER JOIN menghasilkan record yang ada maupun tidak ada
pasangannya pada tabel lain.
1) LEFT JOIN
LEFT JOIN digunakan untuk mengembalikan semua
elemen data set A, terlepas dari apakah nilai kunci ada dalam data set B.
Sintak Umum:
SELECT
nama_tabel1.nama_field1, nama_tabel2.nama_field2 FROM nama_tabel1 LEFT JOIN nama_tabel2 ON
nama_tabel1.key=nama_tabel2.key
|
CONTOH:
select barang.nama,suplier.nama from barang LEFTJOIN
suplier ON barang.id_suplier=suplier.id_suplier
|
Hasil
2) RIGHT JOIN
RIGHT JOIN digunakan untuk mengembalikan semua
elemen data set B, terlepas dari apakah nilai kunci ada dalam data set A.
Sintak Umum:
SELECT
nama_tabel1.nama_field1, nama_tabel2.nama_field2 FROM nama_tabel1 RIGHT JOIN nama_tabel2 ON
nama_tabel1.key=nama_tabel2.key
|
CONTOH:
select barang.nama,suplier.nama from barang RIGHTJOIN
suplier ON barang.id_suplier=suplier.id_suplier
|
Hasil:
c.
FULL
JOIN
FULL JOIN
mengembalikan semua data dari set A maupun set B meskipun tidak ada
pasangannya.
Sintak Umum:
(SELECT
nama_tabel1.nama_field1, nama_tabel2.nama_field2 FROM nama_tabel1 cross JOIN nama_tabel2 ON
nama_tabel1.key=nama_tabel2.key WHERE key1=’value1’)
|
CONTOH:
SELECT transaksi.tgl_transaksi,
pelanggan.nama FROM
transaksi FULLJOIN
pelanggan ON transaksi.id_pelanggan
= pelanggan.id_pelanggan
d.
UNION
JOIN
UNION JOIN
digunakan untuk penyederhanaan perintah persyaratan OR yang bertingkat. UNION
dapat dikatakan sebagai printah untuk menggabungkan hasil query sql yang
fungsinya sama dengan perintah OR
Sintak Umum:
(SELECT
nama_tabel1.nama_field1, nama_tabel2.nama_field2 FROM nama_tabel1 JOIN nama_tabel2 ON
nama_tabel1.key=nama_tabel2.key WHERE key1=’value1’)
UNION
(SELECT
nama_tabel1.nama_field1, nama_tabel2.nama_field2 FROM nama_tabel1 JOIN nama_tabel2 ON
nama_tabel1.key=nama_tabel2.key WHERE key2=’value2’)
|
CONTOH:
SELECT transaksi.tgl_transaksi, karyawan.nama from transaksi JOIN
karyawan ON transaksi.id_karyawan=karyawan.id_karyawan
WHERE tgl_transaksi='2016-02-28'
UNION
SELECT transaksi.tgl_transaksi, karyawan.nama from transaksi JOIN
karyawan ON transaksi.id_karyawan=karyawan.id_karyawan
WHERE tgl_transaksi='2016-03-01'
|
Hasil:
PENGGUNAAN JOIN UNTUK RELASI LEBIH
DARI 2 TABEL
CONTOH:
Tampilkan kode transaksi dan nama barang yang terjual pada tanggal 28
Februari 2016
Perhatikan tabel yang berkaitan dengan pertanyaan tersebut.
Kode transaksi terdapat di tabel transaksi, nama barang di tabel barang,
tanggal transaksi pada tabel transaksi. Sedangkan tabel transaksi dan tabel barang
tidak berhubungan secara langsung, tapi melewati tabel detail transaksi. Untuk
itu JOIN melibatkan tabel detail transaksi
Sintak:
select barang.nama from barang INNERJOIN
detail_transaksi ON barang.id_barang =
detail_transaksi.id_barang INNERJOIN transaksi ON
detail_transaksi.kode_transaksi=transaksi.kode_transaksi
WHERE transaksi.tgl_transaksi='2016-02-29'
|
Hasil:
TUGAS
Perhatikan
relasi pada database untuk memudahkan mengerjakan tugas
1.
Tampilkan nama barang
dan nama jenis barangnya
2.
Tampilkan nama barang
dan jumlah pembelian masing-masing
barang pada transaksi dengan kode TRS003
3.
Tampilkan nama suplier,
nama barang, dan harganya untuk barang dengan harga diatas 20000
4.
Tampilkan nama barang, nama
jenis barang, nama suplier, dan harga barang untuk barang yang berjenis makanan dan harganya lebih dari 5000
5.
Tampilkan nama barang,
nama suplier, harga barang, persen diskon,
diskon dalam rupiahdan harga barang
setelah didiskon dari barang yang memiliki diskon
6.
Tampilkan nama
pelanggan, tanggal transaksi,
dan nama barang yang dibeli pada tanggal 28 Februari 2016
GUNAKAN APLIKASI UC BROSWER UNTUK KESTABILAN DALAM BROWSINGMU.
No comments:
Post a Comment