PL/pgSQL
"오늘의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 등 다양한 절차적 언어를 지원한다.
더 읽어볼만한 페이지
- PostgreSQL - 아마존 레드시프트
- PostgreSQL - DBeaver
DBeaver는 2010년 이반 포포프가 개발한 오픈 소스 데이터베이스 관리 도구로, 다양한 데이터베이스 시스템 지원, 사용자 친화적 인터페이스, 여러 버전 제공, 다양한 운영체제 및 언어 지원, SQL 쿼리 실행 및 편집, 데이터 브라우징 및 편집, 데이터베이스 구조 탐색 및 편집 등 다양한 기능을 제공한다. - 데이터 중심 프로그래밍 언어 - 마이크로소프트 액세스
마이크로소프트 액세스는 1992년 출시된 데이터베이스 관리 시스템으로, 테이블, 쿼리, 폼 등을 생성하고 VBA를 통해 솔루션을 개발하며, 윈도우에서 사용 가능하고 다양한 데이터 형식과 통합된다. - 데이터 중심 프로그래밍 언어 - SQL
SQL은 관계형 데이터베이스 관리 시스템에서 데이터를 관리하고 조작하기 위해 설계된 표준 프로그래밍 언어로서, 데이터 정의어, 데이터 조작어, 데이터 제어어를 포함하는 다양한 명령어 문법을 제공하며 ANSI와 ISO에 의해 표준으로 채택되었다. - SQL - 사용자 정의 함수
사용자 정의 함수는 프로그래밍 언어와 데이터베이스 시스템에서 사용자가 직접 정의하여 재사용할 수 있는 코드 블록이다. - SQL - 임베디드 SQL
임베디드 SQL은 호스트 프로그래밍 언어 내에 SQL 문을 삽입하여 데이터베이스와 상호 작용하는 기술로, 데이터베이스 액세스를 표준화하지만 보안 취약점과 이식성 저하의 단점도 가진다.
| PL/pgSQL - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 기본 정보 | |
| 이름 | PL/pgSQL |
| 종류 | 프로그래밍 언어 |
| 개발 | |
| 디자이너 | 얀 비크 |
| 개발자 | PostgreSQL 글로벌 개발 그룹 |
| 최초 출시일 | 1998년 10월 30일 |
| 특징 | |
| 기타 정보 | |
| 웹사이트 | PL/pgSQL 공식 문서 |
| 영향을 받은 언어 | PL/SQL, 에이다 |
2. PL/pgSQL의 특징
PL/pgSQL은 PostgreSQL을 위해 설계된 절차적 프로그래밍 언어로서, SQL의 선언적 특성과 절차적 프로그래밍의 제어 구조를 결합한 것이 특징이다.
2. 1. SQL/PSM과의 비교
SQL/PSM는 ISO 표준에 의해 규정되며, 오라클의 PL/SQL 및 PL/pgSQL로부터 영감을 받아 몇 가지 차이점이 있다. PL/pgPSM 기여 모듈은 표준을 구현한다. PL/pgSQL과 다른 PSM의 주요 특징은 다음과 같다.[1][14]- 예외 처리기는 서브루틴(계속 처리기)이다.
- 경고는 예외처럼 처리될 수 있다.
- 변수 선언은 SQL 쿼리 결과에 기반해야 한다.
오라클 PL/SQL,[15] PostgreSQL PL/pgSQL 및 ISO SQL/PSM[16] 세 언어는 원래 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/PSM | SQL/PSM 준수 | [http://pgfoundry.org/projects/plpsm/ PL/PSM] |
| PL/Java | Java | [http://gborg.postgresql.org/project/pljava/projdisplay.php PL/Java] |
| PL/Perl | Perl | [http://www.postgresql.org/docs/current/interactive/plperl.html PL/Perl] |
| plPHP | PHP | [http://www.commandprompt.com/community/plphp/ plPHP] |
| PL/Python | Python | [http://www.postgresql.org/docs/current/interactive/plpython.html PL/Python] |
| PL/R | R 언어 | [http://www.joeconway.com/plr/ PL/R] |
| PL/Ruby | Ruby | [http://raa.ruby-lang.org/project/pl-ruby PL/Ruby] |
| PL/sh | sh | [http://plsh.projects.postgresql.org/ PL/sh] |
| PL/Tcl | Tcl | [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도 전체 또는 부분적으로 지원할 것으로 예상된다.[1]| 도구 | 전체 PL/pgSQL | Javadoc 스타일 | 기타 스타일 | 사용하는 PL/pgSQL 프로젝트 |
|---|---|---|---|---|
| Document! X | ||||
| Natural Docs | ||||
| ROBODoc |
기타 문서 도구: Doxygen, DBScribe, HyperSQL, Universal Report.[1]
참조
[1]
웹사이트
PostgreSQL Documentation, Appendix E: Release Notes, Release 6.4
https://www.postgres[...]
PostgreSQL Global Development Group
2012-01
[2]
간행물
SQL standard features
PostgreSQL
[3]
웹사이트
PL/pgSQL – SQL Procedural Language
https://www.postgres[...]
PostgreSQL
2007-11-15
[4]
웹사이트
Procedural Languages
https://www.postgres[...]
2024-05-09
[5]
간행물
Docs
PostgreSQL
[6]
간행물
Docs
PostgreSQL
[7]
project
Gborg
PostgreSQL
[8]
manual
SQL/PSM
https://postgres.cz/[...]
PostgreSQL
2008-05-20
[9]
간행물
Community
Command prompt
[10]
간행물
PL/R
http://www.joeconway[...]
2005-02-25
[11]
project
PL/Ruby
https://github.com/k[...]
Ruby lang
2018-11-23
[12]
간행물
marijnh/Postmodern
https://github.com/m[...]
2024-06-01
[13]
간행물
Docs
PostgreSQL
[14]
mailing list
Hackers
PostgreSQL
[15]
간행물
PL/SQL Language Reference
Oracle
[16]
간행물
Stored procedures
http://cdn.oreillyst[...]
O’Reilly
[17]
웹사이트
PL/pgSQL - SQL手続き言語
http://www.postgresq[...]
2009-01-24
[18]
웹인용
PostgreSQL Documentation, Appendix E: Release Notes, Release 6.4
https://www.postgres[...]
PostgreSQL Global Development Group
[19]
간행물
SQL standard features
PostgreSQL
[20]
웹인용
PL/pgSQL – SQL Procedural Language
https://www.postgres[...]
PostgreSQL
2007-11-15
[21]
웹인용
Procedural Languages
https://www.postgres[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com