SlideShare uma empresa Scribd logo
1 de 28
Introduction To
DBMS and SQL Server
Stored Procedures
Stored Procedures
• A stored procedure is a method to encapsulate
repetitive tasks.
• A stored Procedure is actually stored in
database data dictionary
Without Stored Procedure
Employee.jsp
......................
Select * from
tbl_employee
................
Report.php
..........................
Select * from
tbl_employee
.................
.....................
Select * from
tbl_employee
viewDetails.php
..........................
.........................
Select * from
tbl_employee
...............
Database
Stored Procedure
Employee.php
..........................
..........................
exec
getName();
................
Report.php
..........................
.........................
..........................
exec
getName();
viewDetails.php
..........................
.........................
exec
getName();
...............
getName()
Begin
Select * from tbl_employee
End
Database
Advantages
• Precompiled Execution
•sqlserver compiles each stored procedure once and
then re utilizes the execution plan. This result in
tremendous performance boosts when stored
procedures are called repeatedly
• Reduced client server traffic
•If network traffic is concerned you will be happy to
learn that stored procedures can reduce long sql
queries to a single line that is transmitted between
application program and database server.
Advantages
• Efficient reuse of code and programming abstraction
•Stored procedures can be used by multiple programs
and users. If you utilize them in a planned manner,
you’ll find the development cycle takes less time.
• Enhanced Security Control
•You can grant users permission to execute stored
procedure independently of underlying table
permissions
How to create Stored Procedure ?
example
CREATE PROCEDURE getName(@id int)
as
BEGIN
Select * from tbl_user where userid=@id;
END
EXEC getName @id=1 ;
How to create Stored Procedure ?
example
CREATE PROCEDURE getName(@id int)
BEGIN
Select * from tbl_user where userid=@id;
END
EXEC getName @id=1;
Is the keyword to create a new stored
procedure .we can use proc also
How to create Stored Procedure ?
example
CREATE PROCEDURE getName(@id int)
BEGIN
Select * from tbl_user where userid=@id;
END
EXEC getName @id=1
Is the name of the stored
procedure that we are creating
How to create Stored Procedure
? example
CREATE PROCEDURE getName ( @id int)
BEGIN
Select * from tbl_user where userid=@id;
END
Call getName @id=1;
Is the body of the stored procedure. Here we
have only a single select query statements.
We can also apply logic using the below
• DECLARE a INT; : declaring an integer
type variable
• SET a=20; : Setting value of a
to 20
• IF THEN
• ELSE IF
label1: LOOP
SET p1 = p1 + 1;
IF p1 < 10 THEN
ITERATE label1;
END IF;
LEAVE label1;
END LOOP label1;
: For conditions
: Loops
How to create Stored Procedure ?
example
CREATE PROCEDURE getName ( @id int)
BEGIN
Select * from tbl_user where userid=@id;
END
exec getName=@id=1;
How to create Stored Procedure ?
example
CREATE PROCEDURE getName ( @id int)
BEGIN
Select * from tbl_user where userid=@id;
END
exec getName @id=1;
Calling the stored procedure we’ve
just created and passing the value
1001 as its argument
How to create Stored Procedure ?
example
CREATE PROCEDURE getSale1(@id int,@pri int output ,@sal int
output)
as BEGIN
Select @pri=sum(price), @sal=avg(sales) from tbl_sales
where pk_int_id=@id;
END
declare @total int
declare @sale int
exec getSale1 @id=1,@pri=@total output,@sal=@sale output;
select @total; select @sale;
• Create the below table
Create a stored procedure called
– csp_getSalary(1000) : should return the salary of employee with id as
passed in the argument
– Csp_getSalaryAtPlace(‘calicut’,@total) : should return the total salary of
employees from a perticular place
Live Task
Tbl_employee
Emp_id Emp_name Emp_age Emp_email int_salary vchr_place
1000 Deepak 24 dk@gmail.com 10000 Calicut
1001 Aneesh 23 an@gmail.com 20000 Cochin
1002 Naveen 25 nn@gmail.com 10000 Calicut
1003 Jacob 25 jb@gmail.com 30000 Cochin
Cursors
• SELECT INTO is fine for single-row queries, but many
applications require the querying of multiple rows of data.
You will use a cursor in SQL Server to accomplish this.
• A cursor lets you fetch one or more rows from a SQL result set
into stored program variables, usually with the intention of
performing some row-by-row processing on the result set.
Cursors - example
create procedure CSP_status_change
as begin
declare @done int;
set @done=0;
declare @studId int;
declare @studStatus bit;
declare @dateDif int;
declare @myCur cursor
set @myCur = cursor for select
pk_int_student_id,bln_student_status,
datediff(day,dat_fph_date,GETDATE())as date_difference from
tbl_students
join tbl_fee_payment_history on
fk_int_student_id=pk_int_student_id;
open @myCur
fetch next from @myCur into @studId,@studStatus,@dateDif;
while @@FETCH_STATUS = 0 begin
if @dateDif>15
update tbl_students set bln_student_status=0 where
pk_int_student_id=@studId;
else
update tbl_students set bln_student_status=1 where
pk_int_student_id=@studId;
fetch next from @myCur into @studId,@studStatus,@dateDif;
end;
close @myCur;
deallocate @myCur;
END;
exec CSP_status_change;
fetch next from @myCur
Questions?
“A good question deserve a good
grade…”
Self Check !!
• Why should someone use stored procedure?
– To avoid data redundancy
– To reduce network traffic between
application server and database server
– To ensure data integrity
Self Check !!
• Why should someone use stored procedure?
– To avoid data redundancy
– To reduce network traffic between
application server and database server
– To ensure data integrity
Self Check !!
Self Check !!
• Why should someone change the delimiter before
creating a stored procedure?
– To use ; as separation between multiple statements in a
stored procedure body
– To push the server to compile the whole body of stored
procedure all together
– Both of above
– None of above
Self Check !!
• Why should someone change the delimiter before
creating a stored procedure?
– To use ; as separation between multiple statements in a
stored procedure body
– To push the server to compile the whole body of stored
procedure all together
– Both of above
– None of above
Self Check !!
CREATE PROCEDURE simpleProc ( OUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM t ;
END
EXEC simpleProc(@a);
Select @a ;
Self Check !!
CREATE PROCEDURE simpleProc ( @param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM t ;
END
exec simpleProc(@a);
Select @a ;
Self Check !!
What are the uses of cursors?
•For extracting multiple rows from a table
•For extracting multiple rows into variables from a table
•For setting handlers
Self Check !!
What are the uses of cursors?
•For extracting multiple rows from a table
•For extracting multiple rows into variables from a table
•For setting handlers
End of day 1

Mais conteúdo relacionado

Mais procurados (20)

Sql Functions And Procedures
Sql Functions And ProceduresSql Functions And Procedures
Sql Functions And Procedures
 
Procedure and Functions in pl/sql
Procedure and Functions in pl/sqlProcedure and Functions in pl/sql
Procedure and Functions in pl/sql
 
Sql queries presentation
Sql queries presentationSql queries presentation
Sql queries presentation
 
SQL Server Stored procedures
SQL Server Stored proceduresSQL Server Stored procedures
SQL Server Stored procedures
 
introdution to SQL and SQL functions
introdution to SQL and SQL functionsintrodution to SQL and SQL functions
introdution to SQL and SQL functions
 
Store procedures
Store proceduresStore procedures
Store procedures
 
SQL Queries
SQL QueriesSQL Queries
SQL Queries
 
Constraints In Sql
Constraints In SqlConstraints In Sql
Constraints In Sql
 
Triggers
TriggersTriggers
Triggers
 
Triggers in SQL | Edureka
Triggers in SQL | EdurekaTriggers in SQL | Edureka
Triggers in SQL | Edureka
 
SQL Views
SQL ViewsSQL Views
SQL Views
 
SQL Commands
SQL Commands SQL Commands
SQL Commands
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
SQL
SQLSQL
SQL
 
SQL Tutorial - Basic Commands
SQL Tutorial - Basic CommandsSQL Tutorial - Basic Commands
SQL Tutorial - Basic Commands
 
Relational model
Relational modelRelational model
Relational model
 
SQL(DDL & DML)
SQL(DDL & DML)SQL(DDL & DML)
SQL(DDL & DML)
 
DATABASE CONSTRAINTS
DATABASE CONSTRAINTSDATABASE CONSTRAINTS
DATABASE CONSTRAINTS
 
DDL And DML
DDL And DMLDDL And DML
DDL And DML
 
Structured Query Language (SQL)
Structured Query Language (SQL)Structured Query Language (SQL)
Structured Query Language (SQL)
 

Semelhante a Chapter 3 stored procedures

Sql storeprocedure
Sql storeprocedureSql storeprocedure
Sql storeprocedureftz 420
 
Advance Sql Server Store procedure Presentation
Advance Sql Server Store procedure PresentationAdvance Sql Server Store procedure Presentation
Advance Sql Server Store procedure PresentationAmin Uddin
 
Stored procedure Notes By Durgesh Singh
Stored procedure Notes By Durgesh SinghStored procedure Notes By Durgesh Singh
Stored procedure Notes By Durgesh Singhimdurgesh
 
Autonomous Transaction Processing (ATP): In Heavy Traffic, Why Drive Stick?
Autonomous Transaction Processing (ATP): In Heavy Traffic, Why Drive Stick?Autonomous Transaction Processing (ATP): In Heavy Traffic, Why Drive Stick?
Autonomous Transaction Processing (ATP): In Heavy Traffic, Why Drive Stick?Jim Czuprynski
 
My SQL Skills Killed the Server
My SQL Skills Killed the ServerMy SQL Skills Killed the Server
My SQL Skills Killed the ServerdevObjective
 
Java OOP Programming language (Part 8) - Java Database JDBC
Java OOP Programming language (Part 8) - Java Database JDBCJava OOP Programming language (Part 8) - Java Database JDBC
Java OOP Programming language (Part 8) - Java Database JDBCOUM SAOKOSAL
 
My Database Skills Killed the Server
My Database Skills Killed the ServerMy Database Skills Killed the Server
My Database Skills Killed the ServerColdFusionConference
 
Stored procedures by thanveer danish melayi
Stored procedures by thanveer danish melayiStored procedures by thanveer danish melayi
Stored procedures by thanveer danish melayiMuhammed Thanveer M
 
Jdbc oracle
Jdbc oracleJdbc oracle
Jdbc oracleyazidds2
 
Tony jambu (obscure) tools of the trade for tuning oracle sq ls
Tony jambu   (obscure) tools of the trade for tuning oracle sq lsTony jambu   (obscure) tools of the trade for tuning oracle sq ls
Tony jambu (obscure) tools of the trade for tuning oracle sq lsInSync Conference
 
PostgreSQL Database Slides
PostgreSQL Database SlidesPostgreSQL Database Slides
PostgreSQL Database Slidesmetsarin
 
Change tracking
Change trackingChange tracking
Change trackingSonny56
 

Semelhante a Chapter 3 stored procedures (20)

Introduction to mysql part 3
Introduction to mysql part 3Introduction to mysql part 3
Introduction to mysql part 3
 
Sql storeprocedure
Sql storeprocedureSql storeprocedure
Sql storeprocedure
 
Sql transacation
Sql transacationSql transacation
Sql transacation
 
Advance Sql Server Store procedure Presentation
Advance Sql Server Store procedure PresentationAdvance Sql Server Store procedure Presentation
Advance Sql Server Store procedure Presentation
 
Stored procedure Notes By Durgesh Singh
Stored procedure Notes By Durgesh SinghStored procedure Notes By Durgesh Singh
Stored procedure Notes By Durgesh Singh
 
Autonomous Transaction Processing (ATP): In Heavy Traffic, Why Drive Stick?
Autonomous Transaction Processing (ATP): In Heavy Traffic, Why Drive Stick?Autonomous Transaction Processing (ATP): In Heavy Traffic, Why Drive Stick?
Autonomous Transaction Processing (ATP): In Heavy Traffic, Why Drive Stick?
 
My SQL Skills Killed the Server
My SQL Skills Killed the ServerMy SQL Skills Killed the Server
My SQL Skills Killed the Server
 
Sql killedserver
Sql killedserverSql killedserver
Sql killedserver
 
Java OOP Programming language (Part 8) - Java Database JDBC
Java OOP Programming language (Part 8) - Java Database JDBCJava OOP Programming language (Part 8) - Java Database JDBC
Java OOP Programming language (Part 8) - Java Database JDBC
 
Stored procedure,transaction
Stored procedure,transactionStored procedure,transaction
Stored procedure,transaction
 
Oracle SQL Tuning
Oracle SQL TuningOracle SQL Tuning
Oracle SQL Tuning
 
My Database Skills Killed the Server
My Database Skills Killed the ServerMy Database Skills Killed the Server
My Database Skills Killed the Server
 
Stored procedures by thanveer danish melayi
Stored procedures by thanveer danish melayiStored procedures by thanveer danish melayi
Stored procedures by thanveer danish melayi
 
Msql
Msql Msql
Msql
 
Database training for developers
Database training for developersDatabase training for developers
Database training for developers
 
Jdbc oracle
Jdbc oracleJdbc oracle
Jdbc oracle
 
Tony jambu (obscure) tools of the trade for tuning oracle sq ls
Tony jambu   (obscure) tools of the trade for tuning oracle sq lsTony jambu   (obscure) tools of the trade for tuning oracle sq ls
Tony jambu (obscure) tools of the trade for tuning oracle sq ls
 
PostgreSQL Database Slides
PostgreSQL Database SlidesPostgreSQL Database Slides
PostgreSQL Database Slides
 
Module04
Module04Module04
Module04
 
Change tracking
Change trackingChange tracking
Change tracking
 

Mais de baabtra.com - No. 1 supplier of quality freshers

Mais de baabtra.com - No. 1 supplier of quality freshers (20)

Agile methodology and scrum development
Agile methodology and scrum developmentAgile methodology and scrum development
Agile methodology and scrum development
 
Best coding practices
Best coding practicesBest coding practices
Best coding practices
 
Core java - baabtra
Core java - baabtraCore java - baabtra
Core java - baabtra
 
Acquiring new skills what you should know
Acquiring new skills   what you should knowAcquiring new skills   what you should know
Acquiring new skills what you should know
 
Baabtra.com programming at school
Baabtra.com programming at schoolBaabtra.com programming at school
Baabtra.com programming at school
 
99LMS for Enterprises - LMS that you will love
99LMS for Enterprises - LMS that you will love 99LMS for Enterprises - LMS that you will love
99LMS for Enterprises - LMS that you will love
 
Php sessions & cookies
Php sessions & cookiesPhp sessions & cookies
Php sessions & cookies
 
Php database connectivity
Php database connectivityPhp database connectivity
Php database connectivity
 
Chapter 6 database normalisation
Chapter 6  database normalisationChapter 6  database normalisation
Chapter 6 database normalisation
 
Chapter 5 transactions and dcl statements
Chapter 5  transactions and dcl statementsChapter 5  transactions and dcl statements
Chapter 5 transactions and dcl statements
 
Chapter 4 functions, views, indexing
Chapter 4  functions, views, indexingChapter 4  functions, views, indexing
Chapter 4 functions, views, indexing
 
Chapter 2 grouping,scalar and aggergate functions,joins inner join,outer join
Chapter 2  grouping,scalar and aggergate functions,joins   inner join,outer joinChapter 2  grouping,scalar and aggergate functions,joins   inner join,outer join
Chapter 2 grouping,scalar and aggergate functions,joins inner join,outer join
 
Chapter 1 introduction to sql server
Chapter 1 introduction to sql serverChapter 1 introduction to sql server
Chapter 1 introduction to sql server
 
Chapter 1 introduction to sql server
Chapter 1 introduction to sql serverChapter 1 introduction to sql server
Chapter 1 introduction to sql server
 
Microsoft holo lens
Microsoft holo lensMicrosoft holo lens
Microsoft holo lens
 
Blue brain
Blue brainBlue brain
Blue brain
 
5g
5g5g
5g
 
Aptitude skills baabtra
Aptitude skills baabtraAptitude skills baabtra
Aptitude skills baabtra
 
Gd baabtra
Gd baabtraGd baabtra
Gd baabtra
 
Baabtra soft skills
Baabtra soft skillsBaabtra soft skills
Baabtra soft skills
 

Último

Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Último (20)

Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

Chapter 3 stored procedures

  • 1. Introduction To DBMS and SQL Server Stored Procedures
  • 2. Stored Procedures • A stored procedure is a method to encapsulate repetitive tasks. • A stored Procedure is actually stored in database data dictionary
  • 3. Without Stored Procedure Employee.jsp ...................... Select * from tbl_employee ................ Report.php .......................... Select * from tbl_employee ................. ..................... Select * from tbl_employee viewDetails.php .......................... ......................... Select * from tbl_employee ............... Database
  • 5. Advantages • Precompiled Execution •sqlserver compiles each stored procedure once and then re utilizes the execution plan. This result in tremendous performance boosts when stored procedures are called repeatedly • Reduced client server traffic •If network traffic is concerned you will be happy to learn that stored procedures can reduce long sql queries to a single line that is transmitted between application program and database server.
  • 6. Advantages • Efficient reuse of code and programming abstraction •Stored procedures can be used by multiple programs and users. If you utilize them in a planned manner, you’ll find the development cycle takes less time. • Enhanced Security Control •You can grant users permission to execute stored procedure independently of underlying table permissions
  • 7. How to create Stored Procedure ? example CREATE PROCEDURE getName(@id int) as BEGIN Select * from tbl_user where userid=@id; END EXEC getName @id=1 ;
  • 8. How to create Stored Procedure ? example CREATE PROCEDURE getName(@id int) BEGIN Select * from tbl_user where userid=@id; END EXEC getName @id=1; Is the keyword to create a new stored procedure .we can use proc also
  • 9. How to create Stored Procedure ? example CREATE PROCEDURE getName(@id int) BEGIN Select * from tbl_user where userid=@id; END EXEC getName @id=1 Is the name of the stored procedure that we are creating
  • 10. How to create Stored Procedure ? example CREATE PROCEDURE getName ( @id int) BEGIN Select * from tbl_user where userid=@id; END Call getName @id=1; Is the body of the stored procedure. Here we have only a single select query statements. We can also apply logic using the below • DECLARE a INT; : declaring an integer type variable • SET a=20; : Setting value of a to 20 • IF THEN • ELSE IF label1: LOOP SET p1 = p1 + 1; IF p1 < 10 THEN ITERATE label1; END IF; LEAVE label1; END LOOP label1; : For conditions : Loops
  • 11. How to create Stored Procedure ? example CREATE PROCEDURE getName ( @id int) BEGIN Select * from tbl_user where userid=@id; END exec getName=@id=1;
  • 12. How to create Stored Procedure ? example CREATE PROCEDURE getName ( @id int) BEGIN Select * from tbl_user where userid=@id; END exec getName @id=1; Calling the stored procedure we’ve just created and passing the value 1001 as its argument
  • 13. How to create Stored Procedure ? example CREATE PROCEDURE getSale1(@id int,@pri int output ,@sal int output) as BEGIN Select @pri=sum(price), @sal=avg(sales) from tbl_sales where pk_int_id=@id; END declare @total int declare @sale int exec getSale1 @id=1,@pri=@total output,@sal=@sale output; select @total; select @sale;
  • 14. • Create the below table Create a stored procedure called – csp_getSalary(1000) : should return the salary of employee with id as passed in the argument – Csp_getSalaryAtPlace(‘calicut’,@total) : should return the total salary of employees from a perticular place Live Task Tbl_employee Emp_id Emp_name Emp_age Emp_email int_salary vchr_place 1000 Deepak 24 dk@gmail.com 10000 Calicut 1001 Aneesh 23 an@gmail.com 20000 Cochin 1002 Naveen 25 nn@gmail.com 10000 Calicut 1003 Jacob 25 jb@gmail.com 30000 Cochin
  • 15. Cursors • SELECT INTO is fine for single-row queries, but many applications require the querying of multiple rows of data. You will use a cursor in SQL Server to accomplish this. • A cursor lets you fetch one or more rows from a SQL result set into stored program variables, usually with the intention of performing some row-by-row processing on the result set.
  • 16. Cursors - example create procedure CSP_status_change as begin declare @done int; set @done=0; declare @studId int; declare @studStatus bit; declare @dateDif int; declare @myCur cursor set @myCur = cursor for select pk_int_student_id,bln_student_status, datediff(day,dat_fph_date,GETDATE())as date_difference from tbl_students join tbl_fee_payment_history on fk_int_student_id=pk_int_student_id; open @myCur
  • 17. fetch next from @myCur into @studId,@studStatus,@dateDif; while @@FETCH_STATUS = 0 begin if @dateDif>15 update tbl_students set bln_student_status=0 where pk_int_student_id=@studId; else update tbl_students set bln_student_status=1 where pk_int_student_id=@studId; fetch next from @myCur into @studId,@studStatus,@dateDif; end; close @myCur; deallocate @myCur; END; exec CSP_status_change; fetch next from @myCur
  • 18. Questions? “A good question deserve a good grade…”
  • 20. • Why should someone use stored procedure? – To avoid data redundancy – To reduce network traffic between application server and database server – To ensure data integrity Self Check !!
  • 21. • Why should someone use stored procedure? – To avoid data redundancy – To reduce network traffic between application server and database server – To ensure data integrity Self Check !!
  • 22. Self Check !! • Why should someone change the delimiter before creating a stored procedure? – To use ; as separation between multiple statements in a stored procedure body – To push the server to compile the whole body of stored procedure all together – Both of above – None of above
  • 23. Self Check !! • Why should someone change the delimiter before creating a stored procedure? – To use ; as separation between multiple statements in a stored procedure body – To push the server to compile the whole body of stored procedure all together – Both of above – None of above
  • 24. Self Check !! CREATE PROCEDURE simpleProc ( OUT param1 INT) BEGIN SELECT COUNT(*) INTO param1 FROM t ; END EXEC simpleProc(@a); Select @a ;
  • 25. Self Check !! CREATE PROCEDURE simpleProc ( @param1 INT) BEGIN SELECT COUNT(*) INTO param1 FROM t ; END exec simpleProc(@a); Select @a ;
  • 26. Self Check !! What are the uses of cursors? •For extracting multiple rows from a table •For extracting multiple rows into variables from a table •For setting handlers
  • 27. Self Check !! What are the uses of cursors? •For extracting multiple rows from a table •For extracting multiple rows into variables from a table •For setting handlers