Selasa, 26 Maret 2013

JOIN SQL DAN STORED PROCEDURE

1. Materi join di SQL
SQL mempunyai kemampuan untuk menggabungkan dua tabel atau lebih guna mendapatkan informasi yang diinginkan, dengan proses yang dilakukan dengan nama JOIN. JOIN digunakan untuk menampilkan semua record dari sebuah table yang cocok maupun tidak cocok dengan record dari table lainnya.Suatu operasi Join mengkombinasikan product, selection, dan mungkin projection. Operator Join secara horisontal mengkombinasikan / menggabungkan data dari satu baris tabel dengan baris dari yang lain atau tabel yang sama ketika kriteria tertentu ditemukan. Kriteria melibatkan suatu hubungan diantara kolom didalam gabungan tabel relasional.

            CONTOH:
  •          Tabel_reference JOIN tabel_factor WHERE|ON [join_condition]
  •         Sintak Join :
                        Select nama_kolom
                        From nama_tabel1
                                    JOIN nama_tabel2
                                    ON nama_tabel1.key1 = nama_tabel2.key1;
INNER JOIN :
INNER JOIN memerlukan kriteria kolom tertentu sebagai penghubung kedua tabel.
            Syntax:
            Table_reference INNER JOIN table_factor WHERE [join_conditional]
LEFT [OUTER] JOIN
Menampilkan record dari tabel sebelah kiri yang cocok maupun tidak cocok, akan ditampilkan dengan tabel sebelah kanan.
Record yang tidak cocok, akan ditampilkan dengan nilai NULL
            Syntax:
            Table_reference LEFT [OUTER] JOIN teble_reference ON join_conditional
RIGHT [OUTER] JOIN
Menampilkan record yang cocok dengan tabel sebelah kanan.
            Syntax:
            Table_reference RIGHT [OUTER] JOIN table_reference ON join_conditional
Table JOIN
Selain beberapa jenis join di atas, anda juga bias menggunakan konsep join tabel yang sangat sederhana yaitu dengan cara:
·         Jika ingin menampilkan semua field SELECT *from table_1, table2;
·         Jika ingin menampilkan field tertentu  SELECT table_1, table_2.field_2, table_2.field_3 from table_1, table2;
CONTOH :
Contoh pada database mysql:
·         SELECT *from help_relation JOIN help_keyword;
·         SELECT help_relation.help_keyword_id, help_keyword.name from help_keyword, help_relation
WHERE
help_keyword.help_keyword_id=help_relation.help_keyword_id;


2. Materi Stored Procedure
Stored procedure adalah suatu subprogram atau sekelompok statemen Transact-SQL,yang tersimpan dan menyatu dalam suatu database. Stored Procedure dibuat dalam SQL Servel,bukan di komputer client,dan akan menyatu dengan suatu database dalam server.
Tujuan utama Transact-SQL (T-SQL) ini adalah untuk menyediakan sekumpulan tool prosedural untuk pengembangan database transaksional.T-SQL dapat digunakan dalam berbagai cara di SQL Server client atau aplikasi server.
 Contoh :
  • T-SQL digunakan dalam ekspresi sebagai bagian dari perintah DML (insert,update,dan dalete) yang dikirimkan oleh proses klien
  • T-SQL digunakan dalam sebuah kumpulan kode yang dikirimkan ke SQL-Server dari klien sebagai batch atau script
  • Fungsi T-SQL digunakan juga dalam ekspresi dalam pemeriksaan constraint
  • Kode T-SQL digunakan dalam batch juga yang satu paket dalam SQL-SERVER sebagai Stored Procedure,fungsi atau trigger
Stored procedure dapat diakses program aplikasi object-object tertentu pada program aplikasi masing-masing. Stored procedure tersimpan dalam database dalam bentuk kode yang sudah terkompilasi sehingga prosesnya menjadi lebih cepat
KEUNTUNGAN STORED PROCEDURE
  • Sebuah stored procedure dikompilasi dan leebih cepat dalam mengeksekusi batch atau query
  • Memproses data lewat stored procedure dilakukan pada server sehingga mengurangi intensitas lalu lintas  data network
  • Stored procedure menawarkan pemrograman modular hal ini karena sebuah stored procedure dapat memanggil stored precedure lain. Stored procedure juga mudah untuk dikembangkan dan diubah. Keuntungan yang timbul dari perubahan stored procedure adalah bila ada perubahan maka otomatis perubahan tersebut dapt langsung terasa pada semua user karena perubahan hanya dilakukan pada satu tempat saja yaitu SERVER.
  • Stored procedure bisa jadi adalah salah satu komponen penting dalam keamanan database. Jika semua akses user melalui strored procedure maka semua akses langsung ke tabel dan data dapat di kontrol.
Di SQL SERVER ada 2 macam stored procedure, yaitu :
  • Stored procedure yang sudah ada pada sistem
  • Stored procedure yang dibuat oleh user
Dalam contoh dibawah ini kasus tentang sistem informasi sekolah, yang mana store procedure yang dibuat akan menangani tentang menghasilkan data siswa yang difilter bedasarkan kelas.


sturuktur tabel siswa

CREATE TABLE `data_siswa`.`tbl_siswa` (
`nis` char(10) NOT NULL,
`nama` varchar(255) NOT NULL,
`kelas` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1


store procedure untuk menampilkan data siswa dalam bentuk resultset

DELIMITER $$

CREATE PROCEDURE sp_tampil_siswa_kelas(p_kelas int)
BEGIN
SELECT * FROM tbl_siswa where KELAS = p_kelas;
END$$

DELIMITER ;


penjelasannya sebagai berikut:

  • DELIMITER = adalah untuk memberi tahu kepada myql soal delimiter yang digunakan, secara default menggunakan ; jadi bila ada tanda ; mysql akan mengartikan akhir dari statement, pada contoh di atas delimeter yang digunakan $$ jadi akhir statementnya adalah $$
  • CREATE PROCEDURE = adalah header untuk membuat store procedure
  • BEGIN END = adalah body dari store procedure, jadi semua SQL nya di tulis disini.