데이터베이스/MYSQL

MySQL Procedure와 Function: 초보자를 위한 쉬운 가이드

CodeCaine Explorer 2024. 12. 19. 16:47
728x90
반응형
SMALL

안녕하세요! 😊 오늘은 MySQL에서 자주 쓰이는 PROCEDUREFUNCTION에 대해 알아볼 거예요.

둘 다 데이터베이스 작업을 효율적으로 처리하는 데 도움을 주는 중요한 도구예요. 초보 개발자분들도 쉽게 이해할 수 있도록 하나씩 차근차근 설명드릴게요. 🚀


PROCEDURE와 FUNCTION이 뭔가요?

  • PROCEDURE(프로시저): 미리 정의된 작업을 수행하는 SQL 문들의 집합이에요. 여러 SQL 명령문을 한 번에 실행할 수 있게 도와준답니다.
    (예: 대량의 데이터를 업데이트하거나 보고서를 생성하는 작업)
  • FUNCTION(함수): 어떤 값을 계산하거나 처리해서 결과값을 반환하는 작업이에요. 주로 계산, 변환 등에 쓰여요.
    (예: 특정 날짜의 포맷을 변경하거나 숫자 연산)

간단히 요약하면:

  • PROCEDURE: 결과를 반환하지 않는 일 처리에 사용.
  • FUNCTION: 결과를 반환하는 값 계산에 사용.

PROCEDURE 만들기

다음은 PROCEDURE를 만드는 기본 문법이에요:

DELIMITER $$

CREATE PROCEDURE procedure_name(IN parameter_name datatype)
BEGIN
    -- 실행할 SQL 문
    SELECT * FROM table_name WHERE column_name = parameter_name;
END $$

DELIMITER ;

예제: 특정 부서의 직원 조회하기

DELIMITER $$

CREATE PROCEDURE GetEmployeesByDept(IN dept_id INT)
BEGIN
    SELECT * 
    FROM employees 
    WHERE department_id = dept_id;
END $$

DELIMITER ;
  • IN: 매개변수의 방향을 지정 (입력값)
  • dept_id: 부서 ID를 입력받아 관련 직원 정보를 조회해요.

호출 방법:

CALL GetEmployeesByDept(101);

2024.12.19 - [데이터베이스/MYSQL] - MySQL DELIMITER 사용법: 초보자도 쉽게 배우는 BEGIN과 트랜잭션

 

MySQL DELIMITER 사용법: 초보자도 쉽게 배우는 BEGIN과 트랜잭션

안녕하세요! 😊 MySQL에서 DELIMITER를 사용해 트랜잭션이나 저장 프로시저 같은 복잡한 SQL 작업을 처리하는 방법을 배워볼 거예요. 걱정하지 마세요, 정말 쉽답니다! 🐥🌟 DELIMITER란?MySQL에서 명령

alswnsghd1234.tistory.com

 

FUNCTION 만들기

다음은 FUNCTION을 만드는 기본 문법이에요:

DELIMITER $$

CREATE FUNCTION function_name(parameter_name datatype)
RETURNS datatype
DETERMINISTIC
BEGIN
    -- 반환할 값 정의
    RETURN some_value;
END $$

DELIMITER ;

예제: 두 숫자를 더하는 함수

DELIMITER $$

CREATE FUNCTION AddNumbers(a INT, b INT)
RETURNS INT
DETERMINISTIC
BEGIN
    RETURN a + b;
END $$

DELIMITER ;

호출 방법:

SELECT AddNumbers(5, 10);

PROCEDURE와 FUNCTION의 차이점

구분 PROCEDURE FUNCTION
반환값 없음 (결과집합 가능) 단일 값 반환
호출 방법 CALL procedure_name() SELECT function_name()
사용 목적 여러 작업 처리 값 계산 및 변환
SQL 내 사용 별도 호출 필요 SQL 문에서 바로 사용 가능

작업 중 문제 해결 팁!

  1. 에러 발생 시 로그 확인
    MySQL의 에러 로그를 보면 해결에 도움이 돼요.
  2. DELIMITER 꼭 확인
    DELIMITER 설정을 잘못하면 에러가 날 수 있으니, 신경 써주세요!

😊 여러분도 PROCDURE와 FUNCTION을 연습하면서 데이터 작업을 더 스마트하게 처리해보세요!
포기하지 말고, 천천히 익혀보는 게 중요해요. 화이팅! 💪

반응형
SMALL