반응형
오늘은 스토어드 프로시저(stored procedure)에 대해서 알아보도록 하겠습니다. 스토어드 프로시저는 일련의 SQL문들을 하나로 묶어서 한 번에 수행할 수 있도록 도와주는 기능입니다.
스토어드 프로시저는 다음과 같이 만듭니다.
DELIMITER //
CREATE PROCEDURE 프로시저명()
BEGIN
SQL문
...
SQL문
END //
DELIMITER ;
호출할 때 사용할 이름을 만들어 주고, BEGIN과 END // 사이에 SQL 문들을 넣어주면 됩니다.
그리고 생성한 프로시저를 호출할 때는 다음과 같이 명령을 주면 됩니다.
CALL 프로시저명();
한 번 예시를 보여드리겠습니다. test 데이터베이스에 student라는 테이블이 있는 상황이라고 가정하겠습니다.
위와 같이 프로시저를 만들고, CALL로 호출했더니 두 개의 SQL 문이 순차적으로 실행된 것을 확인하실 수 있습니다. 첫번째 SQL문으로 인해서 22개의 행이 반환되었고, 두번째 SQL문으로 인해서 1개의 행이 반환된 것입니다.
한 번 생성한 스토어드 프로시저는 수정이 안 됩니다. 변경하고 싶다면 기존에 생성한 프로시저를 삭제한 후에 다시 생성해야 합니다. 삭제하는 방법은 다음과 같습니다.
DROP PROCEDURE 프로시저명();
방금 예제에서 생성한 프로시저를 삭제하고 싶다면, DROP PROCEDURE exProc(); 을 실행하면 됩니다.
스토어드 프로시저는 실무에서 많이 쓰인다고 하니, 익혀두시면 좋을 것 같습니다.
반응형
'데이터베이스 > MySQL, MariaDB' 카테고리의 다른 글
[MariaDB] Order by, 여러 개로 정렬하기 (더 중요한 것을 앞에) (2) | 2021.05.28 |
---|---|
[MariaDB] SELECT 한 것을 INSERT 하기, INSERT INTO ... SELECT문 (2) | 2021.05.18 |
[MariaDB] 특정 열의 값이 NULL이 아닌 것만 보려면 (2) | 2021.05.17 |
MySQL workbench에서 select로 조회했는데 row들이 잘 안 보일 때 (0) | 2021.05.14 |
[MariaDB] 스토어드 프로시저 사용법 (3) | 2021.05.01 |
MySQL workbench에서 delete 안 될 때 해결방법 (error code: 1175) (0) | 2021.04.23 |
[MariaDB] enum 데이터 타입 (0) | 2021.03.25 |
[MariaDB] LIKE를 사용하여 특정 문자열 검색하기 (0) | 2021.01.13 |
[MariaDB] GROUP BY 사용 예제(+ HAVING) (0) | 2021.01.12 |
이라는건 알겠는데, 왜 SQL문들을 하나로 묶어서 한 번에 수행해야하나요?