PL/pgSQL

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

PL/pgSQL은 PostgreSQL의 표준 절차적 언어이다. SQL/PSM과 유사하지만, 오라클의 PL/SQL에서 영향을 받아 예외 처리 방식, 경고 처리, 변수 선언 방식 등에서 차이점을 보인다. PL/pgSQL은 SQL 및 PL/pgSQL 스크립트의 문서화를 지원하며, 다양한 문서 생성 도구를 사용할 수 있다. PostgreSQL은 PL/pgSQL 외에도 PL/PSM, PL/Java, PL/Perl, plPHP, PL/Python, PL/R, PL/Ruby, PL/sh, PL/Tcl 등 다양한 절차적 언어를 지원한다.

PL/pgSQL - [IT 관련 정보]에 관한 문서
기본 정보
로고
로고
이름PL/pgSQL
종류프로그래밍 언어
개발
디자이너얀 비크
개발자PostgreSQL 글로벌 개발 그룹
최초 출시일1998년 10월 30일
특징
기타 정보
웹사이트PL/pgSQL 공식 문서
영향을 받은 언어PL/SQL, 에이다
📚 더 읽어볼만한 페이지
  • PostgreSQL - 아마존 레드시프트
  • PostgreSQL - DBeaver
    DBeaver는 2010년 이반 포포프가 개발한 오픈 소스 데이터베이스 관리 도구로, 다양한 데이터베이스 시스템 지원, 사용자 친화적 인터페이스, 여러 버전 제공, 다양한 운영체제 및 언어 지원, SQL 쿼리 실행 및 편집, 데이터 브라우징 및 편집, 데이터베이스 구조 탐색 및 편집 등 다양한 기능을 제공한다.
  • 데이터 중심 프로그래밍 언어 - 마이크로소프트 액세스
    마이크로소프트 액세스는 1992년 출시된 데이터베이스 관리 시스템으로, 테이블, 쿼리, 폼 등을 생성하고 VBA를 통해 솔루션을 개발하며, 윈도우에서 사용 가능하고 다양한 데이터 형식과 통합된다.
  • 데이터 중심 프로그래밍 언어 - SQL
    SQL은 관계형 데이터베이스 관리 시스템에서 데이터를 관리하고 조작하기 위해 설계된 표준 프로그래밍 언어로서, 데이터 정의어, 데이터 조작어, 데이터 제어어를 포함하는 다양한 명령어 문법을 제공하며 ANSI와 ISO에 의해 표준으로 채택되었다.
  • SQL - 사용자 정의 함수
    사용자 정의 함수는 프로그래밍 언어와 데이터베이스 시스템에서 사용자가 직접 정의하여 재사용할 수 있는 코드 블록이다.
  • SQL - 임베디드 SQL
    임베디드 SQL은 호스트 프로그래밍 언어 내에 SQL 문을 삽입하여 데이터베이스와 상호 작용하는 기술로, 데이터베이스 액세스를 표준화하지만 보안 취약점과 이식성 저하의 단점도 가진다.

2. PL/pgSQL의 특징

PL/pgSQL은 PostgreSQL을 위해 설계된 절차적 프로그래밍 언어로서, SQL의 선언적 특성과 절차적 프로그래밍의 제어 구조를 결합한 것이 특징이다.

2.1. SQL/PSM과의 비교

SQL/PSM는 ISO 표준에 의해 규정되며, 오라클의 PL/SQL 및 PL/pgSQL로부터 영감을 받아 몇 가지 차이점이 있다. PL/pgPSM 기여 모듈은 표준을 구현한다. PL/pgSQL과 다른 PSM의 주요 특징은 다음과 같다.

* 예외 처리기는 서브루틴(계속 처리기)이다.
* 경고는 예외처럼 처리될 수 있다.
* 변수 선언은 SQL 쿼리 결과에 기반해야 한다.

오라클 PL/SQL, PostgreSQL PL/pgSQL 및 ISO SQL/PSM 세 언어는 원래 Ada 프로그래밍 언어에서 파생되었다.

2.2. 예제


CREATE FUNCTION sales_tax(subtotal real) RETURNS real AS $$
BEGIN
RETURN subtotal * 0.06;
END;
$$ LANGUAGE plpgsql;

```

주어진 코드는 PL/pgSQL로 작성된 `sales_tax`라는 함수를 정의한다. 이 함수는 `subtotal`이라는 실수(real) 값을 입력받아, 입력값의 6%를 계산하여 반환한다.

3. PostgreSQL의 다른 절차적 언어

PL/pgSQL은 PostgreSQL의 표준 절차적 언어이지만, 이 외에도 PL/PSM, PL/Java, PL/Perl, plPHP, PL/Python, PL/R, PL/Ruby, PL/sh, PL/Tcl 등 다양한 절차적 언어를 사용할 수 있다.

3.1. 지원되는 언어 목록

👆
좌우로 밀어서 보기
언어설명외부 링크
PL/PSMSQL/PSM 준수[http://pgfoundry.org/projects/plpsm/ PL/PSM]
PL/JavaJava[http://gborg.postgresql.org/project/pljava/projdisplay.php PL/Java]
PL/PerlPerl[http://www.postgresql.org/docs/current/interactive/plperl.html PL/Perl]
plPHPPHP[http://www.commandprompt.com/community/plphp/ plPHP]
PL/PythonPython[http://www.postgresql.org/docs/current/interactive/plpython.html PL/Python]
PL/RR 언어[http://www.joeconway.com/plr/ PL/R]
PL/RubyRuby[http://raa.ruby-lang.org/project/pl-ruby PL/Ruby]
PL/shsh[http://plsh.projects.postgresql.org/ PL/sh]
PL/TclTcl[http://www.postgresql.org/docs/current/interactive/pltcl.html PL/Tcl]

4. 문서화 지원

PL/pgSQL은 스크립트 문서화를 위한 공식적인 의사 언어를 포함하고 있다. 문서 생성기를 이용해 이러한 문서로부터 하이퍼텍스트 형태의 문서를 생성할 수 있다. PL/SQL이 이러한 도구 중 일부를 지원하므로, PL/pgSQL도 전체 또는 부분적으로 지원할 것으로 예상된다.

4.1. 문서 생성 도구

SQL 및 PL/pgSQL 스크립트에는 문서화를 위한 공식적인 의사 언어를 포함할 수 있다. 이 문서는 데이터를 추출하고 하이퍼텍스트를 생성하는 외부 도구인 문서 생성기에 의해 처리된다. PL/SQL이 이러한 도구 중 일부를 지원하므로 PL/pgSQL도 전체 또는 부분적으로 지원할 것으로 예상된다.

👆
좌우로 밀어서 보기
도구전체 PL/pgSQLJavadoc 스타일기타 스타일사용하는 PL/pgSQL 프로젝트
Document! X
Natural Docs
ROBODoc


기타 문서 도구: Doxygen, DBScribe, HyperSQL, Universal Report.