PL/SQL

Published on January 2017 | Categories: Documents | Downloads: 25 | Comments: 0 | Views: 226
of 5
Download PDF   Embed   Report

Comments

Content

Pengenalan Trigger, Function, Procedure dan View pada MYSQL | IT 4 our...

http://www.rey1024.com/2008/05/pengenalan-trigger-function-procedure...

IT 4 our life
Tuliskan ilmu untuk mengingat dan berbagi Entries RSS | Comments RSS

Home About Me Products & Services Profile Site Map

Pengenalan Trigger, Function, Procedure dan View pada MYSQL
Written by Resika Arthana Posted May 2, 2008 at 1:53 AM
Share

Berikut adalah dasar-dasar trigger, function, procedure serta view yang bisa diimplementasikan pada MYSQL 5 keatas. Dengan menggunakan trigger, function, procedure serta view, pemanfaatan MYSQL akan lebih bermanfaat. Contohnya : kita bisa membuat urutan langkah-langkah tertentu setelah suatu even dilakukan (ex: insert, update, delete). Tutorial ini ditujukan bagi yang belum mengenal trigger, function, procedure serta view sama sekali. Bagi yang sudah bisa, artikel ini boleh dan harus diabaikan

Procedure dan Function
Syntax Umum
procedure
Syntak untuk membuat procedure dalam MySQL adalah sebagai berikut.
CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ([ proc_parameter[,...]]) [characteristic ...] routine_body

Function
CREATE [DEFINER = { user | CURRENT_USER }] FUNCTION sp_name ([func_parameter[,...]]) RETURNS type [characteristic ...] routine_body

Keterangan 1. proc_parameter (hanya pada procedure):
[ IN | OUT | INOUT ] param_name type

IN parameter dilewatkan ke dalam procedure tetapi modifikasi nilai dari parameter ini tidak kelihatan setelah procedure tersebut dipanggil. Out parameter merupakan parameter yang dilewatkan dari dalam procedure ke pemanggil procedure tersebut. Nilai inisialisasi saat memanggil adalah null dan hasil parameter akan kelihatan setelah procedure dipanggil. INOUT parameter diinisilaisai oleh pemanggil procedure, kemudian hasil modifikasinya tersebut akan kelihatan setelah procedure tersebut dipanggil. 2. characteristic
LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string'

3. routine_body:
Valid SQL procedure statement

Routine body berisi syntax-syntax sql yang valid, seperti insert atau select. Bisa juga berisi compound. Compount diapit oleh begin… end. Syntax dari compound system adalah sebagai berikut.
[begin_label:] BEGIN [statement_list] END [end_label]

Compound ini bisa diisi dengan label. Begin label dan end label harus sama. Di dalam compound juga bisa berisi deklarai variabel, looping atau kontrol program lainnya. Setiap Function harus punya return value untuk mengembalikan nilai yang dihasilkan

Contoh Procedure dan Function MySQL
Berikut adalah contoh penggunaan procedure. Pertama kita buat terlebih dahulu database dengan nama adakara. Kemudian silakan buat table berikut dengan isinya. Berikut ini adalah hasil dumping dari database adakara.
CREATE TABLE `siswa` ( `NIS` varchar(20) collate latin1_general_ci NOT NULL, `Nama` varchar(30) collate latin1_general_ci NOT NULL, `Angkatan` varchar(9) collate latin1_general_ci NOT NULL, PRIMARY KEY (`NIS`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; LOCK TABLES `siswa` WRITE; /*!40000 ALTER TABLE `siswa` DISABLE KEYS */; INSERT INTO `siswa` VALUES ('1024','resika arthana','2005/2006'),('1','cxfbsdjg','2005/2006'),('2','dshfk','2005/2006'),('3','dsfku','2005/2006'),('11','Ari damayanti','2005/2006'),('12','wedana','2005/2006'),('122','andika','2005/2006'),('123','mas ayu','2005/2006'); /*!40000 ALTER TABLE `siswa` ENABLE KEYS */; UNLOCK TABLES; -- Dump completed on 2007-03-21 7:47:58

Procedure
Berikut ini adalah proses pembuatan procedure, dibuat dalam command from.
mysql> delimiter // mysql> CREATE PROCEDURE jumlahSiswa (OUT param1 INT) -> BEGIN -> SELECT COUNT(*) INTO param1 FROM siswa;

-> END; -> // Query OK, 0 rows affected (0.00 sec) mysql> delimiter ;

Function
mysql> create function tmbhSaudara(nama char(20)) returns char(5) -> return concat('Saudara ',nama); Query OK, 0 rows affected (0.36 sec)

Pemanggilan Procedure dan Function
Pemanggilan procedure menggunakan syntax
CALL procedure_atau_function_name ([parameter[,...]]) procedure_atau_function_name adalah nama procedure ata fungsi yang dipanggil dan parameter adalah nama-nama parameter procedure atau fungsi tersebut

Procedure
mysql> call jumlahSiswa(@a); Query OK, 0 rows affected (0.00 sec) mysql> select @a; +------+ | @a |

+------+ | 8 |

+------+ 1 row in set (0.00 sec)

1 of 5

2/22/2013 7:54 AM

Pengenalan Trigger, Function, Procedure dan View pada MYSQL | IT 4 our...

http://www.rey1024.com/2008/05/pengenalan-trigger-function-procedure...

Function
mysql> select tmbhSaudara(' resika arthana'); +--------------------------------+ | tmbhSaudara(' resika arthana') | +--------------------------------+ | Saudara resika arthana | +--------------------------------+ 1 row in set (0.00 sec)

Menghapus Procedure dan Function
Untuk menghapus procedure atau function digunakan perintah sebagai berikut
DROP {PROCEDURE | FUNCTION} [IF EXISTS] procedure_or_function_name

Trigers
Syntax Umum Triger
CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt

Keterangan 1. DEFINER menunjukkan nama user yang mempunyai hak akses untuk mengakses triger. 2. Triger_time menunjukkan saat triger tersebut dijalankan. Terdiri dari Before atau After 3. Triger_time menandakan saat keadaan bagaimana triger tersebut aktif. Terdiri dari a. Insert : Triger aktif saat baris baru dimasukkan ke dalam tabel b. Update : Triger aktif saat ada baris diperbaharui dimasukkan di dalam tabel c. Delete :Triger aktif saat baris dihapus dalam tabel

Contoh Trigers
CREATE TABLE test1(a1 INT); CREATE TABLE test2(a2 INT); CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY); CREATE TABLE test4( a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b4 INT DEFAULT 0 ); DELIMITER | CREATE TRIGGER testref BEFORE INSERT ON test1 FOR EACH ROW BEGIN INSERT INTO test2 SET a2 = NEW.a1; DELETE FROM test3 WHERE a3 = NEW.a1; UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1; END; | DELIMITER ; INSERT INTO test3 (a3) VALUES (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL); INSERT INTO test4 (a4) VALUES (0), (0), (0), (0), (0), (0), (0), (0), (0), (0);

Silakan masukkan nilai ke test1
mysql> INSERT INTO test1 VALUES -> (1), (3), (1), (7), (1), (8), (4), (4); Query OK, 8 rows affected (0.01 sec) Records: 8 Duplicates: 0 Warnings: 0

As a result, the data in the four tables will be as follows:
mysql> SELECT * FROM test1; +------+ | a1 |

+------+ | | | | | | | | 1 | 3 | 1 | 7 | 1 | 8 | 4 | 4 |

+------+ 8 rows in set (0.00 sec) mysql> SELECT * FROM test2; +------+ | a2 |

+------+ | | | | | | | | 1 | 3 | 1 | 7 | 1 | 8 | 4 | 4 |

+------+ 8 rows in set (0.00 sec) mysql> SELECT * FROM test3; +----+ | a3 | +----+ | | | | 2 | 5 | 6 | 9 |

| 10 | +----+ 5 rows in set (0.00 sec) mysql> SELECT * FROM test4; +----+------+ | a4 | b4 |

+----+------+ | | | | | 1 | 2 | 3 | 4 | 5 | 3 | 0 | 1 | 2 | 0 |

2 of 5

2/22/2013 7:54 AM

Pengenalan Trigger, Function, Procedure dan View pada MYSQL | IT 4 our...

http://www.rey1024.com/2008/05/pengenalan-trigger-function-procedure...

| | | |

6 | 7 | 8 | 9 |

0 | 1 | 1 | 0 | 0 |

| 10 |

+----+------+ 10 rows in set (0.00 sec)
Share

Filed under: Tutorial Komputer

RSS feed for comments on this post TrackBack URI 24 Responses to this post 1. QQ on May 23rd, 2008 6:47 AM Mas,, koq kaya yang dimanual mysql.chm ya,, bisa kasih tau ga script function lainnya,,, teng’s 2. amed on June 5th, 2008 5:12 AM mas boleh mulai dari awal ga….(langkah2 nya)….. 3. tude on June 30th, 2008 5:15 AM om swastiastu bli… bli, bisa dijelaskan lebih banyak ga… tentang fungsi triger… thanks…. 4. agus on July 5th, 2008 4:33 AM bagus buat nambah2 ilmu. misalkan kita buat semacam triggers tetapi trigger_event bukan ( insert, update & delete) melainkan waktu( jadi setiap 10 menit triggers tsb dijalankan ) ? thx. 5. yulianto on July 25th, 2008 7:46 AM kalo triger digunakan buat otomasi pengurangan dan penambahan jumlah stok saat stok dikembalikan bisa tidak?makasih 6. ndolelout on September 17th, 2008 4:55 PM bli nanya gmna procedure untuk ngecek apakah suatu file ada didalam folder atau belum ada, soalnya tiang menggunaan database mysql 5 dg basa pemrograman fox tengkyu nah bliii… 7. yuno on October 18th, 2008 2:02 AM matur suksma bli…infone… salam kenal bli… 8. arief adi on November 28th, 2008 3:21 AM terimakasih ilmunya… kebetulan ane ada makul database semester ini ^^ 9. ashadi on March 12th, 2009 1:52 PM bli…… gimana caranya nampilan collation di php saya udah bisa nampilin semua struktur tapi yang collation itu lho….. ga bisa saya….. kalo ga salah baliprocom punyanya Mr. Gede Rasben Dantes ya bli ???? reply : collation bagian mana? yang di table mysql? ga ngerti yapp.. kok kenal bli? 10. basuki on September 8th, 2009 3:57 PM mas motanya databse mysql kalau buat fungsi itu bisa nampilin data kesamping ya trus bagaimana menampilakan penjualan pertahun misalkan tabel penjulan nah hasilnya gini tampil danya perbulan kesamping jan feb | jan feb baranga 1 2 2 4 nanti di select select fungsipenjualan(tahun 2006-2009) maskih mas moh.basuki 11. Barayuda on December 27th, 2009 4:53 PM Wah thx kak… Pas kali lagi nyari ketemu di web sini.. Wah bakal rajin kesini lagi klo gtu..hehe 12. Resika Arthana on December 27th, 2009 7:04 PM @basuki : untuk nampilin hasil tu tergantung programmingnya (aplikasi yang digunakan untuk menampilkan isi tabel) @bara: ha3.. siip. kalo ada artikel/pelajaran yang diinginkan tinggal request aja 13. Jempol.. on January 17th, 2010 4:25 PM Mantap bro …… 14. tutorial komputer on February 24th, 2010 10:05 AM cukup lengkap tutorialnya. biar tambah contohnya, ada tutorial mengenai trigger di mysql nich, ada di http://bit.ly/TriggerMySQL. tutorial komputer´s last blog ..Mengenal Trigger di MySQL 15. Cialis on March 10th, 2010 1:12 AM NSp4g3 Excellent article, I will take note. Many thanks for the story! 16. cuhe on March 15th, 2010 5:42 PM wah bagus nih… ini buat tambahan referensi… http://dev.mysql.com/doc/refman/5.1/en/create-trigger.html cuhe´s last blog ..Quotes dari [email protected] 17. iyan on October 2nd, 2010 1:03 PM function ada, trigger ada, procedure ada,,,, tp view nya mana pak??…. 18. ddd on December 13th, 2010 1:04 PM

19. app wap on June 5th, 2011 12:26 AM wah, ini nih yang saya cari2, trigger dan function. makasih banget pak atas tutorialnya, dicoba… 20. Andra on July 28th, 2011 8:56 AM kok keluar error seperti ini : [SQL] INSERT INTO test1 VALUES (1), (3), (1), (7), (1), (8), (4), (4); [Err] 1100 – Table ‘test2′ was not locked with LOCK TABLES knp ya??? 21. edi purwanto on April 1st, 2012 4:12 PM thank infonya gan 22. test4 on September 25th, 2012 7:57 AM Wow, superb blog format! How long have you ever been blogging for? you made running a blog glance easy. The entire glance of your website is magnificent, let alone the content! test4´s last 1 ..1 23. Engagement Party Planning on January 23rd, 2013 9:01 PM Amazing! I’m truly enjoying the design of your website. Are you using a customized theme or is this freely available to all users? If you really don’t want to say the name of it out in the public, please contact me at: [email protected] I’d really like to get my hands on this template! Thanks.

3 of 5

2/22/2013 7:54 AM

Pengenalan Trigger, Function, Procedure dan View pada MYSQL | IT 4 our...

http://www.rey1024.com/2008/05/pengenalan-trigger-function-procedure...

24. Jasa SEO on January 27th, 2013 12:58 PM thanks buat tulusannya nih pak saya dapat informasi baru dari blog bapak.. Leave a comment Name (required)

Email Address (required)

Website

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

[+] kaskus emoticons nartzco

Om Swastiastu

"OM ANO BADRAH KRATAWU YANTU WISWATAH" (Semoga pikiran baik datang dari segala arah).

Twitter
IT 4 Our Life

rey1024

Join the conversation

Categories
Aktifitas Mengajar Asal Asalan Berita IT Computer Science Data Grids Data Mining Digital Image Processing Information Retrieval Internet Marketing Linux/Opensource Network/Server Sistem Informasi Software Engineering Algoritma Android JAVA Metrics Software OOP/OOAD Pascal SMS Gateway web service Tutorial Komputer OJS E-Jurnal Website & Online Codeigniter Web Services E-Book Computer Elearning Fiksi Gadged IPAD 2 kesehatan Motivasi Diri SMS Manager software Antivirus Freeware Tips

Kurs (Source : BCA)
powered:getbaliholidays|rey1024

Recent Comments
Lhydia on Situs pendidikan yang berhubungan dengan pelajaran http://yahoo.com on Problem Install VirtueMart pada joomla ikhwaniril on Solusi membangun SMS Gateway dengan GAMMU Novelette about Pipun the Magnificient on Metric software: Cyclomatic Complexity (CC) Bima on [Android Programming]: Contoh Aplikasi Sederhana dan Aplikasi untuk manipulasi database (GET/POST)

4 of 5

2/22/2013 7:54 AM

Pengenalan Trigger, Function, Procedure dan View pada MYSQL | IT 4 our...

http://www.rey1024.com/2008/05/pengenalan-trigger-function-procedure...

Income Rp 38 Juta / bulan
Bisnis internet syariah masa dpn. bisa dpt Rp.2 jt / hari, peluang sukses. www.erabonus.com/online

Income Rp 38 Juta / bulan
Bisnis internet syariah masa dpn. bisa dpt Rp.2 jt / hari, peluang sukses. www.erabonus.com/online

IT 4 our life by resika arthana is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

5 of 5

2/22/2013 7:54 AM

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close