요약: 이번 강좌에서는, 저장 프로시저(Stored Procedure) 에서 IF문 과 CASE문을 선택하는데 도움을 줄 만한 힌트를 알려 줄 것이다.
MySQL은 흐름 제어(flow control) 처럼 특정한 조건에 맞는 SQL 코드를 실행 하기 위해 IF 문과 CASE문을 제공한다. 그렇다면 둘 중 어떤 문법을 사용해야 할까? 대부분의 개발자들은 IF와 CASE문을 선택하는 것을 개인의 선호도로 선택 한다. 하지만, IF나 CASE를 결정 했을 때, 아래 사항들을 고려 해봐야 한다.
간단한 CASE 문은 특정한 값의 범위에 대한 간단한 표현식을 비교 했을 때는, IF문 보다 CASE문이 더 가독성이 좋다. 추가로, simple CASE문은 IF문 보다 더 효율적이다.
다중 값을 기반으로 하는 복잡한 표현식을 확인 할 때는, IF문이 이해하는데 더 쉽다.
만약 CASE문을 사용하기로 선택 했다면, 적어도 CASE 조건이 맞는 하나는 있어야 한다. 그렇지 않을 경우에 에러를 잡기 위한 에러 핸들러(error handler)를 정의 해야할 필요가 있다. IF 문은 그럴 필요가 없다.
대부분의 기업에서는 반드시 개발자 가이드라인 문서라고 불리우는 것을 제공한다. 이 문서는 이름 짓기, 프로그래밍 스타일의 가이드라인 같은 내용을 개발자에게 제공한다. 이 문서를 참고해서 개발 연습을 해야 한다.
몇몇 상황에서는, 저장 프로시저를 더 가독성 있고 효율성 있게 만들기 위해서는 IF 와 CASE를 잘 섞어야 한다.
출처 : http://www.mysqltutorial.org/conditional-control-if-case-statement-stored-procedures.aspx
이전 글 : [Stored Procedure] 7. MySQL CASE 문법 ( MySQL CASE Statement )
다음 글 : [Stored Procedure] 9. 저장 프로시저 에서의 반복 ( MySQL Loop in Stored Procedures )
'프로그래밍 > MySQL' 카테고리의 다른 글
[Stored Procedure] 10. MySQL Cursor (1) | 2016.08.04 |
---|---|
[Stored Procedure] 9. 저장 프로시저 에서의 반복 (0) | 2016.08.03 |
[Stored Procedure] 7. MySQL CASE 문법 (2) | 2016.07.29 |
[Stored Procedure] 6. MySQL IF 문법 (0) | 2016.07.28 |
[Stored Procedure] 5. MySQL Stored Procedure 다중 값 반환 (0) | 2016.07.27 |