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.

Sunday, June 5, 2016

SQLserver QUERY KONDISI DAN QUERY FUNGSI

A.     QUERY FUNGSI
Query fungsi adalah perintah query yang digunakan untuk memanipulasi suatu data yang akan ditampilkan, antara lain DATE, Aggregate, Aritmatika.
1.      DATE
Date menunjukkan tanggal. Format tanggal yang biasa digunakanyyyy-mm-dd HH:ii:ss.
dengan kata lain:
tahun:bulan:tanggal jam:menit:detik
Query untuk menunjukkan tanggal saat ini:

2.      Aggregate
Fungsi Aggregate digunakan untuk menghasilkan perhitungan secara cepat. Yang termasuk dalam fungsi aggregate antara lain SUM, MIN, MAX, AVG (Average), dan COUNT.

Fungsi-fungsi yang bisa digunakan dalam SQL adalah :
MAX à untuk mencari nilai maksimal dari suatu kolom
MIN à untuk mencari nilai minimal dari suatu kolom
AVG à untuk mencari nilai rata-rata
SUM à untuk mencari nilai jumlah
COUNT à untuk mencari nilai cacah

3.      Aritmatika
Fungsi aritmatika digunakan untuk menghasilkan perhitungan yang diambil dari record atau perhitungan tersendiri. Yang termasuk dalam fungsi aritmatika antara lain  penjumlahan (+), pengurangan (-), perkalian (*), pembagian (/), pembagian sisa (%).
Contoh penggunaan:







B.     QUERY KONDISI
Query kondisi digunakan untuk menampilkan sesuai dengan yang diinginkan. Ada beberapa query kondisi antara lain LIKE, ORDER BY, ASC/DESC, GROUP BY
1.      LIKE
Fungsi LIKE sama seperti fungsi (=).


Terdapat 3 cara peletakan tanda tersebut dan masing-masing mempunyai makna yang berbeda.  

a)     %like%
Tanda persen (%) yang diletakkan didepan dan dibelakang suatu kata atau huruf untuk kriteria tertentu, artinya menampilkan data (record) yang mengandung kata “like”.
b)     %like
Tanda persen (%) yang diletakkan didepan suatu kata atau huruf untuk kriteria tertentu, artinya menampilkan data (record) yang dibelakangnya mengandung kata “like” .
c)     like%
Tanda persen (%) yang diletakkan dibelakang suatu kata atau huruf untuk kriteria tertentu, artinya menampilkan data (record) yang didepannya mengandung kata “like”.

2.      ORDER BY
Fungsi ORDER BY digunakan untuk mengurutkan sesuai yang diinginkan
Contoh penggunaan :



3.      ASC / DESC
Ada 2 perintah dalam pengurutan:
a)    ASC (Ascending)
b)    DESC (Descending).
Jika menggunakan perintah ORDER BY (pengurutan) maka secara default akan diurutkan secara Ascending.
Contoh penggunaan :


4.      GROUP BY / HAVING
Fungsi GROUP BY digunakan untuk mengelompokkan berdasarkan persamaan isi datanya.
Contoh penggunaan :

Jika akan menampilkan data persamaan dari fungsi agregat, maka harus ditambahkan HAVING, karena WHERE tidak dapat digunakan untuk menampilkan persamaan data hasil fungsi agregat.
Contoh penggunaan:


 LATIHAN
1.      Menampilkan data pelanggan yang memiliki nama belakang danang
SELECT*FROM pelanggan WHERE nama LIKE'%danang'

2.      Menampilkan data pelanggan yang memiliki nama depan danang
SELECT*FROM pelanggan WHERE nama LIKE'danang%'

3.      Menampilkan data pelanggan yang namanya mengandung kata ‘ana’
SELECT*FROM pelanggan WHERE nama LIKE'%ana%'

4.      Menampilkan data pelanggan urut berdasarkan nama (Ascending)
SELECT*FROM pelanggan ORDERBY nama
atau
SELECT*FROM pelanggan ORDERBY nama ASC


5.      Menampilkan data pelanggan urut berdasarkan nama (Descending)
SELECT*FROM pelanggan ORDERBY nama DESC

6.      Menampilkan kelompok jenis pelanggan apa saja yang ada pada data pelanggan
SELECT jenis_pelanggan FROM pelanggan GROUPBY jenis_pelanggan

7.      Menampilkan pembelian barang kode transaksi dan total harga pembelian dengan total harga pembelian diatas 20000
SELECT kode_transaksi,SUM(total)FROM detail_transaksi GROUPBY kode_transaksi HAVINGSUM(total)>20000

atau bisa ditambahkan AS untuk memberi nama tabel total harga
SELECT kode_transaksi,SUM(total)AS total_harga FROM detail_transaksi GROUPBY kode_transaksi HAVINGSUM(total)>20000

..

Cracktoon Production (Editing Video)

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