기록이 힘이다.

[혼공 SQL] SQL 프로그래밍 본문

SQL

[혼공 SQL] SQL 프로그래밍

dev22 2022. 12. 13. 14:16
728x90

스토어드 프로시저는 MySQL에서 프로그래밍 기능이 필요할 때 사용하는 데이터베이스 개체입니다. 

SQL 프로그래밍은 기본적으로 스토어드 프로시저 안에 만들어야 합니다. 

 

IF문

if문의 기본 형식

조건식이 참이라면 'SQL문장들'을 실행하고, 그렇지 않으면 그냥 넘어갑니다.

IF <조건식> THEN
           SQL 문장들
END IF;

IF ~ ELSE 문

조건에 따라 다른 부분을 수행합니다. 조건이 참이라면 'SQL문장들1'을 실행하고, 그렇지 않으면 'SQL문장들2'를 실행합니다.

IF <조건식> THEN
           SQL 문장들
ELSE <조건식> THEN
           SQL 문장들
END IF;

IF문의 활용

CASE문

 

CASE 문의 기본 형식

IF문은 참 아니면 거짓 두 가지만 있기 때문에 2중 분기라는 용어를 사용합니다. CASE 문은 2가지 이상의 여러가지 경우일 때 처리가 가능하므로 '다중 분기'라고 부릅니다.

CASE
    WHEN 조건1 THEN
          SQL 문장들1
   WHEN 조건2 THEN
         SQL 문장들2
    WHEN 조건3 THEN
        SQL 문장들3
    ELSE 
        SQL 문장들4
END CASE;

CASE문의 활용

 

 

WHILE문

 

WHILE 문의 기본 형식

조건식이 참인 동안에 'SQL문장들'을 계속 반복합니다. 

WHILE <조건식> DO
     SQL 문장들
END WHILE;

WHILE문의 응용

동적 SQL

상황에 따라 내용 변경이 필요할 때 동적 SQL을 사용하면 변경되는 내용을 실시간으로 적용시켜 사용할 수 있습니다. 

 

PREPARE와 EXECUTE

PREPARE는 SQL 문을 실행하지는 않고 미리 준비만 해놓고, EXECUTE는 준비한 SQL문을 실행합니다. 그리고 실행 후에는 DEALLOCATE PREFARE로 문장을 해제해주는 것이 바람직합니다.

동적 SQL의 활용

PREPARE 문에서는 ?로 향후에 입력될 값을 비워 놓고, EXECUTE에서 USING으로 ?에 값을 전달할 수 있습니다. 그러면 실시간으로 필요한 값들을 전달해서 동적으로 SQL이 실행됩니다.