요약 : 이번 강좌에서는 조건에 맞는 SQL 코드 단락을 실행하는 MySQL IF 문법의 사용방법에 대해서 알아 볼 것이다.
MySQL IF 문은 식의 특정한 조건이나 값에 맞는 SQL 문을 실행할 수 있다. MySQL에서 식을 형성하려면, 문자, 변수 연산자 심지어 함수도 결합할 수 있다. 표현식은 세개의 값(TRUE, FALSE, NULL) 중 하나를 반환한다.
링크의 IF 함수는 이번 강좌에서의 IF문 과는 차이가 있다.
MySQL IF 문 구조
IF 문의 구조는 아래의 설명을 따른다.
1 2 3 | IF expression THEN statements; END IF; | cs |
만약 조건식(expression)이 TRUE 일 경우에는 statements 식을 실행 할 것이고, 그렇지 않으면 다음 상태인 END IF로 넘어 갈 것이다.
IF 문을 순서도(FlowChart) 그림은 아래와 같다.
MySQL IF ELSE 문
이번 케이스에서는 조건식(expression)의 값이 FALSE 일때의 식(statement)을 실행하고 싶다면, 아래처럼 IF ELSE 문을 사용할 수 있다.
1 2 3 4 5 | IF expression THEN statements; ELSE else-statements; END IF; | cs |
아래는 IF ELSE 문의 순서도 그림이다.
MySQL IF ELSEIF ELSE 문법
만약 다양한 조건 식을 실행하고 싶다면, 아래 처럼 IF ELSEIF ELSE 문을 사용할 수 있다.
1 2 3 4 5 6 7 8 | IF expression THEN statements; ELSEIF elseif-expression THEN elseif-statements; ... ELSE else-statements; END IF; | cs |
만약 조건식(expression)의 값이 TRUE 이면, statement를 실행할 것이다. 만약 조건식(expression)의 값이 FALSE 이면, MySQL은 다른 조건식(elseif-expression)을 체크하고 다른 조건식의 값이 TRUE이면 elseif-statement를 실행 할 것이다.
IF문은 다양한 조건식을 확인하기 위해 많은 ELSEIF 가지(branch)를 가질 수 있다. 만약 맞는 조건식이 없다면, ELSE에 있는 else-statement 가 실행 될 것이다.
MySQL IF 문 예제
아래의 예제는 어떻게 IF ELSEIF ELSE 문을 사용하는지 보여주고 있다. GetCustomerLevel()은 두개의 매개변수(customer number, customer level)를 받는 저장 프로시저이다.
첫번째로, customer 테이블로 부터 신용 한도를 받아온다.
그 후, 신용 한도에 맞는 customer level(PLATINUM, GOLD, SILVER)를 결정한다.
매개변수 p_customerlevel은 customer의 level을 저장하고 호출 프로그램에서 사용되어진다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | DELIMITER $$ CREATE PROCEDURE GetCustomerLevel( IN p_customerNumber int(11), OUT p_customerLevel varchar(10)) BEGIN DECLARE creditlim double; SELECT creditlimit INTO creditlim FROM customers WHERE customerNumber = p_customerNumber; IF creditlim > 50000 THEN SET p_customerLevel = 'PLATINUM'; ELSEIF (creditlim <= 50000 AND creditlim >= 10000) THEN SET p_customerLevel = 'GOLD'; ELSEIF creditlim < 10000 THEN SET p_customerLevel = 'SILVER'; END IF; END$$ DELIMITER ; | cs |
아래의 순서도는 customer level을 결정하는 로직을 설명하고 있다.
이번 강좌에서, 조건에 맞는 SQL 코드 를 실행하게 해주는 MySQL IF문을 어떻게 사용하는지에 대해서 배워보았다.
출처 : http://www.mysqltutorial.org/mysql-if-statement/
'프로그래밍 > MySQL' 카테고리의 다른 글
[Stored Procedure] 8. IF 문과 CASE문 중 선택하는 팁 (0) | 2016.08.01 |
---|---|
[Stored Procedure] 7. MySQL CASE 문법 (2) | 2016.07.29 |
[Stored Procedure] 5. MySQL Stored Procedure 다중 값 반환 (0) | 2016.07.27 |
[Stored Procedure] 4. MySQL Stored Procedure 매개변수 (0) | 2016.07.26 |
[Stored Procedure] 3. MySQL Stored Procedure 변수 (1) | 2016.07.25 |