본문으로 바로가기

MySQL 저장 프로시저

category 데이터베이스/MySQL 2018. 12. 27. 18:07

MySQL 저장 프로시저

저장 프로시저는 말 그대로 저장 하여 실행한다는 뜻으로

 

저장된 코드가 있으면 이를 재사용 할 수 있습니다.

 

반복적으로 작성하는 SQL 쿼리를 저장 프로 시저로 저장 한 다음 실행하여 호출하면됩니다.

 

저장 프로 시저 구문

CREATE PROCEDURE procedure_name
AS
sql_statement
GO;

이렇게 구문이 이루어집니다.

 

즉 CREATE PROCEDURE로 프로시저를 생성합니다.

 

sql_statement는 sql 쿼리입니다.

 

이를 실행 하려면??

 

저장 프로 시저 실행

EXEC procedure_name;

이렇게 EXEC로 실행하시면 됩니다.

 

저장을 해놓고 하면 효율적이기도하고 편리하게 사용 할 수 있습니다.

 

 

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

 

이렇게 테이블이 있으면

 

위의 구문의 형태로 작성해보면

 

CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;

 

selectAllCustomers라는 프로시저로 SQL 쿼리인 select * from customers 을 담습니다.

 

이를 Exec SelectAllCustomers를 실행하면

 

앞서 담은 SQL 쿼리문인 select * from customers 가 실행이 되겠죠.

 

간단하면서도 효율적입니다.

 

또한 여러 매개변수가 있을 수도 있는데 이때는

 

쉼표로 구분합니다. 즉

 

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode
GO;

 

City별 고객 뽑는 것과 PostalCode로 뽑는 두개의 매개변수가 있는 프로시저를 만듭니다.

 

이를 실행하려면!!

 

EXEC SelectAllCustomers City = "London", PostalCode = "WA1 1DP";

 

이렇게 두 매개변수의 값을 넣어서 실행하면 되겠죠 ??

 

 

'데이터베이스 > MySQL' 카테고리의 다른 글

MySQL 함수들(1)  (0) 2018.12.29
MySQL 데이터베이스  (0) 2018.12.28
MySQL CASE  (0) 2018.12.27
MySQL INSERT INTO SELECT  (0) 2018.12.27
MySQL 테이블 복사  (0) 2018.12.24