저장 프로시저(Stored Procedure)란?
일련의 SQL문장을 선언해서 MySQL에 저장하고, 해당 SQL문을 함수처럼 사용하는것으로 만들어 두기만 하면 함수처럼 호출하여 편하게 사용할 수 있다.
- 장점
- 하나의 프로시저로 여러 SQL문의 실행이 가능하다. (모듈화)
- 호스팅 언어와 SQL문이 분리되어 보수가 용이하다.
- 네트워크 소요 시간을 줄일 수 있다. (구문 분석 및 코드 변환을 미리 진행하여 처리 시간이 단축됨)
- 단점
- 재사용성이 낮다. (DB 버전 별 구문 규칙과 호환성이 다름)
- 처리 성능이 좋지않다. (MySQL 스토어드의 프로그램 처리 성능이 낮다)
실습
1. 테이블 생성
2. 프로시저 생성
delimiter $$
create procedure 이름 (매개변수)
begin
# SQL문
end $$
delimiter ;
💡 프로시저 내부에 세미콜론이 많을 경우, SQL문이 나눠져 서버로 보내지게 되어 프로시저가 어디까지인지 모른다.
따라서 DELIMITER $$를 선언하고, 프로시저 작성이 끝날 경우 END $$로 프로시저의 끝을 알려야 한다. END $$로 끝나는 부분을 표시하고, 마지막에 DELIMITER를 세미콜론으로 바꿔준다.
3. 프로시저 호출
call 프로시저이름 (매개변수);
4. 입력된 데이터 select 화면
'✏️ > Database' 카테고리의 다른 글
[MySQL] Mac OS - error 2002 (hy000) can't connect to local mysql server through socket '/tmp/mysql.sock' (2) 해결 (0) | 2021.10.10 |
---|---|
[MySQL] 사용자 추가, 권한 설정, 삭제 (0) | 2021.09.13 |