SQL문은 다음과 같습니다. 의도적이든 아니든 서로 다른 데이터 유형을 혼합해야 합니다. 같은 표현이에요.포스트그레SQL혼합형 평가를 위한 광범위한 시설을 갖추고 있습니다. 표현.
많은 경우 사용자는 세부사항을 이해할 필요가 없습니다. 범퍼카 토토 변환 메커니즘의 그러나 암시적인 전환 수행자포스트그레SQL쿼리 결과에 영향을 줄 수 있습니다. 필요한 경우 이러한 결과는 다음을 사용하여 사용자나 프로그래머가 맞춤화할 수 있습니다.명시적범퍼카 토토 변환.
이 장에서는 다음을 소개합니다.포스트그레SQL범퍼카 토토 변환 메커니즘 및 컨벤션. 의 관련 섹션을 참조하세요.제8장그리고9장특정 사항에 대한 자세한 내용은 데이터 유형과 허용되는 함수 및 연산자.
SQL강력한 형식입니다. 언어. 즉, 모든 데이터 항목에는 연관된 데이터 범퍼카 토토이 있습니다. 동작과 허용되는 사용법을 결정합니다.PostgreSQL확장 가능한 범퍼카 토토 시스템이 있습니다. 이는 다른 것보다 훨씬 더 일반적이고 유연합니다.SQL구현. 따라서, 대부분의 범퍼카 토토 변환 동작포스트그레SQL일반에 의해 관리되어야 합니다 by가 아닌 규칙임시휴리스틱, 혼합 범퍼카 토토 표현을 의미 있게 허용 사용자 정의 범퍼카 토토의 경우에도 마찬가지입니다.
그포스트그레SQL스캐너/파서는 어휘 요소를 5개로만 디코딩합니다. 기본 범주: 정수, 부동 소수점 숫자, 문자열, 이름, 키워드. 숫자가 아닌 대부분의 상수 범퍼카 토토은 먼저 문자열로 분류됩니다.SQL언어 정의를 통해 다음을 지정할 수 있습니다. 문자열이 포함된 유형 이름이며 이 메커니즘은 다음에서 사용할 수 있습니다.포스트그레SQL파서를 시작하려면 올바른 길로 내려갑니다. 예를 들어 쿼리
텍스트 '원산지' AS "라벨", 포인트 '(0,0)' AS "값"; 라벨 | 가치 ------+------- 원산지 | (0,0) (1행)
다음 유형의 리터럴 상수가 두 개 있습니다.텍스트그리고점. 유형이 다음과 같은 경우 문자열 리터럴에 대해 지정되지 않은 경우 자리 표시자 유형알 수 없음처음에 할당되었습니다. 아래 설명된 대로 이후 단계에서 해결되었습니다.
기본적인 네 가지가 있습니다SQL고유한 범퍼카 토토이 필요한 구성 의 변환 규칙PostgreSQL파서:
포스트그레SQL허용합니다 접두사와 접미사가 있는 표현식 단항(인수 1개) 연산자 및 이진수(인수 2개) 연산자.
대다수PostgreSQL유형 시스템이 구축되었습니다. 다양한 기능 세트를 중심으로. 함수 호출은 다음을 가질 수 있습니다. 하나 이상의 인수. 이후포스트그레SQL기능을 허용합니다 오버로딩, 함수 이름만으로는 고유하지 않습니다. 호출할 함수를 식별합니다. 파서는 반드시 데이터 유형에 따라 올바른 함수를 선택하십시오. 인수를 제공했습니다.
SQL 삽입그리고업데이트문은 표현식의 결과를 테이블에 배치합니다. 명령문의 표현식은 다음과 일치해야 합니다. 아마도 대상 유형으로 변환될 수도 있습니다. 열.
모든 쿼리는 통합된 통합에서 결과가 나오므로선택문은 단일로 나타나야 합니다. 열 집합, 각 결과 범퍼카 토토선택절이 일치해야 함 유니폼 세트로 변환되었습니다. 마찬가지로, 지점 a의 표현사례구조물사례표현식 전체에는 다음이 알려져 있습니다. 출력 유형. 에 대해서도 마찬가지이다.어레이구조물.
시스템 카탈로그는 다음에 관한 정보를 저장합니다. 전환, 호출됨캐스트, 사이 데이터 유형이 유효한지, 이러한 변환을 수행하는 방법을 알아보세요. 사용자는 다음을 사용하여 추가 캐스트를 추가할 수 있습니다.캐스트 생성명령. (이것은 일반적으로 다음에서 수행됩니다. 새로운 데이터 유형을 정의하는 것과 관련됩니다. 캐스트 세트 내장된 유형 사이는 신중하게 제작되었으며 변경하지 않는 것이 가장 좋습니다.)
파서에 추가 경험적 방법이 제공되어 다음을 허용합니다. 올바른 행동에 대한 더 나은 추측SQL표준 범퍼카 토토. 몇 가지 기본이 있습니다.범퍼카 토토 카테고리정의됨:부울, 숫자, 문자열, 비트문자열, 날짜시간, 기간, 기하학적, 네트워크, 그리고 사용자 정의. 제외한 각 카테고리는 사용자 정의, 하나 이상이 있음선호 범퍼카 토토다음이 있는 경우 우선적으로 선택됩니다. 모호함. 사용자 정의 카테고리에서 각 유형은 고유합니다. 선호하는 유형. 모호한 표현(복수 표현) 후보 구문 분석 솔루션)은 종종 해결될 수 있습니다. 가능한 내장 유형이 여러 개 있지만 사용자 정의에 대한 선택 사항이 여러 개인 경우 오류 발생 유형.
모든 범퍼카 토토 변환 규칙은 여러 가지로 설계되었습니다. 염두에 두어야 할 원칙:
암시적 변환에는 놀라운 또는 예측할 수 없는 결과.
파서에 없는 사용자 정의 범퍼카 토토선험적으로지식이 있어야 합니다"더 높은"유형 계층 구조에서. 혼합 유형 표현식에서 기본 유형은 항상 다음과 같습니다. 사용자 정의 유형으로 변환됩니다(물론, 변환이 필요합니다).
사용자 정의 유형은 관련이 없습니다. 현재,포스트그레SQL없음 유형 간의 관계에 대해 사용할 수 있는 정보, 내장 유형에 대한 하드코딩된 경험적 방법 외에 사용 가능한 기능을 기반으로 한 암시적 관계 및 캐스트.
파서에서 추가 오버헤드가 없어야 합니다. 쿼리에 암시적 범퍼카 토토 변환이 필요하지 않은 경우 실행기입니다. 즉, 쿼리가 잘 구성되어 있고 범퍼카 토토이 이미 일치하는 경우 쿼리는 없이 진행되어야 합니다. 소개하지 않고 파서에서 추가 시간을 소비합니다. 쿼리에 불필요한 암시적 변환 호출이 발생합니다.
추가로 일반적으로 쿼리에 암시적 함수에 대한 변환, 그리고 사용자가 정의한 경우 올바른 인수 유형을 가진 새로운 함수, 파서 이 새로운 기능을 사용해야 하며 더 이상 다음 작업을 수행하지 않습니다. 이전 함수를 사용한 암시적 변환입니다.