2025년 9월 25일:토토 커뮤니티 : 토토
이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.사설 토토 사이트 PostgreSQL : 문서 : 17 : 10.1. 개요버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

10.1. 개요

SQL강력한 형식입니다. 언어. 즉, 모든 데이터 항목에는 연관된 데이터 유형이 있습니다. 동작과 허용되는 사용법을 결정합니다.포스트그레SQL확장 가능한 유형 시스템이 있습니다 이는 다른 것보다 훨씬 더 일반적이고 유연합니다.SQL구현. 따라서 대부분의 유형은 전환 동작PostgreSQL일반 규칙이 적용됩니다. 대신에임시휴리스틱. 이를 통해 혼합 유형 표현이 다음과 같은 경우에도 의미가 있을 수 있습니다. 사용자 정의 유형.

PostgreSQL스캐너/파서 어휘 요소를 다섯 가지 기본 범주로 나눕니다. 정수, 정수가 아닌 숫자, 문자열, 식별자 및 키 단어. 대부분의 숫자가 아닌 유형의 상수가 먼저 분류됩니다. 문자열로.SQL언어 정의를 사용하면 문자열로 유형 이름을 지정할 수 있으며 이는 메커니즘은 다음에서 사용될 수 있습니다.PostgreSQL파서를 시작하려면 올바른 경로. 예를 들어 쿼리

텍스트 '원산지' AS "라벨", 포인트 '(0,0)' AS "값";

 라벨 | 가치
------+-------
 원산지 | (0,0)
(1행)

다음 유형의 리터럴 상수가 두 개 있습니다.텍스트그리고. 유형이 지정되지 않은 경우 문자열 리터럴, 자리 표시자 유형알 수 없음처음에 할당되어 해결될 예정입니다. 아래에 설명된 대로 이후 단계를 진행합니다.

기본적인 네 가지가 있습니다SQL고유한 유형이 필요한 구성 의 변환 규칙포스트그레SQL파서:

함수 호출

대다수PostgreSQL유형 시스템은 풍부한 기능 세트를 중심으로 구축되었습니다. 함수에는 하나 이상의 인수가 있을 수 있습니다. 이후포스트그레SQL허가하다 함수 오버로딩, 함수 이름만으로는 호출할 함수를 고유하게 식별합니다. 파서 데이터 유형에 따라 올바른 함수를 선택해야 합니다. 제공된 인수입니다.

연산자

포스트그레SQL허용 접두사와 접미사가 있는 표현식 단항(인수 1개) 연산자 및 이진(인수 2개) 연산자. 좋아요 함수, 연산자는 오버로드될 수 있으므로 동일합니다. 올바른 연산자를 선택하는 데 문제가 있습니다.

가치 저장

SQL 삽입그리고업데이트문은 표현식의 결과를 테이블에 배치합니다. 명령문의 표현식은 다음과 일치해야 합니다. 아마도 대상 유형으로 변환될 수도 있습니다. 열.

유니온, 사례및 관련 구문

모든 쿼리 결과는 통합된 통합에서 발생하므로선택문은 단일 세트로 나타나야 합니다 열의 각 결과 유형선택절은 일치해야 하며 유니폼 세트로 변경되었습니다. 마찬가지로 결과는 a의 표현사례구조물사례표현식 전체에는 다음이 알려져 있습니다. 출력 유형. 에 대해서도 마찬가지이다.어레이구조물 및 해당가장 훌륭함그리고최소함수.

시스템 카탈로그는 어떤 전환에 대한 정보를 저장합니다. 전화함캐스트, 데이터 유형 사이에는 유효하며 해당 변환을 수행하는 방법을 설명합니다. 추가 캐스팅 가능 사용자가 다음을 사용하여 추가할 수 있습니다.만들기 캐스트명령. (이것은 일반적으로 다음과 함께 수행됩니다. 새로운 데이터 유형을 정의합니다. 내장 사이의 캐스트 세트 유형은 신중하게 제작되었으며 그렇지 않은 것이 가장 좋습니다. 변경되었습니다.)

파서에 추가 경험적 방법이 제공되어 다음을 허용합니다. 올바른 행동에 대한 더 나은 추측SQL표준 유형. 몇 가지 기본이 있습니다.유형 카테고리정의됨:부울, 숫자, 문자열, 비트스트링, 날짜시간, 기간, 기하학적, 네트워크그리고 사용자 정의. 사용자 정의를 제외한 각 카테고리는 하나 이상이 있습니다.선호되는 유형어느 모호한 경우 우선적으로 선택됩니다. 에서 사용자 정의 범주, 각 유형은 자체적으로 선호되는 유형입니다. 모호한 표현(다중 후보 구문 분석이 있는 표현) 솔루션) 따라서 다음과 같은 경우 종종 해결될 수 있습니다. 여러 가지 내장 유형이 가능하지만 오류가 발생합니다. 사용자 정의 유형에 대한 선택 사항이 여러 개인 경우.

모든 유형 변환 규칙은 여러 원칙으로 설계되었습니다. 염두에 두세요:

  • 암시적 변환에는 놀라운 또는 예측할 수 없는 결과.

  • 파서에 없는 사용자 정의 유형선험적으로지식이 있어야 합니다"더 높은"유형 계층 구조에서. 에서 혼합 유형 표현식, 기본 유형은 항상 사용자 정의 유형으로 변환됩니다(물론, 변환이 필요합니다).

  • 사용자 정의 유형은 관련이 없습니다. 현재,PostgreSQL없음 유형 간의 관계에 대해 사용할 수 있는 정보, 내장 유형에 대한 하드코딩된 경험적 방법 외에 사용 가능한 기능을 기반으로 한 암시적 관계 및 캐스트.

  • 파서에서 추가 오버헤드가 없어야 합니다. 쿼리에 암시적 유형 변환이 필요하지 않은 경우 실행기입니다. 즉, 쿼리가 잘 구성되어 있고 유형이 이미 일치하면 지출 없이 쿼리가 진행되어야 합니다. 파서에 불필요한 시간을 추가하지 않고 추가 시간을 가집니다. 쿼리에 대한 암시적 변환 호출입니다.

    또한 쿼리에 일반적으로 암시적 함수에 대한 변환, 그리고 사용자가 새로운 함수를 정의하는 경우 올바른 인수 유형으로 함수를 사용하려면 파서가 다음을 수행해야 합니다. 이 새로운 기능을 사용하면 더 이상 암시적인 작업을 수행하지 않습니다. 이전 함수를 사용하여 변환합니다.