이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다스포츠 토토 결과 42_007버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

8.1. 스포츠 토토 결과 유형

스포츠 토토 결과 유형은 2, 4 및 8 바이트 정수로 구성됩니다. 4 바이트 플로팅 지점 번호 및 선택 가능한--프리렉션 소수점.표 8-2목록 사용 가능한 유형.

표 8-2. 스포츠 토토 결과 유형

이름 스토리지 크기 설명 범위
smallint 2 바이트 작은 범위 정수 -32768 ~ +32767
정수 4 바이트 정수를위한 전형적인 선택 -2147483648 ~ +2147483647
bigint 8 바이트 대형 정수 -9223372036854775808 ~ +922337203685475807
10402_10411 변수 사용자 지정 정밀도, 정확한 소수점 이전의 최대 131072 자리; 최대 16383 소수점 후 스포츠 토토 결과
스포츠 토토 결과 변수 사용자 지정 정밀도, 정확한 소수점 이전의 최대 131072 자리; 최대 16383 소수점 후 스포츠 토토 결과
Real 4 바이트 가변-프리션, eencact 6 십진 자릿수 정밀
이중 정밀 8 바이트 가변-프리션, 부정확 한 15 소수 자릿수 정밀
SmallSerial 2 바이트 작은 자동화 정수 1 ~ 32767
Serial 4 바이트 AutoinCrementing Integer 1 ~ 2147483647
bigserial 8 바이트 대형 자동화 정수 1 ~ 922372036854775807

스포츠 토토 결과 유형에 대한 상수의 구문은에 설명되어 있습니다.섹션 4.1.2. 스포츠 토토 결과 유형에는 해당 전체 세트가 있습니다 산술 연산자 및 기능. 참조9 장자세한 내용. 다음 섹션은 유형을 자세히 설명합니다.

8.1.1. 정수 유형

유형smallint, 정수bigint전체를 저장하십시오 스포츠 토토 결과, 즉, 분수 구성 요소가없는 스포츠 토토 결과는 다양한 것입니다 범위. 허용 범위 외부에서 값을 저장하려는 시도는 오류가 발생합니다.

유형Integer범위, 스토리지 크기 및 성능. 그만큼smallint유형은 일반적으로입니다 디스크 공간이 프리미엄 인 경우에만 사용됩니다. 그만큼bigint유형은 그만큼Integer유형이 불충분합니다.

SQL정수 유형정수(또는int),smallintbigint. 유형 이름int2, int4int8are 다른 사람들도 사용하는 확장자SQL데이터베이스 시스템.

8.1.2. 임의의 정밀도 스포츠 토토 결과

유형스포츠 토토 결과스포츠 토토 결과를 a로 저장할 수 있습니다 매우 많은 스포츠 토토 결과와 정확히 계산을 수행합니다. 그것은 특히 금전적 금액 및 기타 저장에 권장됩니다 정확성이 필요한 수량. 그러나, 산술스포츠 토토 결과값에 비해 값이 매우 느립니다 정수 유형 또는 다음에 설명 된 부동 소수점 유형 부분.

우리는 다음 약관을 사용합니다.정밀of스포츠 토토 결과is 전체 스포츠 토토 결과, 즉 소수점의 양쪽에 스포츠 토토 결과 수. 그만큼스케일of스포츠 토토 결과입니다 분수 부분의 십진수 수, 오른쪽 콤마. 그래서 23.5141의 스포츠 토토 결과는 정밀도가 6이고 4의 스케일. 정수는 스케일이 0 인 것으로 간주 될 수 있습니다.

최대 정밀도와 최대 스케일스포츠 토토 결과열을 구성 할 수 있습니다. 열을 선언합니다 유형스포츠 토토 결과구문 사용 :

스포츠 토토 결과 (정밀, 스케일)

정밀도는 양수, 스케일 0 또는 양수 여야합니다. 또는 :

스포츠 토토 결과 (정밀)

0의 스케일을 선택합니다. 지정 :

스포츠 토토 결과

정밀도 또는 스케일없이 스포츠 토토 결과가 스포츠 토토 결과가있는 열을 만듭니다. 정밀도와 스케일의 값은 정밀도에 대한 구현 한도. 이런 종류의 열은 그렇지 않습니다 특정 척도로의 입력 값을 강요하는 반면스포츠 토토 결과선언 된 스케일이있는 열은 입력을 강요합니다 그 척도에 대한 가치. (그만큼SQL표준은 기본 스케일 0, 즉 정수에 대한 강요가 필요합니다. 정도. 우리는 이것을 조금 쓸모 없다는 것을 알게됩니다. 당신이 걱정한다면 이식성은 항상 정밀도와 스케일을 지정합니다 명시 적으로.)

참고 :명시 적으로 허용되는 최대 정밀도 유형 선언에 지정된 선언은 1000;스포츠 토토 결과지정된 정밀도가 없으면 에 설명 된 한계표 8-2.

저장 될 값의 척도가 열의 선언 된 스케일, 시스템은 값을 반올림합니다. 지정된 수의 분수 스포츠 토토 결과. 그렇다면, 수는 소수점의 왼쪽에있는 스포츠 토토 결과는 선언 된 것을 초과합니다. 정밀도 마이너스 선언 된 스케일, 오류가 제기됩니다.

스포츠 토토 결과 값은 추가 선두없이 물리적으로 저장됩니다 또는 후행 제로. 따라서, 선언 된 정밀도와 척도 열은 고정 할당이 아닌 최대입니다. (이런 의미에서스포츠 토토 결과유형은 더 비슷합니다varchar (n)보다char (n).) 실제 스토리지 요구 사항은 4 개의 각 그룹에 대해 2 바이트입니다. 10 진수 스포츠 토토 결과, 3-8 바이트 오버 헤드.

일반 스포츠 토토 결과 값 외에도스포츠 토토 결과유형은 특별한 값을 허용NAN, 의미"Not-a-Number". 모든 작업NAN다른 생산량NAN. 이 값을 SQL 명령에서 상수로 쓸 때 예를 들어 그 주위에 인용문을 넣습니다업데이트 테이블 set x = 'nan'. 입력에, 문자열NAN사례에 민감한 방식으로 인식됩니다.

참고 :대부분의 구현에서"Not-a-Number"개념,NAN다른 스포츠 토토 결과 값과 같지 않습니다 (포함NAN). 허용하기 위해스포츠 토토 결과트리 기반으로 정렬되고 사용할 값 인덱스,PostgreSQL취급NAN모든 것보다 동일하고 값 비NAN값.

유형소수점and스포츠 토토 결과동등합니다. 두 유형 모두의 일부입니다.SQL표준.

8.1.3. 부동 소수점 유형

데이터 유형Realand이중 정밀가변적이며 가변적입니다 스포츠 토토 결과 유형. 실제로 이러한 유형은 일반적으로 구현입니다 의IEEE이진의 경우 표준 754 부동 소수점 산술 (단일 및 이중 정밀도, 각각), 기본 프로세서의 범위 내에서 운영 체제 및 컴파일러 지원.

eenclact는 일부 값을 정확하게 변환 할 수 없음을 의미합니다. 내부 형식은 근사치로 저장되므로 값을 저장하고 검색하면 약간의 불일치가 나타날 수 있습니다. 이러한 오류를 관리하고 계산을 통해 전파되는 방법 수학 및 컴퓨터의 전체 지점의 주제입니다. 과학 및 다음을 제외하고 여기에서 논의되지 않을 것입니다. 전철기:

  • 정확한 저장 및 계산이 필요한 경우 (예 : 금전 금액), 사용스포츠 토토 결과타입 대신에.

  • 이러한 유형으로 복잡한 계산을하고 싶다면 특히 특정 행동에 의존하는 경우 중요한 것은 경계 케이스 (무한대, 언더 플로)를 평가해야합니다 신중하게 구현.

  • 평등에 대한 두 개의 부동 소수점 값 비교는 그렇지 않을 수 있습니다 항상 예상대로 작동합니다.

대부분의 플랫폼에서Real유형은 a 최소 1e-37 ~ 1e+37의 범위 6 개 이상의 정밀도 십진수. 그만큼이중 정밀타입 일반적으로 정밀도로 약 1e-307 ~ 1e+308의 범위가 있습니다. 최소 15 자리. 너무 크거나 너무 작은 값 오류가 발생합니다. AN의 정밀도가 있으면 반올림이 발생할 수 있습니다 입력 번호가 너무 높습니다. 0에 너무 가까운 스포츠 토토 결과 0과 구별되는 것으로 표현하면 언더 플로가 발생합니다 오류.

참고 :theextra_float_digits설정 설정이 포함 된 추가 스포츠 토토 결과의 수를 제어합니다 플로팅 포인트 값이 출력을 위해 텍스트로 변환되는 경우. 와 함께 의 기본값0, 출력은입니다 PostgreSQL에서 지원하는 모든 플랫폼에서 동일합니다. 증가 할 것입니다 저장된 값을보다 정확하게 나타내는 생산 출력, 그러나 볼 수 없을 수도 있습니다.

평범한 스포츠 토토 결과 값 외에도 부동 소수점 유형 몇 가지 특별한 가치가 있습니다 :

Infinity
-infinity
NAN

IEEE 754 특수 값을 나타냅니다"Infinity", "음수 무한대""Not-Number", 각기. (부동 소수의 산술이하는 기계에 IEEE 754를 따르지 않으면이 값은 아마도 작동하지 않을 것입니다. 예상.)이 값을 SQL에서 상수로 쓸 때 명령, 당신은 그들 주위에 인용문을 넣어야합니다업데이트 테이블 세트 x = 'Infinity'. 입력에, 이것들 문자열은 사례에 민감하지 않은 방식으로 인식됩니다.

참고 :IEEE754를 지정합니다NAN다른 부동 소수점 값과 동일하게 비교해서는 안됩니다 (포함NAN). 허용하기 위해 정렬 및 트리 기반 인덱스에서 정렬 및 사용되는 부동 소수점 값PostgreSQL취급NAN모든 것보다 동일하고 값 비NAN값.

PostgreSQL도 지원합니다 SQL 표준 표기법floatandfloat (P)지정 부정확 한 스포츠 토토 결과 유형. 여기,P최소 수용 가능한 정밀도를 지정BINAGE스포츠 토토 결과.PostgreSQLAccucctsfloat (1)tofloat (24)AS 선택Real타입, whilefloat (25)tofloat (53)select이중 정밀. 의 값P허용 범위 외부에서 오류를 그립니다.float정밀도가 지정되지 않은 상태로 사용됩니다 평균이중 정밀.

참고 :이전PostgreSQL7.4, 정밀도float (P)너무 많은 의미소수점스포츠 토토 결과. 이것은 SQL 표준과 일치하도록 수정되었습니다. 정밀도는 이진 스포츠 토토 결과로 측정됨을 지정합니다. 그만큼 가정Realand이중 정밀정확히 24 및 53 비트가 있습니다 Mantissa는 각각 IEEE 표준 부동물 지점에 맞습니다 구현. 비 지구 플랫폼에서는 약간 떨어져있을 수 있습니다. 그러나 단순화를 위해 동일한 범위의P모든 플랫폼에서 사용됩니다.

8.1.4. 일련 유형

데이터 유형SmallSerial, Serialandbigserial는 사실이 아닙니다 유형이지만 독특한 생성을위한 표기법 편의성 일뿐입니다 식별자 열 (유사auto_increment다른 사람들이 지원하는 속성 데이터베이스). 현재 구현에서 : 지정

테이블 생성TableName(Colname시리얼
);

지정과 동일합니다.

시퀀스 만들기TableName_Colname_Seq;
테이블 작성TableName(ColnameInteger null default nextVal ( 'TableName_Colname_seq ')
);
Alter SequenceTableName_Colname_Seq 소유TableName.Colname;

따라서 우리는 정수 열을 만들고 그 열을 정리했습니다. 시퀀스 생성기에서 할당 할 기본값. 에이NOT NULL제약 조건이 적용되도록합니다 널 값을 삽입 할 수 없습니다. (대부분의 경우에도 마찬가지입니다 A를 첨부하고 싶다고유 한또는기본 키중복 값을 방지하기위한 제약 조건 우연히 삽입되는 것에서 이루어 지지만 이것은 자동이 아닙니다.) 마지막으로 시퀀스는로 표시됩니다."소유 에 의해"열이 있으면 삭제되거나 열이 삭제되거나 테이블이 떨어졌습니다.

참고 :때문에SmallSerial, Serialbigserial시퀀스를 사용하여 구현되며 "구멍"또는 간격이있을 수 있습니다. 열이 없더라도 열에 나타나는 값의 순서 삭제됩니다. 시퀀스에서 할당 된 값은 여전히 ​​있습니다 그 값을 포함하는 행이 성공적으로 결코 성공하지 못하더라도 "사용" 테이블 열에 삽입되었습니다. 예를 들어 IF가 발생할 수 있습니다 트랜잭션 삽입이 롤백됩니다. 보다nextVal ()in섹션 9.16자세한 내용.

참고 :이전PostgreSQL 7.3, Serial암시고유 한. 이것은 더 이상 아닙니다 오토매틱. 직렬 열이 고유 한 제약 조건을 갖기를 원한다면 또는 기본 키 여야합니다. 이제 다른 것과 마찬가지로 지정해야합니다. 데이터 유형.

시퀀스의 다음 값을 삽입하려면Serial열,를 지정하십시오.Serial열에 기본값을 할당해야합니다. 이것은 열 목록에서 열을 제외하여 수행 할 수 있습니다. 의 열삽입성명서, 또는 사용을 통해기본값키 단어.

유형 이름SerialSerial4동등합니다 : 둘 다 CreateInteger열. 유형 이름bigserialandSerial8똑같은 방식으로bigint열.bigserial당신은 사용해야합니다 2 이상의 사용을 기대하십시오31테이블의 수명. 유형 이름SmallSerialandSerial2또한 작동합니다 그들이 a를 만드는 것을 제외하고는 같은 방식으로smallint열.

a에 대한 시퀀스Serial열 소유 열이 삭제되면 자동으로 삭제됩니다. 당신은 할 수 있습니다 열을 떨어 뜨리지 않고 시퀀스를 떨어 뜨리지 만 이로 인해 힘이 발생합니다. 열 기본 표현식 제거.