표 8-4. 롤 토토 유형
이름 | 설명 |
---|---|
캐릭터 변동 (n), varchar (n) | 한계가있는 가변 길이 |
롤 토토 (n), char (n) | 고정 길이, 블랭크 패딩 |
텍스트 | 가변 무제한 길이 |
표 8-4PostgreSQL.
SQL두 개의 기본을 정의합니다 롤 토토 유형 :캐릭터 변동 (n)and롤 토토 (n), 여기n긍정적 인 정수입니다. 둘 다 이러한 롤 토토은 줄을 최대로 저장할 수 있습니다n롤 토토 (바이트 아님) 길이. an 더 긴 문자열을 이러한 유형의 열에 저장하려고합니다. 초과 문자가 모두가 아닌 한 오류가 발생합니다. 공백,이 경우 문자열이 최대로 잘립니다. 길이. (이 다소 기괴한 예외는에 필요합니다SQL표준.) 롤 토토열 인 경우 저장되는 것은 선언 된 길이보다 짧습니다.캐릭터공간에 둘러싸여 있습니다. 의 가치 롤 토토캐릭터 다양한간단히 보관합니다 짧은 롤 토토열.
값을 명시 적으로 값에 캐스트하는 경우롤 토토 다양한 (n)또는롤 토토 (n)오버 길이의 값은n오류를 올리지 않고 롤 토토. (이것은 또한에 의해 필요합니다SQL표준.)
표기법varchar (n)andchar (n)별칭입니다 을 위한캐릭터 변동 (n)and롤 토토 (n), 각기.캐릭터길이없이 지정자는에 해당합니다.롤 토토 (1). 만약에캐릭터 다양한길이없이 사용됩니다 지정자, 유형은 모든 크기의 롤 토토열을 허용합니다. 후자는입니다.PostgreSQL확장.
또한PostgreSQL제공텍스트유형 길이의 롤 토토열. 비록 유형텍스트SQL표준, 기타 여러 SQL 데이터베이스 관리 시스템도 있습니다.
롤 토토의 값캐릭터물리적입니다 지정된 너비에 공백으로 패딩n, 저장 및 그 방식으로 표시됩니다. 그러나 패딩 공간은 의미 적으로 처리됩니다 의미 없는. 두 가지를 비교할 때 후행 공간이 무시됩니다 롤 토토의 값캐릭터변환 할 때 제거캐릭터값 다른 롤 토토열 유형 중 하나에. 후행 공간are의미 적으로 유의미한캐릭터 다양한and텍스트값 및 패턴을 사용할 때 일치, 예 :Like, 일반 표현.
짧은 롤 토토열의 스토리지 요구 사항 (최대 126 바이트) 공간이 포함 된 1 바이트 + 실제 롤 토토열입니다. 의 경우 패딩캐릭터. 더 길게 롤 토토열에는 1 대신 4 바이트의 오버 헤드가 있습니다. 긴 줄은 다음과 같습니다. 시스템에 의해 압축되어 자동으로 물리적입니다 디스크의 요구 사항은 적을 수 있습니다. 매우 긴 값도 있습니다 방해하지 않도록 백그라운드 테이블에 저장 더 짧은 열 값에 대한 빠른 액세스. 어쨌든 가장 길다 저장할 수있는 가능한 롤 토토열은 약 1GB입니다. (그만큼 허용 될 최대 값n데이터 유형 선언은보다 작습니다 저것. Multibyte를 사용하므로 이것을 변경하는 것이 유용하지 않습니다. 롤 토토 인코딩 롤 토토 및 바이트 수는 상당히 다릅니다. 긴 줄을 보관하고 싶다면 특정 상한, 사용텍스트또는캐릭터 다양한길이없이 임의의 길이 제한을 구성하기보다는 지정자입니다.)
팁 :이들 사이에는 성능 차이가 없습니다 사용할 때 저장 공간이 증가한 세 가지 롤 토토 빈 둥근 롤 토토 및 몇 가지 추가 CPU 사이클을 확인합니다. 길이가 제한된 컬럼에 저장할 때의 길이. 하는 동안롤 토토 (n)성능 장점이 있습니다 일부 다른 데이터베이스 시스템, 그러한 이점은 없습니다PostgreSQL; 사실은롤 토토 (n)보통 가장 느린 것입니다 추가 스토리지 비용으로 인해 3 개. 대부분 상황텍스트또는캐릭터 다양한대신 사용해야합니다.
참조섹션 4.1.2.1String Literals의 구문에 대한 정보 및 to스포츠 토토 사이트 : 문서 : 9.1 : 기능 및 연산자정보에 대한 정보 사용 가능한 연산자 및 기능. 데이터베이스 문자 세트 텍스트 값을 저장하는 데 사용되는 문자 세트를 결정합니다. ~을 위한 문자 세트 지원에 대한 자세한 내용은 참조섹션 22.3.
예 8-1. 롤 토토 유형 사용
테이블 생성 테스트 1 (롤 토토 (4)); test1 값 ( 'Ok')에 삽입; test1에서 a, char_length (a)를 선택하고; -(1) a | char_length ------+---------- OK | 2생성 테이블 test2 (b varchar (5)); test2 값 ( 'Ok')에 삽입; test2 값 ( '좋은')에 삽입; test2 값에 삽입 ( '너무 길다');오류 : 유형 롤 토토에 비해 너무 긴 값 (5)test2 값에 삽입 ( '너무 길다':: varchar (5)); - 명시 적 잘림 test2에서 b, char_length (b)를 선택하십시오.b | char_length -------+---------- OK | 2 좋은 | 5 너무 l | 5
char_length
함수
에서 논의PostgreSQL : 문서.두 개의 다른 고정 길이 롤 토토 유형이 있습니다PostgreSQL, 표시테이블 8-5. 그만큼이름롤 토토 존재전용식별자 저장 내부 시스템에서 카탈로그에서 사용하기위한 것이 아닙니다. 일반 사용자. 길이는 현재 64 바이트로 정의됩니다 (63 사용 가능한 문자 + 종료기) 그러나 사용을 참조해야합니다 상수지명 된 ATALENinC소스 코드. 길이는 컴파일 시간에 설정됩니다 (따라서 특수 용도로 조정 가능); 기본값 향후 릴리스에서 최대 길이가 변할 수 있습니다. 롤 토토"char"(인용문 참고)char (1)하나만 사용한다는 점에서 저장. 내부적으로 시스템 카탈로그에서 단순한 열거 롤 토토.