롸?
Procedure & Function 본문
저장 프로시저 (Stored Procedure)
-
여러 sql문을 하나의 sql문처럼 정리하여 실행할 수 있게 만든 것
-
Call 프로시저명; 으로 호출해서 사용한다
-
변수, 조건문, 반복문 등과 같은 프로그래밍 기법을 구사할 수 있어 SQL 처리를 좀 더 빠르고도 효과적으로 할 수 있다.
프로시저 기본 구조
CREATE [OR REPLACE] PROCEDURE 프로시저_이름( )
BEGIN
작업할 SQL문
...
작업할 SQL문
END
프로시저의 내용은 begin부터 end까지이다. 도중의 sql문의 끝에는 [ ; ] 를 작성해야한다. 하지만 프로시저 본체는 평범한 sql문으로 읽기 때문에 프로시저가 끝나기 전에 sql문의 [ ; ] 를 만나면서 종료하게 된다.
따라서 [ ; ] 를 만나도 종료되지 않도록 구분문자를 바꿔줘야 하는데 이때 delimiter 명령을 사용한다
Delimiter : 구문 문자 정의
delimiter $$
즉 이 뒤로는 $$를 써야 종료된다는 의미
Delimiter 를 포함하여 프로시저를 작성하면 이렇게 된다. ($$ 혹은 // 를 써도 된다)
DELIMITER $$
CREATE PROCETURE 프로시저_이름( )
BEGIN
작업 sql문
...
END $$
DELIMITER ;
저장 함수(Stored Function)
-
프로시저와 거의 동일
-
프로시저와 다르게 실행 후 값을 반환한다.
저장 함수 기본 구조
DELIMITER $$
CREATE [OR REPLACE] FUNCTION 함수_이름( ) RETURNS 반환값의자료형
BEGIN
SQL문
...
END
DELIMITER ;
함수 활용하기 예시
SELECT 함수명(인자값);
함수는 값을 반환하기 때문에 call이 아닌 select로 값을 표시한다.
(프로시저와 함수 모두 인자값은 필수가 아닌 선택임)
참고
'DB > Maria DB' 카테고리의 다른 글
| properties를 이용한 MariaDB 연결 (0) | 2020.02.17 |
|---|---|
| 이클립스에서 MariaDB 드라이버 로딩 방법 (0) | 2020.02.17 |
| View (0) | 2020.02.14 |
| 트랜잭션(Transactions) (0) | 2020.02.13 |
| Subquery - 2 (0) | 2020.02.13 |