함수 (Function)
PostgreSQL에서는 저장 프로시저(Stored Procedure) 를 사용하지 않고 함수(Function)을 사용한다.
함수 만들기
CREATE [OR REPLACE] FUNCTION function_name (arguments)
RETURNS return_datatype AS $variable_name$
DECLARE
declaration;
[. . .]
BEGIN
< function_body >
[. . .]
RETURN { variable_name | value }
END; LANGUAGE plpgsql;
- function_name: 함수의 이름
- [OR REPLACE]: 존재하는 함수를 수정하는 것을 허락하는 옵션
- 함수는 return 을 포함해야 한다.
- RETURN: 은 함수의 결과로 반환되는 데이터 타입을 적어줘야 한다.
- return_datetype: base, composite, or domain type, or reference the type of a table column
- function-body: 실제 실행 부분
- plpgsql: 함수가 만들어지는데 사용된 언어 (SQL, C, internal, or 사용자 정의된 프로시저 이름)
예제
CREATE OR REPLACE FUNCTION infoTotal ()
RETURNS integer AS $total$
DECLARE
total integer;
BEGIN
SELECT count (*) into total FROM test_table;
RETURN total;
END;
$total$ LANGUAGE plpgsql;
company라는 테이블의 튜플(행)들의 수(카디널리티)를 구하는 함수이다.
SELECT infoTotal();
를 통해 조회할 수 있다.
'Database > SQL' 카테고리의 다른 글
[PostgreSQL] 도메인, 인덱스, 트리거 (0) | 2016.09.26 |
---|---|
[PostgreSQL] 제약 조건 (0) | 2016.09.26 |
[SQL] 저장 프로시저(Procedure) (0) | 2016.09.26 |
[SQL] 뷰(View) (0) | 2016.09.23 |
[SQL] 연산자 (0) | 2016.09.23 |
댓글