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 |