| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.3 : 데이터 윈 토토 | PostgreSQL : 문서 : 9.3 : 데이터 윈 토토 | 8장. 데이터 유형 | 사설 토토 : 문서 : 9.3 : 화폐 유형 | |
스포츠 토토 결과 유형은 2바이트, 4바이트, 8바이트 정수로 구성됩니다. 4바이트 및 8바이트 부동 소수점 스포츠 토토 결과 선택 가능한 정밀도 소수점.표 8-2목록 사용 가능한 유형입니다.
표 8-2. 스포츠 토토 결과 유형
| 이름 | 저장소 크기 | 설명 | 범위 |
|---|---|---|---|
| smallint | 2바이트 | 작은 범위의 정수 | -32768 ~ +32767 |
| 정수 | 4바이트 | 정수에 대한 일반적인 선택 | -2147483648 ~ +2147483647 |
| 비긴트 | 8바이트 | 대규모 정수 | -9223372036854775808 ~ +9223372036854775807 |
| 십진수 | 변수 | 사용자 지정 정밀도, 정확함 | 소수점 이하 최대 131072자리; 최대 16383 소수점 이하 자릿수 |
| 스포츠 토토 결과 | 변수 | 사용자 지정 정밀도, 정확함 | 소수점 앞 최대 131072자리; 최대 16383 소수점 이하 자릿수 |
| 실제 | 4바이트 | 가변-정밀도, 부정확 | 십진수 6자리 정밀도 |
| 배정밀도 | 8바이트 | 가변-정밀도, 부정확 | 십진수 15자리 정밀도 |
| smallserial | 2바이트 | 작은 자동 증가 정수 | 1 ~ 32767 |
| 연재 | 4바이트 | 자동 증가하는 정수 | 1~2147483647 |
| 큰 직렬 | 8바이트 | 큰 자동 증가 정수 | 1 ~ 9223372036854775807 |
스포츠 토토 결과 유형에 대한 상수 구문은 다음에 설명되어 있습니다.섹션 4.1.2. 스포츠 토토 결과 유형에는 해당하는 전체 세트가 있습니다. 산술 연산자 및 함수. 참조제9장11809_11886
유형smallint, 정수및비긴트전체 저장 스포츠 토토 결과, 즉 분수 구성요소가 없는 스포츠 토토 결과, 다양한 스포츠 토토 결과 범위. 허용된 범위를 벗어난 값을 저장하려고 하면 오류가 발생합니다.
유형정수다음과 같이 일반적인 선택입니다. 범위, 저장 크기 및 성능.smallint유형은 일반적으로 디스크 공간이 부족한 경우에만 사용됩니다.비긴트유형은 다음과 같은 경우에 사용하도록 설계되었습니다.정수유형이 부족합니다.
SQL만 지정합니다 정수 유형정수(또는int), smallint및비긴트. 유형 이름int2, int4및int8있습니다 다른 일부에서도 사용되는 확장 프로그램SQL데이터베이스 시스템.
유형스포츠 토토 결과스포츠 토토 결과를 저장할 수 있습니다. 매우 많은 자릿수를 입력하고 정확하게 계산을 수행합니다. 그것은 특히 화폐 금액 및 기타 저장에 권장됩니다. 정확성이 요구되는 수량. 그러나 산술에 대해서는스포츠 토토 결과값은 다음에 비해 매우 느립니다. 정수 유형 또는 다음에 설명된 부동 소수점 유형 섹션.
우리는 아래에서 다음 용어를 사용합니다:정밀도의스포츠 토토 결과이것은 정수의 유효스포츠 토토 결과의 총 개수, 즉 소수점 양쪽 자리수.규모의스포츠 토토 결과이것은 오른쪽에 있는 분수 부분의 소수 자릿수 수 소수점. 따라서 스포츠 토토 결과 23.5141의 정밀도는 6이고 4의 스케일. 정수는 0의 스케일을 갖는 것으로 간주될 수 있습니다.
a의 최대 정밀도와 최대 규모 모두스포츠 토토 결과열을 구성할 수 있습니다. 열을 선언하려면 유형스포츠 토토 결과다음 구문을 사용하세요:
스포츠 토토 결과(정밀도, 규모)
정밀도는 양수여야 하며, 척도는 0 또는 양수여야 합니다. 또는:
스포츠 토토 결과(정밀도)
척도 0을 선택합니다. 지정:
스포츠 토토 결과
정밀도나 배율 없이 스포츠 토토 결과가 포함된 열을 생성합니다. 모든 정밀도 및 규모의 값은 최대 정밀도에 대한 구현 제한. 이런 종류의 열은 그렇지 않습니다. 입력 값을 특정 규모로 강제하는 반면스포츠 토토 결과선언된 규모가 있는 열은 입력을 강제합니다. 그 규모에 맞는 가치를 부여합니다. (그SQL표준에는 기본 배율 0이 필요합니다. 즉, 정수로 강제 변환됩니다. 정밀도. 우리는 이것이 약간 쓸모없다고 생각합니다. 걱정되는 경우 이식성, 항상 정밀도와 규모를 지정 명시적으로.)
참고:명시적으로 허용되는 최대 정밀도 유형 선언에 지정된 것은 1000입니다.스포츠 토토 결과지정된 정밀도가 없으면 설명된 한도표 8-2.
저장할 값의 규모가 열의 규모를 선언하면 시스템은 값을 다음으로 반올림합니다. 지정된 소수 자릿수. 그렇다면 그 수만큼 소수점 왼쪽의 스포츠 토토 결과가 선언된 값을 초과합니다. 정밀도에서 선언된 스케일을 빼면 오류가 발생합니다.
스포츠 토토 결과 값은 추가 선행 없이 물리적으로 저장됩니다. 또는 후행 0. 따라서 선언된 정밀도와 규모는 열은 고정 할당이 아닌 최대값입니다. (이런 의미에서스포츠 토토 결과유형이 다음과 더 유사함varchar(n)보다문자(n).) 실제 저장 요구 사항은 4개 그룹당 2바이트입니다. 10진수, 3~8바이트 오버헤드.
일반 스포츠 토토 결과 값 외에도스포츠 토토 결과유형은 특수 값을 허용합니다.NaN, 의미"스포츠 토토 결과 아님". 모든 작업NaN다른 결과 생성NaN. 이 값을 SQL 명령의 상수로 쓸 때 다음을 수행해야 합니다. 예를 들어 주위에 따옴표를 붙입니다.UPDATE 테이블 SET x = 'NaN'. 입력 시 문자열NaN대소문자를 구분하지 않고 인식됩니다.
참고:대부분의 구현에서"스포츠 토토 결과가 아님"개념,NaN다른 스포츠 토토 결과 값(포함과 동일한 것으로 간주되지 않습니다.NaN). 허용하기 위해스포츠 토토 결과트리 기반으로 정렬 및 사용되는 값 인덱스,PostgreSQL대접NaN값은 같고 모든 것보다 큽니다. 비-NaN값.
유형십진수그리고스포츠 토토 결과동등합니다. 두 유형 모두 다음의 일부입니다.SQL표준.
데이터 유형진짜그리고배정밀도부정확, 가변 정밀도 스포츠 토토 결과 유형. 실제로 이러한 유형은 일반적으로 구현입니다. 의IEEE바이너리용 표준 754 부동 소수점 산술(단정밀도 및 배정밀도, 각각), 기본 프로세서의 범위 내에서, 운영 체제 및 컴파일러가 이를 지원합니다.
정확하지 않음은 일부 값을 정확히 다음으로 변환할 수 없음을 의미합니다. 내부 형식은 근사값으로 저장되므로 값을 저장하고 검색하면 약간의 불일치가 나타날 수 있습니다. 이러한 오류를 관리하고 계산을 통해 오류가 전파되는 방식 수학과 컴퓨터 전 분야의 주제입니다. 과학이며 다음을 제외하고 여기서는 논의하지 않습니다. 포인트:
정확한 저장 및 계산이 필요한 경우(예: 금액), 다음을 사용하세요.스포츠 토토 결과유형 대신.
이러한 유형의 복잡한 계산을 수행하려는 경우 중요한 것, 특히 특정 행동에 의존하는 경우 경계 케이스(무한대, 언더플로)를 평가해야 합니다. 신중하게 구현하세요.
두 개의 부동 소수점 값이 동일한지 비교하면 항상 예상대로 작동합니다.
대부분의 플랫폼에서는진짜유형에 다음이 있습니다. 범위는 최소 1E-37 ~ 1E+37이고 정밀도는 최소 6입니다. 십진수.배정밀도유형 일반적으로 정밀도 범위는 약 1E-307에서 1E+308입니다. 최소 15자리 이상이어야 합니다. 값이 너무 크거나 작으면 오류가 발생합니다. 정밀도가 다음과 같은 경우 반올림이 발생할 수 있습니다. 입력 스포츠 토토 결과가 너무 높습니다. 0에 너무 가까운 스포츠 토토 결과는 0이 아닙니다. 0과 구별되는 것으로 표현 가능하면 언더플로가 발생합니다. 오류.
참고:그extra_float_digits설정은 포함된 추가 유효 스포츠 토토 결과의 수를 제어합니다. 부동 소수점 값이 출력을 위해 텍스트로 변환될 때. 와 기본값은0, 출력은 PostgreSQL이 지원하는 모든 플랫폼에서 동일합니다. 늘리면 됩니다 저장된 값을 보다 정확하게 나타내는 출력을 생성합니다. 하지만 휴대가 불가능할 수도 있습니다.
일반 스포츠 토토 결과 값 외에도 부동 소수점 유형 몇 가지 특별한 값이 있습니다:
무한대
-무한대
NaN
참고:IEEE754는 다음을 명시합니다NaN다른 부동 소수점 값과 동일하다고 비교하면 안 됩니다. (포함NaN). 허용하기 위해서는 트리 기반 인덱스에서 정렬 및 사용되는 부동 소수점 값,포스트그레SQL대접NaN값은 같고 모든 것보다 큽니다. 비-NaN값.
포스트그레SQL또한 다음을 지원합니다. SQL 표준 표기법플로트그리고부동(p)지정용 부정확한 스포츠 토토 결과 유형. 여기,p최소 허용 정밀도를 지정합니다.바이너리스포츠 토토 결과.포스트그레SQL수락플로트(1)에플로트(24)으로 선택하기진짜유형, 동안플로트(25)에플로트(53)선택배정밀도. 의 값p허용된 범위를 벗어나면 오류가 발생합니다.플로트정밀도가 지정되지 않은 경우 뜻배정밀도.
참고:이전PostgreSQL7.4, 정밀도부동(p)다음으로 이동됨 너무 많다는 뜻이야십진수스포츠 토토 결과. 이는 SQL 표준과 일치하도록 수정되었습니다. 정밀도가 이진수로 측정되도록 지정합니다. 는 가정진짜그리고배정밀도정확히 24비트와 53비트가 있습니다. 가수는 각각 IEEE 표준 부동 소수점에 적합합니다. 구현. IEEE가 아닌 플랫폼에서는 약간 다를 수 있습니다. 하지만 단순화를 위해 동일한 범위를 사용합니다.p모든 플랫폼에서 사용됩니다.
데이터 유형smallserial, 연재그리고큰 직렬사실이 아닙니다 유형을 생성하기 위한 표기상의 편의일 뿐입니다. 식별자 열(AUTO_INCREMENT다른 속성이 지원하는 속성 데이터베이스). 현재 구현에서는 다음을 지정합니다.
테이블 생성테이블 이름 (
열이름연속
);
다음을 지정하는 것과 동일합니다.
시퀀스 생성테이블 이름_열이름_seq;
테이블 만들기테이블 이름 (
열이름정수 NOT NULL DEFAULT nextval('테이블 이름_열이름_seq')
);
시퀀스 변경테이블 이름_열이름_seq 소유자테이블 이름.열이름;
따라서 우리는 정수 열을 생성하고 그 열을 정렬했습니다. 시퀀스 생성기에서 할당할 기본값입니다. 갑NULL이 아님제약조건이 적용되어 다음을 보장합니다. null 값을 삽입할 수 없다는 점입니다. (대부분의 경우 첨부하고 싶습니다.고유또는기본 키중복 값을 방지하기 위한 제약 실수로 삽입되는 일이 없으나 자동으로 되는 것은 아닙니다.) 마지막으로 시퀀스는 다음과 같이 표시됩니다."소유됨 의해"열. 그러면 열 또는 테이블이 삭제되었습니다.
참고:왜냐하면smallserial, 연재그리고큰 직렬시퀀스를 사용하여 구현되므로 "구멍"이나 간격이 있을 수 있습니다. 행이 없더라도 열에 나타나는 값의 순서 삭제된 적이 있습니다. 시퀀스에서 할당된 값은 여전히 해당 값을 포함하는 행이 결코 성공적이지 않은 경우에도 "사용됨" 테이블 열에 삽입되었습니다. 예를 들어 다음과 같은 경우에 이런 일이 발생할 수 있습니다. 삽입 트랜잭션이 롤백됩니다. 참조다음값()in섹션 9.16자세한 내용은.
참고:이전PostgreSQL 7.3, 연재묵시적고유. 이것은 더 이상 자동. 직렬 열에 고유 제약 조건을 적용하려는 경우 또는 기본 키인 경우 다른 키와 마찬가지로 이제 지정해야 합니다. 데이터 유형.
순서의 다음 값을 다음에 삽입하려면연재열, 다음을 지정하십시오.연재열에는 기본값이 할당되어야 합니다. 이는 목록에서 해당 열을 제외하여 수행할 수 있습니다. 의 열삽입문장 또는 를 사용하여기본값키 단어.
유형 이름연재그리고연속4동등함: 둘 다 생성정수열. 유형 이름큰 직렬그리고연속8일해라 같은 방식으로 생성한다는 점만 제외하면비긴트열.큰 직렬다음과 같은 경우에 사용해야 합니다 2개 이상의 사용을 예상합니다.31식별자는 테이블의 수명. 유형 이름smallserial그리고연속2또한 작동합니다 같은 방식으로 생성한다는 점만 제외하면smallint열.
다음에 대해 생성된 시퀀스연재열 소유 열이 삭제되면 자동으로 삭제됩니다. 당신은 할 수 있습니다 열을 삭제하지 않고 시퀀스를 삭제하지만 이로 인해 강제로 열 기본 표현식을 제거합니다.