표 8-4. 롤 토토 유형
| 이름 | 설명 |
|---|---|
| 롤 토토 다양(n), varchar(n) | 제한이 있는 가변 길이 |
| 롤 토토(n), 롤 토토(n) | 고정 길이, 공백 패딩 |
| 텍스트 | 변수 무제한 길이 |
표 8-4다음에서 사용할 수 있는 범용 롤 토토 유형을 표시합니다.PostgreSQL.
SQL두 개의 기본을 정의합니다. 롤 토토 유형:롤 토토 다양(n)그리고롤 토토(n), 여기서n은 양의 정수입니다. 둘 다 이러한 유형은 최대 롤 토토열을 저장할 수 있습니다.n롤 토토(바이트 아님) 길이입니다. 안 이러한 유형의 열에 더 긴 롤 토토열을 저장하려고 시도합니다. 초과 롤 토토가 모두 없으면 오류가 발생합니다. 공백, 이 경우 롤 토토열은 최대값까지 잘립니다. 길이. (이 다소 기괴한 예외는 다음에서 필요합니다.SQLstandard.) 롤 토토열이 저장될 값이 선언된 길이보다 짧습니다. 유형의 값입니다.롤 토토스페이스가 채워집니다. 가치 유형롤 토토 다양함단순히 저장합니다 롤 토토열이 더 짧습니다.
명시적으로 값을 캐스팅하는 경우롤 토토 다양한(n)또는롤 토토(n), 그리고 길이를 초과하는 값은 다음과 같이 잘립니다.n오류가 발생하지 않는 롤 토토. (이 역시 다음에서 요구됩니다.SQL표준.)
표기법varchar(n)그리고롤 토토(n)별칭입니다 에 대한롤 토토 다양(n)그리고롤 토토(n), 각각.롤 토토길이 없음 지정자는 다음과 같습니다.롤 토토(1). 만일롤 토토 다양길이 없이 사용됩니다. 지정자에 따라 유형은 모든 크기의 롤 토토열을 허용합니다. 후자는PostgreSQL확장.
또한,PostgreSQL제공텍스트유형, 저장 모든 길이의 롤 토토열. 유형이지만텍스트다음에 없습니다SQL표준, 기타 여러 SQL 데이터베이스 관리 시스템에도 있습니다.
유형 값롤 토토물리적으로 지정된 너비까지 공백으로 채워짐n, 그런 식으로 저장되고 표시됩니다. 그러나 패딩 공간은 의미상으로 처리됩니다. 중요하지 않은. 두 개를 비교할 때 후행 공백은 무시됩니다. 유형 값롤 토토, 그러면 그들은 a 변환 시 제거됨롤 토토값 다른 롤 토토열 유형 중 하나로 변환됩니다. 후행 공백에 유의하세요.아르의미적으로 중요한 것롤 토토 다양그리고텍스트값 및 패턴을 사용할 때 일치, 예:좋아요, 일반 표현.
짧은 롤 토토열에 대한 저장 요구사항(최대 126바이트) 1바이트에 공백을 포함하는 실제 롤 토토열을 더한 값입니다. 의 경우 패딩롤 토토. 더 길다 롤 토토열에는 1바이트 대신 4바이트의 오버헤드가 있습니다. 긴 롤 토토열은 시스템에 의해 자동으로 압축되므로 물리적 디스크 요구 사항이 더 적을 수 있습니다. 매우 긴 값도 있습니다. 방해하지 않도록 백그라운드 테이블에 저장됩니다. 더 짧은 열 값에 빠르게 액세스할 수 있습니다. 어쨌든 가장 긴 저장할 수 있는 롤 토토열은 약 1GB 정도입니다. ( 허용되는 최대값n데이터 유형 선언의 값이 다음보다 작습니다. 그. 멀티바이트를 사용하므로 이를 변경하는 것은 유용하지 않습니다. 롤 토토 인코딩은 롤 토토 수와 바이트 수를 아주 다릅니다. 긴 롤 토토열을 저장하지 않고 저장하고 싶다면 특정 상한, 사용텍스트또는롤 토토 다양길이 없음 임의의 길이 제한을 구성하는 대신 지정자입니다.)
팁:이들 사이에는 성능 차이가 없습니다 3가지 타입으로 사용시 수납공간이 늘어나는 것 외에 공백 패딩 유형 및 확인해야 할 몇 가지 추가 CPU 주기 길이가 제한된 열에 저장할 때의 길이입니다. 동안롤 토토(n)성능상의 이점이 있습니다. 다른 데이터베이스 시스템에는 그러한 이점이 없습니다.PostgreSQL; 사실롤 토토(n)보통 가장 느린 속도입니다. 세 번째는 추가 저장 비용 때문입니다. 대부분의 경우 상황텍스트또는롤 토토 다양대신 사용해야 합니다.
참조섹션 4.1.2.1롤 토토열 리터럴 구문에 대한 정보스포츠 토토 사이트 : 문서 : 9.1 : 기능 및 연산자다음에 대한 정보 사용 가능한 연산자 및 함수. 데이터베이스 롤 토토 집합 텍스트 값을 저장하는 데 사용되는 롤 토토 세트를 결정합니다. 에 대한 롤 토토 집합 지원에 대한 자세한 내용은 참조섹션 22.3.
예제 8-1. 롤 토토 유형 사용
CREATE TABLE test1(롤 토토(4));
test1 값에 삽입('확인');
SELECT a, char_length(a) FROM test1; --(1)
a | char_length
------+---------------
알았어 | 2CREATE TABLE test2 (b varchar(5));
test2 값에 삽입('확인');
test2 값에 삽입('양호');
test2 값에 삽입('너무 깁니다');오류: 유형 롤 토토 변경에 비해 값이 너무 깁니다(5)test2 값에 삽입('너무 깁니다'::varchar(5)); -- 명시적 잘림
SELECT b, char_length(b) FROM test2;b | char_length
-----+-------------
알았어 | 2
좋아 | 5
나도 | 5
char_length함수
에서 논의됩니다.PostgreSQL : 문서.다음에는 두 가지 다른 고정 길이 롤 토토 유형이 있습니다.PostgreSQL, 다음에 표시됨테이블 8-5.이름유형이 존재함만식별자 저장용 내부 시스템 카탈로그에 있으며 다음 사용자가 사용할 수 없습니다. 일반 사용자. 현재 길이는 64바이트(63바이트)로 정의되어 있습니다. 사용 가능한 롤 토토와 종결자)를 사용하여 참조해야 합니다. 상수NAMEDATALENinC소스 코드. 길이는 컴파일 타임에 설정됩니다. (따라서 특별한 용도로 조정 가능) 기본값 최대 길이는 향후 릴리스에서 변경될 수 있습니다. 유형"롤 토토"(따옴표 참고)는 다음과 다릅니다.롤 토토(1)단 1바이트만 사용한다는 점에서 저장. 시스템 카탈로그에서 내부적으로 사용됩니다. 단순한 열거형입니다.