Kamis, 31 Mei 2012

Cross Join

Tabel DETAIL_BUKU :
KODE_BUKU JUDUL ID_PENGARANG HARGA
BK01 BUDIDAYA IKAN P001 15000
BK02 BUDIDAYA CACING P001 25000
BK03 PENGOLAHAN LIMBAH P003 17500
BK04 MERAWAT TANAMAN P002 10000
BK05 PERAKITAN PC P004 35000
BK06 BELAJAR QUERY P004 55000
XX01 BELAJAR JAVA PR06 75000

Tabel PENGARANG :
ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
P002 DIANA NASUTION MEDAN
P003 FAJAR NURDIANTORO PEKANBARU
P004 NURDIANSYAH MALUKU
P005 SUGALI SEMARANG
P006 BUDIYONO NGANJUK

Query Cross Join :
SELECT
    A.NAMA, B.JUDUL, B.HARGA
FROM
    PENGARANG A
    CROSS JOIN DETAIL_BUKU B


Hasil Query diatas :
NAMA JUDUL HARGA
WISNU ARDIHERDIYAN BUDIDAYA IKAN 15000
DIANA NASUTION BUDIDAYA IKAN 15000
FAJAR NURDIANTORO BUDIDAYA IKAN 15000
NURDIANSYAH BUDIDAYA IKAN 15000
SUGALI BUDIDAYA IKAN 15000
BUDIYONO BUDIDAYA IKAN 15000
WISNU ARDIHERDIYAN BUDIDAYA CACING 25000
DIANA NASUTION BUDIDAYA CACING 25000
FAJAR NURDIANTORO BUDIDAYA CACING 25000
NURDIANSYAH BUDIDAYA CACING 25000
SUGALI BUDIDAYA CACING 25000
BUDIYONO BUDIDAYA CACING 25000
WISNU ARDIHERDIYAN PENGOLAHAN LIMBAH 17500
DIANA NASUTION PENGOLAHAN LIMBAH 17500
FAJAR NURDIANTORO PENGOLAHAN LIMBAH 17500
NURDIANSYAH PENGOLAHAN LIMBAH 17500
SUGALI PENGOLAHAN LIMBAH 17500
BUDIYONO PENGOLAHAN LIMBAH 17500
WISNU ARDIHERDIYAN MERAWAT TANAMAN 10000
DIANA NASUTION MERAWAT TANAMAN 10000
FAJAR NURDIANTORO MERAWAT TANAMAN 10000
NURDIANSYAH MERAWAT TANAMAN 10000
SUGALI MERAWAT TANAMAN 10000
BUDIYONO MERAWAT TANAMAN 10000
WISNU ARDIHERDIYAN PERAKITAN PC 35000
DIANA NASUTION PERAKITAN PC 35000
FAJAR NURDIANTORO PERAKITAN PC 35000
NURDIANSYAH PERAKITAN PC 35000
SUGALI PERAKITAN PC 35000
BUDIYONO PERAKITAN PC 35000
WISNU ARDIHERDIYAN BELAJAR QUERY 55000
DIANA NASUTION BELAJAR QUERY 55000
FAJAR NURDIANTORO BELAJAR QUERY 55000
NURDIANSYAH BELAJAR QUERY 55000
SUGALI BELAJAR QUERY 55000
BUDIYONO BELAJAR QUERY 55000
WISNU ARDIHERDIYAN BELAJAR JAVA 75000
DIANA NASUTION BELAJAR JAVA 75000
FAJAR NURDIANTORO BELAJAR JAVA 75000
NURDIANSYAH BELAJAR JAVA 75000
SUGALI BELAJAR JAVA 75000
BUDIYONO BELAJAR JAVA 75000

Query CROSS JOIN tidak menggunakan ON seperti halnya query JOIN yang lainnya.Cross join akan menampilkan isi tabel sisi kiri akan memiliki semua data disisi kanan. Jadi banyaknya rows di cross join sama dengan jumlah rows di sisi kiri dikalikan jumlah rows disisi kanan. Dalam contoh diatas 6 x 7 = 42 rows.

Download Video Tutorial


Kamis, 24 Mei 2012

Full Join

Tabel DETAIL_BUKU :
KODE_BUKU JUDUL ID_PENGARANG HARGA
BK01 BUDIDAYA IKAN P001 15000
BK02 BUDIDAYA CACING P001 25000
BK03 PENGOLAHAN LIMBAH P003 17500
BK04 MERAWAT TANAMAN P002 10000
BK05 PERAKITAN PC P004 35000
BK06 BELAJAR QUERY P004 55000
XX01 BELAJAR JAVA PR06 75000

Tabel PENGARANG :
ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
P002 DIANA NASUTION MEDAN
P003 FAJAR NURDIANTORO PEKANBARU
P004 NURDIANSYAH MALUKU
P005 SUGALI SEMARANG
P006 BUDIYONO NGANJUK

Query Full Join :
SELECT
    A.NAMA, B.JUDUL, B.HARGA
FROM
    PENGARANG A
    FULL JOIN DETAIL_BUKU B ON (A.ID_PENGARANG = B.ID_PENGARANG)


Hasil Query diatas :

NAMA JUDUL HARGA
WISNU ARDIHERDIYAN BUDIDAYA IKAN 15000
WISNU ARDIHERDIYAN BUDIDAYA CACING 25000
DIANA NASUTION MERAWAT TANAMAN 10000
FAJAR NURDIANTORO PENGOLAHAN LIMBAH 17500
NURDIANSYAH PERAKITAN PC 35000
NURDIANSYAH BELAJAR QUERY 55000
SUGALI (NULL) (NULL)
BUDIYONO (NULL) (NULL)
(NULL) BELAJAR JAVA 75000

Query FULL JOIN akan menampilkan semua isi tabel sisi kiri dan kanan walaupun data di pasangan joinnya yang berada disisi lawannnya memiliki nilai null.

*tidak berlaku di MYSQL

Download Video Tutorial


Right Join

Tabel DETAIL_BUKU :
KODE_BUKU JUDUL ID_PENGARANG HARGA
BK01 BUDIDAYA IKAN P001 15000
BK02 BUDIDAYA CACING P001 25000
BK03 PENGOLAHAN LIMBAH P003 17500
BK04 MERAWAT TANAMAN P002 10000
BK05 PERAKITAN PC P004 35000
BK06 BELAJAR QUERY P004 55000
XX01 BELAJAR JAVA PR06 75000

Tabel PENGARANG :
ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
P002 DIANA NASUTION MEDAN
P003 FAJAR NURDIANTORO PEKANBARU
P004 NURDIANSYAH MALUKU
P005 SUGALI SEMARANG
P006 BUDIYONO NGANJUK

Query Right Join :
SELECT
    A.NAMA, B.JUDUL, B.HARGA
FROM
    PENGARANG A
    RIGHT JOIN DETAIL_BUKU B ON (A.ID_PENGARANG = B.ID_PENGARANG)


Hasil Query diatas :
NAMA JUDUL HARGA
WISNU ARDIHERDIYAN BUDIDAYA IKAN 15000
WISNU ARDIHERDIYAN BUDIDAYA CACING 25000
FAJAR NURDIANTORO PENGOLAHAN LIMBAH 17500
DIANA NASUTION MERAWAT TANAMAN 10000
NURDIANSYAH PERAKITAN PC 35000
NURDIANSYAH BELAJAR QUERY 55000
(NULL) BELAJAR JAVA 75000

Query RIGHT JOIN, memprioritaskan sisi kanan , dalam hal ini tabel detail_buku lebih diutamakan, jadi field yang diambil dari tabel b (detail_buku) tetap dimunculkan sekalipun di tabel a (pengarang) mendapatkan nilai null.

Download Video Tutorial


Left Join

Tabel DETAIL_BUKU :

KODE_BUKU JUDUL ID_PENGARANG HARGA
BK01 BUDIDAYA IKAN P001 15000
BK02 BUDIDAYA CACING P001 25000
BK03 PENGOLAHAN LIMBAH P003 17500
BK04 MERAWAT TANAMAN P002 10000
BK05 PERAKITAN PC P004 35000
BK06 BELAJAR QUERY P004 55000

Tabel PENGARANG :

ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
P002 DIANA NASUTION MEDAN
P003 FAJAR NURDIANTORO PEKANBARU
P004 NURDIANSYAH MALUKU
P005 SUGALI SEMARANG
P006 BUDIYONO NGANJUK

Query Left Join :
SELECT
    A.NAMA, B.JUDUL, B.HARGA
FROM
    PENGARANG A
    LEFT JOIN DETAIL_BUKU B ON (A.ID_PENGARANG = B.ID_PENGARANG)


Hasil Query diatas :
NAMA JUDUL HARGA
WISNU ARDIHERDIYAN BUDIDAYA IKAN 15000
WISNU ARDIHERDIYAN BUDIDAYA CACING 25000
DIANA NASUTION MERAWAT TANAMAN 10000
FAJAR NURDIANTORO PENGOLAHAN LIMBAH 17500
NURDIANSYAH PERAKITAN PC 35000
NURDIANSYAH BELAJAR QUERY 55000
SUGALI (NULL) (NULL)
BUDIYONO (NULL) (NULL)

Query LEFT JOIN, memprioritaskan sisi kiri, dalam hal ini tabel pengarang lebih diutamakan, jadi field yang diambil dari tabel a (pengarang) tetap dimunculkan sekalipun di tabel b (detail_buku) mendapatkan nilai null.

Download Video Tutorial


Inner Join

Tabel DETAIL_BUKU :

KODE_BUKU JUDUL ID_PENGARANG HARGA
BK01 BUDIDAYA IKAN P001 15000
BK02 BUDIDAYA CACING P001 25000
BK03 PENGOLAHAN LIMBAH P003 17500
BK04 MERAWAT TANAMAN P002 10000
BK05 PERAKITAN PC P004 35000
BK06 BELAJAR QUERY P004 55000

Tabel PENGARANG :
ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
P002 DIANA NASUTION MEDAN
P003 FAJAR NURDIANTORO PEKANBARU
P004 NURDIANSYAH MALUKU

Query Inner Join :
SELECT
    A.NAMA, B.JUDUL, B.HARGA
FROM
    PENGARANG A
    INNER JOIN DETAIL_BUKU B ON (A.ID_PENGARANG = B.ID_PENGARANG)


Hasil Query diatas :
NAMA JUDUL HARGA
WISNU ARDIHERDIYAN BUDIDAYA IKAN 15000
WISNU ARDIHERDIYAN BUDIDAYA CACING 25000
FAJAR NURDIANTORO PENGOLAHAN LIMBAH 17500
DIANA NASUTION MERAWAT TANAMAN 10000
NURDIANSYAH PERAKITAN PC 35000
NURDIANSYAH BELAJAR QUERY 55000

Query INNER JOIN, menghasilkan output seperti halnya JOIN biasa.

Download Video Tutorial


Query Join (Inner Join)

Query INNER JOIN menghasilkan output yang sama dengan query JOIN biasa, jadi di contoh dibawah ini saya akan menulis JOIN saja biar cepat.

Tabel DETAIL_BUKU :
KODE_BUKU JUDUL ID_PENGARANG HARGA
BK01 BUDIDAYA IKAN P001 15000
BK02 BUDIDAYA CACING P001 25000
BK03 PENGOLAHAN LIMBAH P003 17500
BK04 MERAWAT TANAMAN P002 10000
BK05 PERAKITAN PC P004 35000
BK06 BELAJAR QUERY P004 55000

Tabel PENGARANG :
ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
P002 DIANA NASUTION MEDAN
P003 FAJAR NURDIANTORO PEKANBARU
P004 NURDIANSYAH MALUKU

Query Join :
SELECT
    A.NAMA, B.JUDUL, B.HARGA
FROM
    PENGARANG A
    JOIN DETAIL_BUKU B ON (A.ID_PENGARANG = B.ID_PENGARANG)


Hasil Query diatas :
NAMA JUDUL HARGA
WISNU ARDIHERDIYAN BUDIDAYA IKAN 15000
WISNU ARDIHERDIYAN BUDIDAYA CACING 25000
FAJAR NURDIANTORO PENGOLAHAN LIMBAH 17500
DIANA NASUTION MERAWAT TANAMAN 10000
NURDIANSYAH PERAKITAN PC 35000
NURDIANSYAH BELAJAR QUERY 55000

Query JOIN, digunakan untuk mengambil data dalam database yang mempunyai relationships. Dari hasil relationships yang menghasilkan nilai null tidak ditampilkan.
Seperti halnya query JOIN, query INNER JOIN menampilkan output yang sama dengan query JOIN.

Download Video Tutorial


Jumat, 18 Mei 2012

Limit di Oracle

Jika di MySQL kita biasa menggunakan limit untuk membatasi jumlah row yang muncul, namun di Oracle limit tidak ada. Nah kalau kita ingin menggunakan limit di Oracle, kita dapat menggunakan rownum.

Contoh di MySQL :
select
    *
from 
    t_karyawan
limit 100


Contoh di Oracle:
select
    *
from 
    t_karyawan
where
    rownum <= 100