logo

PostgreSQL 함수

이 섹션에서는 PostgreSQL 함수, 함수 생성 명령을 실행하고 실시간 예시를 확인하세요. PostgreSQL CREATE FUNCTION 명령 다음과 같은 PostgreSQL의 다양한 도구를 사용하여 pgadmin4 그리고 SQL 셸(PSQL).

그리고 다음을 호출하는 예를 참조하세요. 사용자 정의 함수 ~와 같은 표기법이라는 이름의 위치 표기법, 혼합 표기법.

PostgreSQL 함수란 무엇입니까?

PostgreSQL 함수 또는 저장 프로시저 다음과 같은 SQL 및 절차적 명령 집합입니다. 선언, 할당, 루프, 제어 흐름 등을 데이터베이스 서버에 저장하고 SQL 인터페이스 . 그리고 그것은 또한 다음과 같이 알려져 있습니다. PostgreSQL 저장 프로시저 .

예를 들어, 서버 언어로 PostgreSQL 함수를 만들 수 있습니다. SQL , PL/pgSQL , , 파이썬 등.

이를 통해 일반적으로 데이터베이스 내의 기능에서 다양한 명령과 왕복을 수행하는 작업을 수행할 수 있습니다.

PostgreSQL CREATE 함수 명령이란 무엇입니까?

PostgreSQL에서 새로운 사용자 정의 함수를 지정하려면 다음을 사용할 수 있습니다. 함수 생성 명령.

PostgreSQL CREATE 함수 명령의 구문

구문 PostgreSQL CREATE 함수 명령 다음과 같다:

 CREATE [OR REPLACE] FUNCTION function_name (arguments) RETURNS return_datatype LANGUAGE plpgsql AS $variable_name$ DECLARE declaration; [...] -- variable declaration BEGIN [...] -- logic RETURN variable_name END; $$ 

위 구문에서는 아래 표와 같이 다음 매개변수를 사용했습니다.

자바의 회문
매개변수 설명
함수_이름
  • 그만큼 함수 이름 매개변수는 함수 이름을 정의하는 데 사용됩니다.
  • 함수 이름은 다음과 같이 작성됩니다. 함수 생성 예어.
[또는 교체]
  • 우리는 또는 교체 현재 기능을 변경하려는 경우 키워드입니다.
  • 그리고 선택적 매개변수입니다.
기능
  • 사용 후 또는 교체 키워드를 사용하여 기능 뒤에 괄호 안에 포함된 매개변수 목록 함수 이름.
  • 그리고 함수에는 0개 또는 여러 개의 매개변수가 포함될 수 있습니다.
반품
  • 우리는 데이터 유형을 다음과 같이 정의할 수 있습니다. 반품 함수에서 반환할 키워드입니다.
  • 기본, 복합 또는 도메인 유형이거나 테이블 열 유형의 참조일 수 있습니다.
언어 plpgsql
  • 함수가 실행되는 절차적 언어의 이름을 정의하는 데 사용됩니다.
  • 그리고 뿐만 아니라 plpgsql, PostgreSQL은 다양한 절차적 언어를 지원합니다.
함수_본체
  • 그만큼 function_body 로직의 실행 가능한 부분을 포함합니다.

PostgreSQL 함수 생성 명령의 예

작동 방식을 이해하기 위해 다른 예를 살펴보겠습니다. PostgreSQL CREATE 함수 명령.

우리는 자동차 테이블의 Javatpoint PostgreSQL 튜토리얼에서 생성된 데이터베이스입니다.

새 함수 만들기

아래 명령에서는 다음을 계산하는 새로운 함수를 생성합니다. 자동차 누구의 자동차_가격 사이에 가격_시작 및 가격_끝 매개변수:

 Create function get_car_Price(Price_from int, Price_to int) returns int language plpgsql as $$ Declare Car_count integer; Begin select count(*) into Car_count from Car where Car_price between Price_from and Price_to; return Car_count; End; $$; 

그만큼 get_car_Price 기능은 두 가지 주요 섹션으로 구분됩니다. 헤더 및 기능 본문 .

우리는 다음 매개변수를 사용했습니다. 머리글 부분:

  • 주로 함수 이름을 다음과 같이 지정합니다. get_car_Price(), 이는 뒤에 쓰여있다. 함수 생성
  • 그 후, get_car_Price() 함수에는 두 개의 매개변수가 포함되어 있습니다. 가격_시작 그리고 가격_to, 정수 데이터 유형을 가집니다.
  • 그런 다음, get_car_Price() 함수는 return int 조건에 의해 정의된 정수를 검색합니다.
  • 그리고 마지막에는 함수 언어를 다음과 같이 사용했습니다. plpgsql .

우리는 다음 매개변수를 사용했습니다. 기능 본체 부분:

  • 우리는 달러 인용 문자열 다음으로 시작하는 함수 섹션의 상수 그림 $$ 그리고 다음으로 끝납니다 $$ .
  • 사이 $$ 표시하면 블록을 배치할 수 있습니다. 선언 그리고 함수의 논리 .
  • 선언 블록에서 다음과 같은 변수를 선언했습니다. 자동차 수, 여기에서 선택한 자동차를 저장합니다. 자동차
  • 블록 섹션의 본문에서는 다음을 사용했습니다. 선택 값이 다음 사이에 있는 자동차 가격을 선택하는 명령 가격_시작 및 가격_끝 그리고 출력을 Car_count
  • 블록의 끝에서 우리는 다음을 사용했습니다. 반품 얻으라는 명령

PostgreSQL에서 함수 만들기

PostgreSQL에서는 두 가지 방법으로 함수를 생성할 수 있습니다.

    pgAdmin을 사용하여 PostgreSQL 함수 만들기 SQL Shell을 사용하여 PostgreSQL 함수 생성

pgAdmin을 사용하여 PostgreSQL 함수 만들기

우리는 아래 프로세스에 따라 함수를 생성할 것입니다. pg관리자:

버블 정렬

1 단계

먼저 최신 버전을 열어보겠습니다. pgAdmin 로컬 시스템에서 개체 트리로 이동하여 Javatpoint 함수를 생성하려는 샘플 데이터베이스입니다.

2 단계

그런 다음 다음을 클릭하여 쿼리 도구를 엽니다. 쿼리 도구는 도구 섹션을 따랐습니다. 아래 스크린샷에서 볼 수 있듯이:

PoatgreSQL 함수2

3단계

생성하려면 get_car_Price1() 함수에서 위 코드를 사용하겠습니다. 쿼리 도구 그리고 실행하다 단추.

위의 명령을 구현한 후, 함수가 다음과 같이 표시되는 아래 메시지 창이 나타납니다. get_car_Price1() 되었습니다 만들어진 비슷한 데이터베이스에 성공적으로 들어갔습니다.

PoatgreSQL 함수

그리고, 우리는 기능을 식별할 수 있습니다 get_car_Price() 에서 기능 다음 스크린샷에서 볼 수 있듯이 목록입니다.

PoatgreSQL 함수

참고: 함수 이름을 식별할 수 없는 경우 함수 노드를 마우스 오른쪽 버튼으로 클릭하고 새로 고침... 메뉴 항목을 선택하여 함수 목록을 되살릴 수 있습니다.

PoatgreSQL 함수

SQL Shell(psql)을 사용하여 함수 만들기

우리는 아래 프로세스에 따라 테이블을 생성할 것입니다. psql :

1 단계

  • 먼저, 우리는 psql 로컬 시스템에서 함수를 생성하려는 데이터베이스에 연결합니다.
  • 우리는 javatpoint PostgreSQL 튜토리얼의 앞부분에서 생성한 데이터베이스입니다.

2 단계

  • 데이터베이스를 연결하기 위해 아래 명령을 입력합니다.
 c javatpoint 

산출

위의 명령을 실행하면 다음과 같은 결과가 출력됩니다.

PoatgreSQL 함수

참고: psql에서 함수를 생성하기 위해 위와 유사한 명령을 입력하면 아래 오류가 발생합니다. 즉, 동일한 인수 유형을 가진 get_car_price 함수가 이미 존재합니다.

PoatgreSQL 함수

따라서 이 오류를 해결하기 위해 다음과 같은 새 함수를 만듭니다. get_car_Price1 () 다음 단계에서.

3단계

정렬된 배열 목록

아래 명령을 입력하여 함수를 생성하겠습니다. ~처럼 get_car_Price1 ()에서 javatpoint 데이터 베이스.

 javatpoint=# Create function get_car_Price1(Price_from int, Price_to int) javatpoint-# returns int javatpoint-# language plpgsql javatpoint-# as javatpoint-# $$ javatpoint$# Declare javatpoint$# Car_count integer; javatpoint$# Begin javatpoint$# select count(*) javatpoint$# into Car_count javatpoint$# from Car javatpoint$# where car_price between Price_from and Price_to; javatpoint$# return Price_count; javatpoint$# End; javatpoint$# $$; 

산출

위 명령을 구현하면 다음과 같은 출력이 표시됩니다. get_car_Price_count1() 함수가 성공적으로 생성되었습니다.

PoatgreSQL 함수

4단계

아래 명령을 사용하여 기존 데이터베이스의 모든 사용자 정의 함수를 나열할 수 있습니다.

 javatpoint=# df 

산출

위의 명령을 실행하면 다음과 같은 결과가 출력됩니다.

PoatgreSQL 함수

사용자 정의 함수를 호출하는 방법

PostgreSQL에서는 다음과 같은 세 가지 방법으로 사용자 정의 함수를 호출할 수 있습니다.

    위치 표기법 명명된 표기법 혼합 표기법

위치 표기법을 사용하여 함수 호출

매개변수와 비슷한 순서로 인수를 설명하려면 다음과 같이 함수를 호출할 수 있습니다. 위치 표기법 돕다.

페이지다운 키보드

이해를 돕기 위해 샘플 예시를 살펴보겠습니다. 위치 표기법 특정 함수를 호출하는 작업을 수행합니다.

아래 예에서는 get_car_price() 인수는 26000 그리고 70000 , 이는 가격_시작 그리고 가격_to 매개변수.

 Select get_car_Price(26000,70000); 

산출

위 명령을 구현하면 다음과 같은 출력을 얻게 됩니다. 자동차 가격 사이에 26000~70000.

PoatgreSQL 함수

함수에 매개변수가 거의 없으면 다음의 도움으로 함수를 호출할 수 있습니다. 위치 표기법 .

함수에 여러 매개변수가 포함된 경우 다음을 사용할 수 있습니다. 명명된 표기법 특정 함수를 호출하려면 명명된 표기법 함수 호출을 더 이해하기 쉽게 만들 것입니다.

명명된 표기법을 사용하여 함수 호출

아래 예에서는 get_car_Price() 명명된 표기법을 사용하는 함수:

 select get_car_Price( Price_from => 26000, Price_to => 70000 ); 

산출

위 명령을 실행하면 다음과 같은 출력이 표시됩니다. 이는 위의 범위를 기반으로 4개의 행을 표시합니다. 자동차 가격 .

PoatgreSQL 함수

앞서 언급한 표기법에서 우리는 => 주장을 구별하기 위해 이름과 가치 .

PostgreSQL에서는 이전 구문 생성을 허용합니다. 에 := 에 대한 하위 호환성 , 다음 명령에서 볼 수 있듯이:

 select get_car_Price( Price_from := 26000, Price_to := 70000 ); 

산출

위 명령을 실행한 후 '를 사용한 위 명령의 결과와 비슷한 출력을 얻게 됩니다. =>' 대신에 ':=' .

PoatgreSQL 함수

혼합 표기법을 사용하여 함수 호출

의 그룹화이다 위치 및 명명 표기법.

작동 방식을 이해하기 위해 샘플 예를 살펴보겠습니다. 혼합 표기법을 사용하여 함수를 호출합니다.

에서 혼합 표기법 , 우리는 사용할 수 없습니다 명명된 매개변수 ~ 전에 위치 매개변수 .

예를 들어:

아래 명령에서는 명명된 개념 ~을 위한 가격_시작 매개변수 가격_시작=>26000, 반면에 가격_to 매개변수를 사용했습니다. 위치 개념 ~처럼 70000 , 아래 명령에서 볼 수 있듯이:

자바에서 문자를 int로
 select get_car_Price(Price_from=>26000,70000); 

산출

위 명령을 실행한 후 PostgreSQL은 다음과 같은 오류를 발생시킵니다. 위치 인수는 명명된 인수 뒤에 올 수 없습니다. .

PoatgreSQL 함수

위의 오류를 해결하기 위해 다음을 사용하고 있습니다. 위치 표기법과 명명 표기법 ~을 위한 get_car_price() 함수는 26000 을 나타내는 데 사용됩니다. 위치 표기법; 반면에, 가격_to=>70000 을 나타내는 데 사용됩니다. 명명된 표기법 :

 select get_car_Price(26000,Price_to=>70000); 

산출

위의 명령을 실행하면 아래 출력을 얻게 되며, 해당 자동차를 반환합니다. 자동차 가격 26000~70000 사이입니다.

PoatgreSQL 함수

개요

에서 PostgreSQL 함수 섹션에서 우리는 다음 주제를 배웠습니다.

  • 우리는 함수 만들기 특정 테이블에 대한 사용자 정의 함수를 생성하는 명령입니다.
  • 우리는 그 과정을 이해했습니다. 사용자 정의 함수 호출 다음과 같은 다양한 표기법을 사용하여 위치, 명명 및 혼합.