Selamat Datang diblog Saya

Senin, 24 November 2014


A.        Pengertian Join Pada MYSQL

JOIN dalam mysql adalah Salah satu fitur SQL yang paling berguna untuk menggabungkan table dengan query – query yang mendapatkan kembali data. Join adalah salah satu dari beberapa operasi paling penting yang dapat anda lakukan dengan menggunakan statement SELECT.

INNER JOIN adalah Join yang menciptakan table hasil baru dengan menggabungkan nilai nilai kolom dari dua table ( A dan B ) didasarkan pada join predikat  SELF JOIN adalah Join yang bergabung dengan sebuah table ke dirinya sendiri .

NATURAL JOIN adalah Join yang dimana dilakukan dengan menggunakan wildcard ( SELECT * ) untuk suatu table dan sub-kumpulan eksplit dan field untuk semua table lainya.

OUTER JOIN adalah sebuah join yang tidak memerlukan setiap record dalam dua table bergabung untuk memiliki catatan cocok . table bergabung dengan mempertahankan setiap catatan – bahkan jika tidak ada catatan yang cocok lainya ada. 
Luar bergabung membagi lebih lanjut lebih ke kiri luar bergabung , kanan luar bergabung , dan penuh luar bergabung , tergantung pada table (s) mempertahankan satu baris dari ( kiri, kanan atau keduanya )

a.         INNER JOIN 
SELECT supplier.Nama, Barang.Nama, Barang.Harga FROM supplier INNER JOIN Barang ON supplier.KodeSup = Barang.KodeSup

b.         SELF JOIN 
CONTOH : SELECT c1.KodeCus, c1.Nama, c1.Kontak FROM Customer c1, Customer c2 WHERE c1.Nama = c2.Nama AND c2.Kontak='Jim Jones'

c.         NATURAL JOIN
CONTOH : SELECT Customer.KodeCus, Penjualan.NoFaktur FROM Customer INNER JOIN Penjualan ON Customer.KodeCus = Penjualan.KodeCus

B.        Listing dan Logika Program

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE7SbbTHuhwtMvFQ64OzPAa-U4CBBIVvwZO1ZNFdPXBlPq38LXHFkGCswF4F518C1kpy2x2Kok64HYkj2hxZp2nGL7nMgJjzG6QPs7Xhpa533Ocjwn4Qaxlq6OTKcOH-d-qbpLablh0s8m/s320/1.jpg
Pada kali ini saya akan menjelaskan laporan yang saya buat. Karena sedang belajar pengenalan basis data maka dari itu kita akan membuat database dengan menggunakan xampp. Program xampp ini digunakan untuk membuat database. Pada gambar disamping ini, pertama – pertama kita mengaktifkan MySql. Setelah sudah aktif akan menampilkan layar seperti yang ada gambar diatas. Setelah MySql sudah aktif, kita buka CMD atau Command Prompt. 
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZJer02tRc0yDMriT1FNoxy-Bt3RNcHRmCnUVA6eKK-zOgI_TrfGZuCCyEvtDo92aAAzto5lhZz-AYwoFNuZpwDKVgmzDCTMpMqdwyKQnpZ-Z0yiqL8vjynaHqQ-S0jBUJ3sSyHDsvM2cd/s400/1.PNGPada Command Prompt kita mula – mula menulis perintah sebagai gambar yang diatas. Pada perintah ini, menunjukkan kalau kita akan membuat direktori di xampp menggunakan MySql. Setelah itu kita akan mengetikkan perintah “ MySql –u root “.  Pada langkah – langkah berikutnya kita akan membuat suatu database. Disini saya menamakan databasenya adalah “ sbd3 “. Gambar dapat dilihat di samping ini. Perintah untuk membuat database adalah “ create ”. 
Setelah itu, kita akan membuat dua buah. 

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYAVD5L4OLAUH8_Jkc2HFS5eHbL2PQ4R4VkF3ud-mDCnhk9_jBTQXwWEz6MWFKyzd4sOv6FF41ws6J1LZM-2x7E1YLm8ZuzBLmlG0RNmoGfaX__huSvZz1KN2eIneFy8dGVMBaTBHMK3cI/s400/tabel1.PNG
Tabel pertama diberi nama mhs dan table kedua diberi nama mhsbio. Pada tabel pertama kita membuat field atau atribut npm yang sebagai primary key, nama dan kelas. Setelah itu table pertama akan kita input data – data yang ingin dimasukkan dengan perintah insert. Data – data tersebut dapa dilihat pada gambar diatas.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlmsm5q93y_fQNtgI3yDnhRYFA0o8tHGB-su8o5MULwdm51iwkpdb6d5VT4DKBIjDSMfegtxt2dbipwy50ruwD8y1oebz_LXjD5ePilZj4NllrVtZnfluvQNv3fyRwY31RuNovsv-yCLb1/s400/tabel2.PNGSetelah table mhs sudah dilanjutkan dengan membuat table mhsbio2. Pada table mhs2 ini kita membuat field atau atribut npm yang sama seperti table mhsbio yang sebagai primary key, alamat dan telp. Data tersebut juga kita input yang kita inginkan. Hanya saja pada table mhsbio2 ini kita menginput npm alamat dari mahasiswa tersebut dan telp – nya. Data – data yang diinput dapat dilihat dari gambar disamping ini. Setelah itu hasil dari kedua inputan akan ditampilkan digambar output dari program tersebut.




C.        Output dari Program
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9p_d2sz_CJk9q_emRfbqWLHU0pTQ5QAFA7H5RgufBMp7CDjI344TpYVY_827OujlZyFOt_YZYhfv7ns0gyefl8HuofiHj-64T3N9bqa9qxFf-DMtzDTlouREqS_7c3tRpoDnlEfJoW65o/s400/output1.PNG
Pada output yang ditampilkan ini masih terdapat dua kolom npm. Perintah untuk menampilkan ini dengan select yaitu memilih table mhsbio untuk digabung dengan mhsbio2 disebelah kiri. 




https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqzF4vZfdhp1LR0kLWUmj2d41pSuMREK1LU1Ig_XrN8kgDbAmy_wnk_NNdal8-TjfmExzyUAke692hPRDR8yQehVWLdplqKNMeAuyUtbAUqZeTKgAzONsJS5BQFdU5l_FUKIvFzdru0gkU/s400/join.PNG

Pada output kedua ini, menampilkan output sebagai gambar disamping ini. Pada perintah tersebut hanya diperintahkan satu kolom npm dan hanya satu nomor telp setiap satu mahasiswa. Maka dari itu, output tersebut seperti gambar disamping ini.

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZd6jAbbuxULF_NmT7o0x3Z-Mg3SmBnEKrTblTNEIhe-4WCmhpwolaLbsd5RbNPiNTjwrB2W3cahlDDXTUrpQaQ2LVfN68Tl3P-6L-JLZ-BzGzr8Dtdjmaz9s7DKQgOs6f_7aGBBhxds_u/s400/ouput+sub+query.PNGPada output yang terakhir ini menggunakan sub query. Pada subquery ini sama saja dengan menggunakan join. Akan tetapi pada subquery ini kita dapat mengganti nama kolom yang terdapat pada table. Akan tetapi pada output ini, saya tidak mengganti nama – nama yang ada dikolom tersebut. Gambar dapat dilihat disamping ini. 
MySQL mempunyai kemampuan untuk menggabungkan dua tabel atau lebih guna mendapatkan informasi yang diinginkan. Proses yang dilakukan dengan nama JOIN. Dalam penggabungan dari beberapa tabel (join) ada beberapa hal yang perlu diperhatian, antara lain :
Setiap kolom disebutkan dengan bentuk,
Tabel-tabel yang dilibatkan dalam queri perlu disebutkan dalam Klausa FORM dengan antar tabel dipisah oleh koma.
Kondisi dalam WHERE menetukan macam join yang terbentuk
Join dipakai untuk mencari data dari beberapa tabel berdasarkan hubungan yang logis dari tabel-tabel tersebut. Join menyatakan cara SQL Server memakai data dari sebuah tabel untuk memilih data dari tabel lain. SQL Server dapat menggabungkan tabel-tabel sampai 256 tabel.
Sintax :
Select nama_kolom,nama_kolom,[nama_kolom]
From nama_tabel, [ Cross / Inner / [ Left / Right ] Outer ]
Join nama_tabel On nama_tabel.Ref_nama_kolom
OperatorJoin Nama_tabel.Ref_nama_kolom.
Keterangan :
Nama Kolom : menspesidikasikan nama kolom dari satu atau beberapa table yang    ditampilkan.
Nama_tabel : adalah nama tabel dari tabel yang diambil
Ref.nama_kolom : adalah nama_kolom yang digunakan menggabungkan dua table dengan menggunakan kunci yang umum. Operator Join menspesifikasikan operator yang digunakan untuk menggabungkan tabel.
Contoh:
mysql> select siswa.nim,nama,nilai from nilai,siswa where nilai.nim=siswa.nim;
1
Bentuk umum Join
Select table1.column, table2.column
from table1.table2
where table1.column= table2.column;
Macam-macam bentuk Penggabungan (Join)
Cross Join, Cross Join merupakan bentuk penggabungan yang paling sederhana, tanpa ada kondisi.
Bentuk Umum : SELECT field1,field2 FROM Tabel1 CROSS JOIN tabel2;
Inner Join, hampir sama dengan cross join tetapi diikuti dengan kondisi
Bentuk umum : SELECT Field FROM tabel1 INNER JOIN tabel 2 ON kondisi
mysql> select * from siswa inner join nilai on siswa.nim=nilai.nim;
Straight Join, Straight Join identik dengan inner join tetapi tidak mengenal klausa where
Bentuk umum : SELECT field FROM Tabel1 SATRIGHT JOIN tabel2
Left (Outer Join), Akan menampilkan tabel disebelah kanannya (dalam hal ini tabel nilai) dengan NULL jika tidak terdapat hubungan antara tabel disebelah kiri (dalam hal ini tabel siswa)
Kalo outer join data di suatu tabel akan ditampilkan walaupun tidak ada data yang sama di tabel satunya. Untuk outer join digunakan tanda plus (+)
Bentuk umum : SELECT field FROM tabel1 LEFT JOIN tabel2 ON kondisi
Contoh
mysql> select siswa.nim,nama,nilai from siswa left join nilai on siswa.nim=nilai.nim;
3
Right/outer join, Kebalikan dari left join, jika idak menemukan hubungan dengan tabel disebelah kiri maka akan ditampilkan NULL
Bentuk umum : SELECT field FROM tabel1 RIGHT JOIN tabel2 ON kondisi
Contoh
mysql> select siswa.nim,nama,nilai from siswa right join nilai on siswa.nim=nilai.nim;
4
Full Join, Jenis join terakhir adalah FULL JOIN yang menampilkan semua data dari dua tabel yang dihubungkan meskipun terdapat data yang tidak memiliki pasangan di tabel lainnya.
Ada 2 (dua) tipe utama join, yakni :
EquiJoin
Misal table EMPLOYEES memiliki primary key employee_id, dan memiliki foreign keydepartment_id dimana departement_id ini merupakan primary key dari table yang lain yaitu table DEPARTMENTS. Relasi antara EMPLOYEES dengan DEPARTEMENTS disebut equi-join. Relasi antara dua tabel ditulis dalam klausa WHERE.
2. Non_Equijoin
Relasi antara dua table disebut non-equijoin jika kolom pada table pertama berkorespondensi langsung dengan kolom pada table kedua.
Relasi Join
-         Operasi join melibatkan dua buah relasi dan mengembalikan satu relasi baru sebagai hasil.
-         Biasanya digunakan sebagai ekspresi subquery pada klausa from
-         Kondisi Join – mendefinisikan tuple mana dari dua relasi yang sesuai dan atribut apa yang  ditampilkan pada hasil join.
-         Tipe Join – mendefinisikan bagaimana tuple dari tiap relasi yang tidak memenuhi kondisi diperlakukan.
5
Inner Join
Inner Join adalah sebuah Join yang menghasilkan baris-baris, minimal ada sebuah baris di kedua tabel yang sesuai dengan kondisi Join. Baris-baris yang tidak sesuai dengan sebuah baris dari tabel lain tidak ditampilkan.
Outer Join
Outer Join akan menghasilkan semua data dari sebuah tabel dan membatasi data dari tabel lain . SQL Server mempunyai tiga buah tipe Outer Join yaitu Left, Right dan Full. Semua baris dari tabel sebelah kiri diacu oleh sebuah left outer join, dan sebuah baris dari tabel kanan diacu dengan Right outer join. Kegunaan dari outer join adalah mencari record-record piatu, artinya record yang ada disebuah tabel tetapi tidak ada pasangannya pada pada tabel lain.
-            Left Outer Join, memberikan semua baris table kiri walaupun harga kolom yang terhubung dengan kolom table dikanannya tidak cocok.
-            Right Outer Join, memberikan semua baris table kanan walaupun harga kolom yang terhubung dengan kolom di table kirinya tidak cocok.
-            Full Outer Join, memberikan semua baris table kiri dan kanan walaupun harga kolom yang terhubung tidak cocok satu sama lain.
Revoke dan Grant pada MySQL
1. REVOKE
Revoke merupakan kebalikan dari perintah grant yaitu menghapus atau mencabut kembali izin akses user MySQL yang sebelumnya telah diberikan. Tingkat pilihan yang dapat digunakan juga sama dengan perintah grant sehingga semua izin akses dengan grant dapat dicabut kembali.
Menghapus Akses Penuh
mysql> revoke all on *.* from nm_user@localhost identified by ‘nm_passwd’;
Perintah diatas membuat salah satu user tidak mempunyai izin akses lagi. Meski sudah dicabut aksesnya user tersebut masih dapat login ke database MySQL tapi tidak perlu khawatir karena user tersebut tidak bisa berbuat apa-apa lagi.
Menghapus Akses Database
mysql> revoke all on nm_db.nm_tbl from nm_user@localhost identified by ‘nm_passwd’;

Perintah diatas izin akses user pada tabel tertentu telah dicabut sehingga tidak bisa mengakses kembali.
Menghapus Akses Kolom
mysql> revoke update(nama) on nm_db.nm_tbl from nm_user@localhost identified by ‘nm_passwd’;

Peintah diatas akan mencabut akses untuk kolom yang telah ditentukan sebelumnya.
2. GRANT
Grant merupakan perintah untuk memberikan hak izin akses bagi user di MySQL agar dapat mengakses database, tabel dan kolom. Selain itu juga dapat menambahkan user baru dengan perintah Grant ini. Ada hal yang harus diperhatikan jika melakukan perubahan izin akses pada user MySQL yang masih aktif bekerja tidak langsung bisa menerapkan perubahan meski sudah melakukan flush privileges. Konfigurasi ini berlaku ketika user sudah menutup koneksi kemudian melakukan koneksi kembali.
Izin akses penuh ini digunakan untuk mengakses seluruh database dalam server. Untuk memberikan izin Anda harus terlebih dahulu memilih database mysql dengan perintah use. Selanjutanya lakukan perintah berikut :
mysql> use mysql;
mysql> grant all privileges on * to nm_user@localhost identified by ‘nm_passwd’ with grand option;
Perintah diatas akan memeberikan izin akses penuh setara dengan root. Sebaiknya hal ini tidak boleh dilakukan.Option Identified By nama password akan menerapkan user tersebut agar tetap memasukkan password saat mengakses database. Jika anda tidak memberikan option password maka user tersebut dapat mengakses database tanpa password.
Penyertaan With Grand Option akan memberikan hak penuh pada user sehingga user tersebut juga mampu melakukan perintah Grant tertentu pada user lainnya. Namun terdapat kekurangan ketika kita sebelumnya tidak memilih database MySQL maka server akan mengabaikan akses Reload, Shutdown, Process, File dan Grant. Berikut ini contoh jika kita tidak menyertakan option password.
mysql> grant all on *.* to nm_user_baru@localhost;
Perintah diatas akan memasukan user dengan menggunakan perintah Grant ini karena sebelumnya user tersebut belum ada. Serta memperbolehkan user tersebut untuk mengakses database tanpa password. Agar tidak terjadi sesuatu sebaiknya jangan melakukan hal ini.

0 komentar:

Posting Komentar














Categories

Unordered List

Sample Text

Popular Posts

Recent Posts

Text Widget