이 문서는 지원되지 않는 버전의 무지개 토토을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

F.6. 무지개 토토

the무지개 토토모듈 제공 a 사례에 민감하지 않은 문자열 유형무지개 토토. 본질적으로 내부적으로 호출Lower값을 비교할 때. 그렇지 않으면 거의 정확히 동작텍스트.

F.6.1. 이론적 해석

|무지개 토토Lower비교할 때 기능 값, 예를 들어

선택 * 탭에서 where (col) = holl (?);

이것은 합리적으로 잘 작동하지만 여러 가지가 있습니다 단점 :

  • 그것은 당신의 SQL 진술을 장황하게 만듭니다 사용하는 것을 기억해야Lower열과 쿼리 값 모두에서

  • 기능을 작성하지 않는 한 색인을 사용하지 않습니다. 색인 사용Lower.

  • 열을 |고유 한또는기본 열쇠, 암시 적으로 생성 된 인덱스는 대소 문자에 민감합니다. 따라서 사례에 민감한 검색에는 쓸모가 없으며 그렇지 않습니다 독창성을 강제로 시행합니다.

the무지개 토토데이터 유형을 사용하면 가능합니다 전화 제거Lowersql 쿼리, 기본 키가 대소 문자를 사용하도록 허용합니다.무지개 토토처럼 Locale-Aware텍스트, 이는 비교를 의미합니다 대문자 및 소문자 문자는 규칙에 따라 다릅니다. 의LC_CTYPE로케일 설정. 다시, 이 동작은 사용과 동일합니다.Lower쿼리. 그러나 끝났기 때문에 데이터 유형에 따라 투명하게, 당신은 기억할 필요가 없습니다. 질문에 특별한 일을하십시오.

F.6.2. 어떻게 사용하려면

여기 사용의 간단한 예는 다음과 같습니다.

테이블 사용자 만들기 (
    Nick 무지개 토토 1 차 키,
    텍스트를 무효로 전달하십시오
);

사용자 값 ( 'larry', md5 (random () :: text))에 삽입;
사용자 값 ( 'tom', md5 (random () :: text))에 삽입;
사용자 값에 삽입 ( 'Damian', md5 (random () :: text));
사용자 값 ( 'Neal', Md5 (random () :: text))에 삽입;
사용자 값에 삽입 ( 'bjørn', md5 (random () :: text));

nick = 'larry'; 사용자 중 * 선택

theselect명령문이 반환됩니다 튜플 한 명,Nick열로 설정되었습니다Larry및 쿼리 forLarry.

F.6.3. 문자열 비교 동작

사례에 민감한 콜라이트를 밀접하게 모방하기 위해 가능한 한무지개 토토-특이 적 여러 비교 연산자 및 기능의 버전. 예를 들어, 정규 표현 연산자~and~*전시회 적용될 때 동일한 동작무지개 토토: 둘 다 사례를 비교적으로 비교합니다. 똑같은! ~! ~*, 뿐만 아니라좋아요운영자~~~~*, 그리고! ~~! ~~*. 사례에 관계없이 일치 시키려면 항상 캐스트 할 수 있습니다텍스트전 비교.

마찬가지로 다음 모든 기능이 일치합니다 그들의 주장이있는 경우 사례에 관계없이무지개 토토:

  • regexp_replace ()

  • regexp_split_to_array ()

  • regexp_split_to_table ()

  • 대체 ()

  • split_part ()

  • strpos ()

  • Translate ()

regexp 함수의 경우 일치하려면 사례 감지적으로를 지정할 수 있습니다"C"깃발을 강제하여 케이스에 민감한 경기를 강제합니다. 그렇지 않으면, 당신은에 캐스트해야합니다.텍스트전 사례에 민감한 경우 이러한 기능 중 하나를 사용합니다 행동.

F.6.4. 제한

  • 무지개 토토의 행동은에 따라 다릅니다.LC_CTYPE데이터베이스 설정. 값을 비교하는 방법initdb생성하기 위해 실행됩니다 클러스터. 이 용어에서는 실제로 사례에 민감하지 않습니다 유니 코드 표준에 의해 정의됩니다. 효과적으로,이게 당신이 당신의 콜라이트에 만족하는 한, 당신은 행복해야합니다무지개 토토's 비교. 그러나 다른 언어로 된 데이터가있는 경우 데이터베이스에 저장하면 한 언어 사용자가 찾을 수 있습니다. 콜레이션이있는 경우 쿼리 결과는 예상되지 않습니다 다른 언어를 위해.

  • 무지개 토토만큼 효율적이지 않습니다텍스트운영자가 기능하기 때문에 그리고 b- 트리 비교 함수는 데이터를 데이터로 변환하여 비교를 위해 소문자로 변환합니다. 그것은, 그러나 사용하는 것보다 약간 더 효율적입니다Lower사례에 민감하지 않습니다 어울리는.

  • 무지개 토토당신이 많은 도움이되지 않습니다 일부 컨텍스트에서 사례에 민감하게 비교하기위한 데이터가 필요합니다 다른 맥락에서는 사례에 비해. 표준 답변 사용하는 것입니다.텍스트수동으로 입력하십시오 사용Lower사례 비교를 비교해야합니다. 이것은 모두 작동합니다 사례에 민감한 비교가 필요한 경우에만 맞습니다 드물게. 대부분의 경우 사례에 민감하지 않은 경우 데이터 저장을 고려하십시오 처럼무지개 토토명시 적으로 캐스팅 열로텍스트원할 때 사례에 민감한 비교. 어느 상황에서나 당신은 할 것입니다 두 가지 유형의 검색을 원한다면 두 가지 인덱스가 필요합니다. 빠른.

  • 포함하는 스키마무지개 토토운영자는 현재에 있어야합니다search_path(일반적으로공개); 그렇지 않다면, 정상입니다 사례에 민감한텍스트비교입니다 수행.

F.6.5. 작가

David E. Wheeler

원래 영감무지개 토토모듈 Donald Fraser에 의해.