Thursday, June 23, 2016

SBD Accessing Data in Multiple Tables

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 barangnama 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

Download jawaban.

No comments:

Post a Comment

Cracktoon Production (Editing Video)

Teguh Yulianto 5140411372 KWU Menerima jasa edit video (Vlog, Youtube, Trafeller) Video Editing Langkah-lang...