Skip to Content
PostgreSQL: 시작부터 실행까지, 3판
book

PostgreSQL: 시작부터 실행까지, 3판

by Regina O. Obe, Leo S. Hsu
May 2025
Beginner to intermediate
314 pages
5h 4m
Korean
O'Reilly Media, Inc.
Book available
Content preview from PostgreSQL: 시작부터 실행까지, 3판

8장. 함수 쓰기

이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com

대부분의 데이터베이스에서와 마찬가지로 PostgreSQL에서는 일련의 SQL 문을 함께 묶어 하나의 단위로 취급할 수 있으며, 인수를 전달하여 각 실행을 사용자 정의할 수도 있습니다. 데이터베이스마다 이 단위에 대해 저장 프로시저, 사용자 정의 함수 등 다양한 이름을 붙입니다. PostgreSQL에서는 이를 단순히 함수로 지칭합니다.

함수는 SQL 문을 마샬링하는 것 외에도 PL을 사용하여 SQL 실행을 제어하는 기능을 추가하는 경우가 많습니다. PostgreSQL은 함수 작성을 위한 다양한 언어를 제공합니다. SQL, C, PL/pgSQL, PL/Perl 및 PL/Python은 설치 프로그램과 함께 패키지로 제공되는 경우가 많습니다. 또한, JavaScript로 절차적 함수를 작성할 수 있는 PL/V8( )도 있습니다. PL/V8은 웹 개발자들이 즐겨 사용하는 언어이며 'JSON'에서 다루는 기본 제공 JSON 및 JSONB 데이터 유형과 함께 사랑받는 동반자라고 할 수 있습니다.

또한 PL/R, PL/Java, PL/sh, PL/TSQL과 같은 추가 언어를 설치할 수 있으며, 고급 데이터 처리 및 인공 지능을 위한 실험적인 언어인 PL/Scheme 또는 PL/OpenCL도 설치할 수 있습니다. 사용 가능한 언어 목록은 절차적 언어에서 확인할 수 있습니다.

PostgreSQL 함수의 해부학

PostgreSQL 함수( )는 기본 함수, 집계 함수, 윈도우 함수, 트리거 함수의 범주에 속합니다. 함수의 기본 구조에 대해 자세히 설명한 다음 여기에서 다양한 종류의 특수 함수 유형이 어떻게 확장되는지 자세히 살펴보겠습니다.

기능 기본 사항

함수 작성에 어떤 언어를 선택하든 모든 함수는 예제 8-1에 표시된 것처럼 비슷한 구조를 공유합니다.

예제 8-1. 기본 기능 구조
CREATE OR REPLACE FUNCTION func_name(arg1 arg1_datatype DEFAULT arg1_default)
RETURNS some type | set of some type | TABLE (..) AS
$$
BODY of function
$$
LANGUAGE language_of_function

인수는 기본값을 가질 수 있으며, 함수 호출자가 이를 생략할 수 있습니다. 선택적 인수는 함수 정의에서 선택적 인수가 아닌 인수 뒤에 위치해야 합니다.

인수 이름 은 선택 사항이지만 함수 본문 내에서 이름으로 인수를 참조할 수 있으므로 유용합니다. 예를 들어 세 개의 입력 인수를 받도록 정의된 함수를 생각해 보겠습니다(두 개는 선택 사항):

big_elephant(ear_size numeric, skin_color text DEFAULT 'blue', 
name text DEFAULT 'Dumbo')

함수 본문에서 이름(ear_size, skin_color, 등)으로 인수를 참조할 수 있습니다. 이름이 지정되지 않은 경우 함수 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

러닝 SQL: 데이터 생성, 검색, 조작까지 데이터 제대로 주무르기

러닝 SQL: 데이터 생성, 검색, 조작까지 데이터 제대로 주무르기

류수미, 송희정, 앨런 볼리외
생성형 AI를 위한 프롬프트 엔지니어링

생성형 AI를 위한 프롬프트 엔지니어링

제임스 피닉스, 마이크 테일러

Publisher Resources

ISBN: 9798341655270Supplemental Content