1 / 19

Stored Procedure

Stored Procedure. MySQL 5. Definisi. Stored procedure adalah kumpulan dari statemen SQL yang digunakan secara bersama-sama. Stored procedure menginjinkan penggunaan statemen SQL lebih dari sekedar statemen SQL biasa untuk meretrieve dan mengupdate database.

Télécharger la présentation

Stored Procedure

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Stored Procedure MySQL 5 seagatejogja@ugm.ac.id

  2. Definisi • Stored procedure adalah kumpulan dari statemen SQL yang digunakan secara bersama-sama. • Stored procedure menginjinkan penggunaan statemen SQL lebih dari sekedar statemen SQL biasa untuk meretrieve dan mengupdate database. • Stored procedure mendukung penggunaan variable, kondisi, flow control dan cursor. • Stored procedure dapat terdiri dari paling tidak satu statemen sampai dengan ratusan/ribuan baris. seagatejogja@ugm.ac.id

  3. Keuntungan • Memungkinkan kita menggunakan beberapa statemen query sekaligus. • Efisiensi hasil query yang diproses/dikirimkan ke klien. • Memberikan interface yang sederhana terhadap data dari klien. • Pengelolaan query menjadi lebih mudah dan terpusat. • Memudahkan ketika adanya proses optimasi dan perubahan pada business proses • Meningkatkankeamanan seagatejogja@ugm.ac.id

  4. Kerugian • Membebani database server • Lebih kelihatan kompleks seagatejogja@ugm.ac.id

  5. seagatejogja@ugm.ac.id

  6. Sample Database • Database yang digunakan adalah database Northwind. seagatejogja@ugm.ac.id

  7. Parameter • <create procedure statement> ::= • CREATE PROCEDURE <procedure name> ( [ <parameter list> ] ) • <routine body> • <parameter list> ::= • <parameter specification> [ , <parameter specification> ]... • <parameter specification> ::= • [ IN | OUT | INOUT ] <parameter> <data type> seagatejogja@ugm.ac.id

  8. CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body • proc_parameter: [ IN | OUT | INOUT ] param_nametype • characteristic: • LANGUAGE SQL | • [NOT] DETERMINISTIC | • { CONTAINS SQL | NO SQL | • READS SQL DATA | • MODIFIES SQL DATA } | • SQL SECURITY { DEFINER | INVOKER } | • COMMENT 'string' • routine_body: Valid SQL procedure statements or statements seagatejogja@ugm.ac.id

  9. Contoh • Create procedure tampil_customers() • Select * from customers; • Digunakan untuk menampilkan seluruh data customer; • Call tampil_customers(); seagatejogja@ugm.ac.id

  10. delimiter // create procedure cari_customer(in cust_id varchar(5), out comp_name varchar(40)) begin select companyname from customers where customerid = cust_id into comp_name; end // seagatejogja@ugm.ac.id

  11. Call cari_customer(‘ANTON’,@name) • Select @name seagatejogja@ugm.ac.id

  12. Query data dgn Select Into <select into statement> ::= <select clause> <into clause> [ <from clause> [ <where clause> ] [ <group by clause> ] [ <having clause> ] [ <select block tail> ] ] <select block tail> ::= <order by clause> | <limit clause> | <order by clause> <limit clause> <into clause> ::= INTO <local variable> [ , <local variable> ]... seagatejogja@ugm.ac.id

  13. create procedure kali_belanja (in cust_id varchar(5), out kali_belanja int) begin select count(cust_id) into kali_belanja from orders where customerid = cust_id; end seagatejogja@ugm.ac.id

  14. Call kali_belanja(‘ANTON’,@A); • Select @A; seagatejogja@ugm.ac.id

  15. Tugas • Tampilkan nama employee dengan id tertentu dan berapa kali mereka melayani customernya. • Tampilkan nama customer dengan id tertentu dan besarnya discount yang diperoleh. • Tampilkan nama customer dengan id tertentu dan berapa kali mereka bertransaksi. • Tampilkan nama barang dengan kode tertentu dan berapa kali ditransaksikan. • Tampilkan nama customer dengan id tertentu dan berapa besar nilai yang sudah mereka transaksikan. seagatejogja@ugm.ac.id

  16. mysql> delimiter //mysql> create procedure empproc(in name char(12),in fathername char(12),in password char(12))-> begin-> insert into emp values(name,fathername,password);-> end;-> // seagatejogja@ugm.ac.id

  17. mysql> delimiter // • mysql> CREATE PROCEDURE Proc(OUT p VARCHAR(20), OUT p1 VARCHAR(20),IN p2 INT) • -> BEGIN • -> INSERT INTO Emp VALUES(p2,'Suman','Pune','Web Designer',20000,965); • -> SELECT Ename,City INTO p,p1 FROM Emp WHERE Eid=p2; -> END -> // Query OK, 0 rows affected (0.01 sec) • mysql> delimiter ; • mysql> CALL Proc(@Name,@City,8); • Query OK, 0 rows affected (0.03 sec) • mysql> SELECT @Name,@City; seagatejogja@ugm.ac.id

  18. mysql> CREATE FUNCTION func(str CHAR(20)) • -> RETURNS CHAR(50) • -> RETURN CONCAT('WELCOME TO, ',str,'!'); • Query OK, 0 rows affected (0.00 sec) • mysql> SELECT func('RoseIndia'); seagatejogja@ugm.ac.id

  19. seagatejogja@ugm.ac.id

More Related