티스토리 뷰
서론
SQL에서는 같은 함수라도 Function과 procedure가 분리되어 있습니다. 이번 포스팅에서는 SQL로 function를 만드는 방법을 소개합니다.
본론
function은 일반적으로 값을 반환해야하나, 아주 일부는 반환하지 않을 수 있습니다. 그때는 RETUNRS의 타입을 VOID로 지정하면 됩니다.
기본 형태
CREATE FUNCTION function_name [ (parameter datatype [, parameter datatype]) ]
RETURNS return_datatype
BEGIN
declaration_section
executable_section
END;
위의 코드에서도 보이듯 C언어처럼 선언부와 실행부가 나뉘어져 있는 모습을 확인할 수 있습니다.
선언부
선언
변수의 선언은 DECLARE예약어를 사용합니다.
아래 형식처럼 사용할 변수를 선언합니다.
DECLARE 변수이름 변수타입
BEGIN
DECLARE income INT;
...
END;
변수이름에 대한 규칙은 관련 사이트에서 확인할 수 있습니다. 간단하게 살펴본 바에 따르면 타입표기 후 스네이크표기법을 사용한 듯한 느낌입니다.
대입
변수를 선언했으면 값을 넣어야합니다. 이때는 SET 예약어를 사용합니다.
SQL에서는 =은 비교기호이기 때문에 SET을 사용하여 값을 대입합니다.
SET income = 0;
SET income = income + 5;
실행부
계산부분을 작성하면 됩니다.
중요한 점은 값을 반환하는 function이라면 RETURN 예약어를 이용해 값을 반환해 주어야 합니다.
#어떤 계산들
RETURN (어떤 값);
결론
function은 procedure과 다르게 계산에 목적이 있습니다. 둘의 차이를 잘 설명하는 포스팅을 작성해야 겠습니다.
'개발자 > 데이터베이스(DB)' 카테고리의 다른 글
| [SQL] 순위를 지정하는 RANK 함수 (0) | 2024.02.07 |
|---|---|
| [SQL] LEFT JOIN과 ON (0) | 2024.02.06 |
| [SQL] GROUP BY와 HAVING (0) | 2024.02.06 |
