728x90
반응형
SMALL
안녕하세요! 😊 오늘은 MySQL에서 자주 쓰이는 PROCEDURE와 FUNCTION에 대해 알아볼 거예요.
둘 다 데이터베이스 작업을 효율적으로 처리하는 데 도움을 주는 중요한 도구예요. 초보 개발자분들도 쉽게 이해할 수 있도록 하나씩 차근차근 설명드릴게요. 🚀
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과 트랜잭션
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 문에서 바로 사용 가능 |
작업 중 문제 해결 팁!
- 에러 발생 시 로그 확인
MySQL의 에러 로그를 보면 해결에 도움이 돼요. - DELIMITER 꼭 확인
DELIMITER 설정을 잘못하면 에러가 날 수 있으니, 신경 써주세요!
😊 여러분도 PROCDURE와 FUNCTION을 연습하면서 데이터 작업을 더 스마트하게 처리해보세요!
포기하지 말고, 천천히 익혀보는 게 중요해요. 화이팅! 💪
반응형
SMALL
'데이터베이스 > MYSQL' 카테고리의 다른 글
MySQL 기초: SELECT, INSERT, UPDATE, DELETE 한 번에 배우기 (0) | 2024.12.19 |
---|---|
MySQL DELIMITER 사용법: 초보자도 쉽게 배우는 BEGIN과 트랜잭션 (0) | 2024.12.19 |
MySQL에서 COUNT, SUM, AVG, MAX, MIN, GROUP_CONCAT() 완벽 가이드 (0) | 2024.12.19 |
MySQL 테이블 설계: PRIMARY KEY, FOREIGN KEY, DEFAULT 알아보기 (0) | 2024.12.19 |
MySQL JOIN 완벽 가이드: INNER, LEFT, RIGHT, FULL 이해하기 (0) | 2024.12.19 |