표 3-4. 문자 와이즈 토토
| 와이즈 토토 이름 | 설명 |
|---|---|
| 문자(n), 문자(n) | 고정 길이 공백 패딩 |
| 문자 다양(n), varchar(n) | 제한이 있는 가변 길이 |
| 텍스트 | 가변 무제한 길이 |
SQL두 개의 기본을 정의합니다. 문자 와이즈 토토:문자(n)그리고문자 다양한(n), 여기서n은 양의 정수입니다. 이 둘 모두 와이즈 토토은 최대 문자열을 저장할 수 있습니다.n문자 길이. 더 긴 문자열을 이러한 유형의 열은 초과하지 않는 한 오류가 발생합니다. 문자는 모두 공백입니다. 이 경우 문자열은 다음과 같습니다. 최대 길이로 잘렸습니다. (이 다소 기괴한 예외는 SQL 표준에서 요구하는 사항입니다.) 저장할 문자열이 다음과 같은 경우 선언된 길이보다 짧음, 유형의 값문자스페이스가 채워집니다. 와이즈 토토 값문자 다양단순히 짧은 문자열.
참고:이전PostgreSQL7.2, 너무 많은 문자열 오랫동안 자동으로 잘렸으며 오류가 발생하지 않았습니다.
표기법문자(n)그리고varchar(n)있습니다 에 대한 별칭문자(n)그리고문자 다양한(n)각각.문자길이 지정자가 없으면 에 해당함문자(1); 만일문자 다양길이 지정자 없이 사용됩니다. 이 유형은 모든 크기의 문자열을 허용합니다. 후자는PostgreSQL확장.
또한,PostgreSQL더 일반적인 것을 지원합니다텍스트유형, 모든 길이의 문자열을 저장합니다. 달리문자 다양함, 텍스트필요하지 않습니다. 문자열 크기에 대한 상한선을 명시적으로 선언했습니다. 비록 유형텍스트은 SQL 표준에 없습니다. 다른 많은 RDBMS 패키지에도 이 기능이 있습니다.
이러한 유형의 데이터에 대한 저장 요구사항은 4바이트입니다. 실제 문자열과 다음의 경우에는문자+ 패딩. 긴 문자열은 시스템에 의해 자동으로 압축되므로 물리적 디스크 요구 사항이 더 적을 수 있습니다. 어쨌든 가장 긴 저장할 수 있는 문자열은 약 1GB 정도입니다. ( 허용되는 최대값n데이터 유형 선언의 값이 다음보다 작습니다. 그. 이것을 변경하는 것은 별로 유용하지 않을 것입니다. 멀티바이트 문자는 문자 수와 바이트 수를 인코딩합니다. 어쨌든 꽤 다를 수 있습니다. 오랫동안 보관하고 싶다면 특정 상한값이 없는 문자열, 사용텍스트또는문자 다양길이 지정자 없이 임의의 형식을 구성하는 대신 길이 제한.)
팁:사이에는 성능 차이가 없습니다. 이 세 가지 와이즈 토토은 스토리지 크기가 증가하는 것 외에도 공백으로 채워진 와이즈 토토을 사용합니다.
참조섹션 1.1.2.1문자열 리터럴 구문에 대한 정보는 그리고메이저 토토 사이트 : 문서 : 7.2 : 기능 및 메이저 토토 사이트정보용 사용 가능한 연산자와 함수에 대해 알아보세요.
예제 3-1. 문자 유형 사용
CREATE TABLE test1 (문자(4));
test1 값에 삽입('확인');
SELECT a, char_length(a) FROM test1; --(1)
a | char_length
------+---------------
알았어 | 4CREATE TABLE test2 (b varchar(5));
test2 값에 삽입('확인');
test2 값에 삽입('양호');
test2 값에 삽입('너무 깁니다');오류: 유형 문자 변경에 비해 값이 너무 깁니다(5)SELECT b, char_length(b) FROM test2;b | char_length
-----+-------------
알았어 | 2
좋아 | 5
char_length함수
에서 논의됩니다.PostgreSQL : 문서.다음에는 두 가지 다른 고정 길이 문자 유형이 있습니다.PostgreSQL.이름와이즈 토토이 존재함만내부 저장용 카탈로그 이름이며 일반 사용자가 사용할 수 없습니다. 길이는 현재 32바이트(사용 가능한 31자)로 정의되어 있습니다. 플러스 종결자) 그러나 매크로를 사용하여 참조해야 합니다NAMEDATALEN. 길이는 컴파일 시 설정됩니다. 시간(따라서 특별한 용도로 조정 가능) 기본값 최대 길이는 향후 릴리스에서 변경될 수 있습니다. 와이즈 토토"문자"(인용문 참고)는 다음과 다릅니다.문자(1)단 1바이트만 사용한다는 점에서 저장. 시스템 카탈로그에서 내부적으로 사용됩니다. 가난한 사람의 열거형입니다.