본문 바로가기
Database/SQL

[PostgreSQL] 함수(Function)

by 혀나Lee 2016. 9. 26.

함수 (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

댓글