반응형

프로시저의 기본형태

CREATE DEFINER=`DB아이디`@`%` PROCEDURE `프로시저명`
BEGIN

  SELECT * 
  FROM 테이블명

END

DB에 접속하는 ID명을 적어준다. 

 

 

 

인자값 파라메터 받을때

CREATE DEFINER=`DB아이디`@`%` PROCEDURE `프로시저명`(

    IN 변수명 자료형

)
BEGIN

    SELECT *
    FROM 테이블명
    WHERE 컬럼명 = 변수명

END

받을 변수명과 자료형 (INT, VARCHAR(40) 등)을 입력해준다.

받을때는 IN 을 사용

 

 

 

변수 할당하기

CREATE DEFINER=`DB아이디`@`%` PROCEDURE `프로시저명`(

    IN 변수명 자료형

)
BEGIN
    SET @v_code = '123';
    
    SELECT *
    FROM 테이블명
    WHERE 컬럼 = 변수명 AND
    	  컬럼 = @v_code

END

변수를 할당할때 바로 값을 적어도 되지만 서브쿼리를 사용하여

@v_code = (select 컬럼명 from 테이블 where 조건...)

등으로 할당 할 수 있다.

 

 

 

조건문 사용하기 IF, ELSEIF, OR, AND..

CREATE DEFINER=`DB아이디`@`%` PROCEDURE `프로시저명`(

    IN 변수명 자료형

)
BEGIN
    SET @v_code = '123';
    
    IF @v_code!='' THEN

      SELECT *
      FROM 테이블명
      WHERE 컬럼 = 변수명 AND
    	    컬럼 = @v_code
    
    END IF;

END

if 절은 

IF 조건문 OR 조건문 THEN

    실행문구

ELSE IF 조건문 THEN

    실행문구

END IF;

 

등의 형태로 쓸 수 있으며

NULL체크는 IS NOT NULL / IS NULL 을 쓸 수 있다.

같지 않음은 !=와 <> 둘다 가능

 

프로시저 생성이 안될땐 

프로시저의 상단에 DELIMITER ;; 혹은 DELIMITER $$ 를 붙여주면 된다. 

728x90

+ Recent posts