22

Stored procedures with cursors

Embed Size (px)

Citation preview

Anu. S

[email protected]

www.facebook.com/Anu Sasidharan

twitter.com/username

in.linkedin.com/in/profilename

STORED PROCEDURES WITH CURSORS

Disclaimer: This presentation is prepared by trainees ofbaabtra as a part of mentoring program. This is not officialdocument of baabtra –Mentoring PartnerBaabtra-Mentoring Partner is the mentoring division of baabte System Technologies Pvt . Ltd

STORED PROCEDURES

CURSORS

SOLVED PROBLEM

STORED PROCEDURES(SP)

Similar to procedures or functions in c

programming language.

A stored procedure is a group of SQL statements

that has been created and stored in the database.

Stored procedures are stored in database data

dictionary.

ADVANTAGES OF USING SP

INCREASES PERFORMANCE

REDUCES NETWORK TRAFFIC

EFFICIENT REUSE OF CODE

ENHANCED SECURITY CONTROL

HOW AN SP IS STORED IN A

DATABASE

DATABASE

getStudent()

BEGINselect * from

table_student;END

ViewStud.jsp........................................Call getStudent();StudDetails.php

.....................Call getStudent();......................

Marklist.jsp..............................................Call getStudent();.......................

StudDetails.php.....................Select* from table_student;......................

ViewStud.jsp........................................Select * from table_student;

Marklist.jsp..............................................Select * from table_student;.......................

TO CREATE AN STORED

PROCEDURE

SYNTAX:

DELIMITER //

CREATE PROCEDURE procedure_name(argument _list)

BEGIN

Set of SQL queries

END//

DELIMITER ;

EXAMPLE OF STORED PROCEDURE

DELIMITER //

CREATE PROCEDURE CSP_INSERT_tbl_user(IN vchr_uname varchar(50),

IN vchr_pswd varchar(50), IN vchr_fkey int)

BEGIN

INSERT into

tbl_user(vchr_username,vchr_password,fk_vchr_role_id)

values(vchr_uname, vchr_pswd,vchr_fkey);

END//

DELIMITER ;

EXAMPLE

pk_int_user_id vchr_username vchr_password fk_vchr_role_id

1 John John123 admin

2 Geetha Geetha123 teacher

Tbl_user

CALL CSP_INSERT_tbl_user(‘Jijo’,’Jijo123’,’student’ );

pk_int_user_id vchr_username vchr_password fk_vchr_role_id

1 John John123 admin

2 Geetha Geetha123 teacher

3 Jijo Jijo123 student

Tbl_user

Delimiter //

CREATE PROCEDURE getstudmark ( IN id int, OUT studname

varchar(50), OUT mark int)

BEGIN

Select vchr_name into studname, int_tot_marks into mark

from tbl_student

where pk_int_stud_id=id;

END//

Delimiter ;

EXAMPLE

CURSORS

For querying of multiple rows of data .

To fetch one or more rows from a SQL result

set to a variable.

DECLARING A CURSOR

SYNTAX:

DECLARE cursor_name CURSOR FOR select_query

EXAMPLE:

DECLARE MyCur CURSOR FOR SELECT vchr_stud_name,int_stud_mark FROM tbl_student;

EXAMPLEDELIMITER //Create procedure StudDet()Begin

DECLARE name VARCHAR(50);DECLARE mark INT;DECLARE done INT DEFAULT 0;DECLARE myCur CURSOR FOR SELECT vchr_stud_name,int_stud_mark from tbl_student;DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;OPEN myCur;Read_Loop: LOOPFETCH myCur INTO name, mark;If done=1 THENLEAVE Read_LoopElse iterate Read_LoopENDIFEND LOOP Read_loopCLOSE myCur ;

END//

NOW LETS DO AN EXCERCISE

CREATE TWO TABLES tbl_login, tbl_user.

WRITE A SINGLE STORED PROCEDURE TO

INSERT VALUES INTO BOTH TABLES.

CREATE TABLE tbl_login( pk_int_login_id int auto_increment,vchr_user_name varchar(25),vchr_password varchar(25),vchr_user_type varchar(25),PRIMARY key(pk_int_login_id));

CREATE TABLE tbl_user(pk_int_user_id int auto_increment,fk_int_user_id int,vchr_frst_name varchar(20),vchr_last_name varchar(20),vchr_designation varchar(20),vchr_place varchar(20),FOREIGN key(fk_int_user_id) REFERENCEStbl_login(pk_int_login_id),PRIMARY key(pk_int_user_id));

CREATING TABLES tbl_login & tbl_user

delimiter //CREATE PROCEDURE insert_into_table(in vchr_uname varchar(25),in vchr_pwd varchar(25),in vchr_utype varchar(25),in vchr_fname varchar(20),in vchr_lname varchar(20),in vchr_desig varchar(20),in vchr_plc varchar(20))

BEGINDECLARE id INT DEFAULT 0;insert into tbl_login(vchr_user_name,vchr_password,vchr_user_type) values(vchr_uname,vchr_pwd,vchr_utype);set id=last_insert_id();insert into tbl_user (fk_int_user_id,vchr_frst_name,vchr_last_name,vchr_designation,vchr_place )

values(id,vchr_fname,vchr_lname,vchr_desig,vchr_plc);END//delimiter ;

Stored procedure

OUTPUT

THANK YOU...

Want to learn more about programming or Looking to become a good programmer?

Are you wasting time on searching so many contents online?

Do you want to learn things quickly?

Tired of spending huge amount of money to become a Software professional?

Do an online course @ baabtra.com

We put industry standards to practice. Our structured, activity based courses are so designedto make a quick, good software professional out of anybody who holds a passion for coding.

Follow us @ twitter.com/baabtra

Like us @ facebook.com/baabtra

Subscribe to us @ youtube.com/baabtra

Become a follower @ slideshare.net/BaabtraMentoringPartner

Connect to us @ in.linkedin.com/in/baabtra

Thanks in advance.

www.baabtra.com | www.massbaab.com |www.baabte.com

Contact Us

Emarald Mall (Big Bazar Building)Mavoor Road, Kozhikode,Kerala, India.Ph: + 91 – 495 40 25 550

NC Complex, Near Bus StandMukkam, Kozhikode,Kerala, India.Ph: + 91 – 495 40 25 550

Cafit Square,Hilite Business Park,Near Pantheerankavu,Kozhikode

Start up VillageEranakulam,Kerala, India.

Email: [email protected]