8.1. 스포츠 토토 결과 유형#

스포츠 토토 결과 유형은 2, 4 및 8 바이트 정수, 4 바이트 및 8 바이트 플로팅 포인트 스포츠 토토 결과 및 선택 가능한 프리렉션 소수로 구성됩니다.표 8.2사용 가능한 유형을 나열합니다.

표 8.2. 스포츠 토토 결과 유형

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

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

8.1.1. 정수 유형#

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

유형Integer범위, 스토리지 크기 및 성능간에 최상의 균형을 제공하므로 일반적인 선택입니다. 그만큼smallint유형은 일반적으로 디스크 공간이 프리미엄 인 경우에만 사용됩니다. 그만큼bigint유형은의 범위 일 때 사용하도록 설계되었습니다.Integer유형은 불충분합니다.

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

8.1.2. 임의의 정밀 번호#

유형스포츠 토토 결과스포츠 토토 결과를 매우 많은 스포츠 토토 결과로 저장할 수 있습니다. 특히 정확성이 필요한 금전적 금액 및 기타 수량을 저장하는 데 권장됩니다. 계산스포츠 토토 결과값은 가능한 경우 정확한 결과, 예를 들어, 첨가, 빼기, 곱셈을 산출합니다. 그러나 계산스포츠 토토 결과값은 정수 유형 또는 다음 섹션에 설명 된 부동 소수점 유형에 비해 매우 느립니다.

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

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

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

정밀도는 양수이어야하며 스케일은 양수 또는 음수 일 수 있습니다 (아래 참조). 또는 :

스포츠 토토 결과 (정밀)

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

스포츠 토토 결과

정밀도 또는 스케일이 없으면제한되지 않은 스포츠 토토 결과구현 한도까지 모든 길이의 스포츠 토토 결과 값을 저장할 수있는 열. 이런 종류의 열은 입력 값을 특정 척도로 강요하지는 않지만스포츠 토토 결과선언 된 스케일을 가진 열은 입력 값을 해당 척도로 강요합니다. (그만큼SQL표준은 기본 스케일 0, 즉 정수 정밀도에 대한 강요가 필요합니다. 우리는 이것을 조금 쓸모 없다는 것을 알게됩니다. 이식성에 대해 걱정하는 경우 항상 정밀도를 지정하고 명시 적으로 규모를 지정하십시오.)

Note

a에 명시 적으로 지정할 수있는 최대 정밀도스포츠 토토 결과유형 선언은 1000입니다. 제한되지 않은스포츠 토토 결과열에 설명 된 한계가 적용됩니다표 8.2.

저장 될 값의 척도가 열의 선언 된 스케일보다 크면 시스템은 지정된 분수 스포츠 토토 결과로 값을 반올림합니다. 그런 다음 소수점의 왼쪽 스포츠 토토 결과가 선언 된 정밀도에서 선언 된 스케일을 초과하면 오류가 발생합니다. 예를 들어,로 선언 된 열

스포츠 토토 결과 (3, 1)

값을 1 십자 자리로 둥글게하고 -99.9에서 99.9 사이의 값을 저장할 수 있습니다.

시작PostgreSQL15, a 선언 할 수 있습니다.스포츠 토토 결과음수 스케일의 열. 그런 다음 값은 소수점의 왼쪽으로 반올림됩니다. 정밀도는 여전히 균형이없는 스포츠 토토 결과의 최대 수를 나타냅니다. 따라서 열은로 선언됩니다.

스포츠 토토 결과 (2, -3)

가장 가까운 천으로 값을 반올림하고 포용 적 -99000에서 99000 사이의 값을 저장할 수 있습니다. 또한 선언 된 정밀도보다 큰 규모를 선언 할 수 있습니다. 이러한 열은 분수 값 만 보유 할 수 있으며, 소수점 오른쪽에있는 0 자리의 수는 최소한 선언 된 스케일을 뺀 것으로 선언 된 정밀도를 뺀 것입니다. 예를 들어,로 선언 된 열

스포츠 토토 결과 (3, 5)

값은 값을 5 진수로 두 자리로 둥글게하고 -0.00999와 0.00999 사이의 값을 포함시킬 수 있습니다.

note

스포츠 토토 결과a의 스케일을 허용합니다.스포츠 토토 결과선언을 -1000 ~ 1000 범위의 값으로 입력하십시오. 그러나SQL표준은 스케일이 범위 0 ~에 있어야합니다.정밀. 해당 범위 외부의 스케일을 사용하면 다른 데이터베이스 시스템에 휴대 할 수 없습니다.

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

일반 스포츠 토토 결과 값 외에도스포츠 토토 결과유형은 몇 가지 특별한 값을 가지고 있습니다.


Infinity
-infinity
NAN

이들은 IEEE 754 표준에서 수정되며Infinity, 부정적인 무한대not-number22029_22150업데이트 테이블 세트 x = '-infinity'. 입력시, 이러한 문자열은 대사율로 인식됩니다. 무한대 값은 대안 적으로 철자infand-inf.

무한대 값은 수학적 기대에 따라 행동합니다. 예를 들어,Infinity+ 유한 값과 같은Infinity, 마찬가지로InfinityplusInfinity; 하지만Infinity마이너스Infinity수확량NAN22807_22934스포츠 토토 결과열 - 유한 정밀 한계를 개념적으로 초과하기 때문에

theNAN(스포츠 토토 결과가 아님) 값은 정의되지 않은 계산 결과를 나타내는 데 사용됩니다. 일반적으로 A의 모든 작업NAN입력은 다른 생산NAN. 유일한 예외는 작업의 다른 입력이이면 동일한 출력이 얻어지는 경우입니다.NAN유한 또는 무한 스포츠 토토 결과 값으로 대체되었습니다. 그런 다음 해당 출력 값이 사용됩니다.NAN도. (이 원칙의 예는NAN제로 파워 수율로 올라 가면 1.)

Note

대부분의 구현에서not-number개념,NAN다른 스포츠 토토 결과 값과 동일하게 간주되지 않습니다 (포함NAN). 허용하기 위해스포츠 토토 결과트리 기반 인덱스에서 정렬 및 사용되는 값,PostgreSQL취급NAN값은 모두 동일하고 모든 비NAN값.

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

값을 반올림 할 때스포츠 토토 결과타입 라운드는 0에서 멀어지고 (대부분의 기계에서)Real이중 정밀가장 가까운 짝수 스포츠 토토 결과와의 타이티 유형. 예를 들어:

Select X,
  round (x :: 스포츠 토토 결과) num_round,
  dbl_round로 라운드 (x :: 이중 정밀)
Generate_Series (-3.5, 3.5, 1)에서 x로;
  x | num_round | dbl_round
------+----------+------------
 -3.5 |        -4 |        -4
 -2.5 |        -3 |        -2
 -1.5 |        -2 |        -2
 -0.5 |        -1 |        -0
  0.5 |         1 |         0
  1.5 |         2 |         2
  2.5 |         3 |         2
  3.5 |         4 |         4
(8 줄)

8.1.3. 부동 소수점 유형#

데이터 유형Real이중 정밀가변적이며 가변적 인 스포츠 토토 결과 유형입니다. 현재 지원되는 모든 플랫폼에서 이러한 유형은의 구현입니다.IEEE이진 플로팅 포인트 산술에 대한 표준 754 (각각 단일 및 이중 정밀도), 기본 프로세서, 운영 체제 및 컴파일러가 지원하는 정도까지.

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

  • 정확한 저장 및 계산이 필요한 경우 (금전 금액) 사용하십시오.스포츠 토토 결과대신 입력.

  • 특히 경계 사례 (무한대, 언더 플로)에서 특정 행동에 의존하는 경우 중요한 모든 것에 대해 이러한 유형으로 복잡한 계산을 수행하려면 구현을 신중하게 평가해야합니다..

  • 평등에 대한 두 개의 부동 소수점 값 비교가 항상 예상대로 작동하는 것은 아닙니다.

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

기본적으로 부동 소수점 값은 가장 짧은 정확한 소수점 표현으로 텍스트 형태로 출력됩니다. 생성 된 소수점 값은 동일한 이진 정밀도로 표현할 수있는 다른 값보다 실제 저장된 이진 값에 더 가깝습니다. (그러나 출력 값은 현재 절대정확히입력 루틴이 가장 둥근 가장 큰 규칙을 제대로 존중하지 않는 광범위한 버그를 피하기 위해 두 가지 대표 값 사이의 중간 웨이.float8값, 그리고 최대 9 자리float4값.

Note

이 가장 짧은 프레이즈 출력 형식은 히스토리 둥근 형식보다 생성하기가 훨씬 빠릅니다.

이전 버전의 출력과의 호환성PostgreSQL, 출력 정밀도를 줄이기 위해extra_float_digits매개 변수를 사용하여 대신 둥근 소수점 출력을 선택할 수 있습니다. 값 0 설정 값을 6로 반올림하는 이전 기본값 (forfloat4) 또는 15 (forfloat8) 중요한 소수점 자리. 음수 값을 설정하면 스포츠 토토 결과 수가 더 줄어 듭니다. 예를 들어 -2는 각각 4 자리 또는 13 자리로 출력됩니다.

모든 값extra_float_digits0보다 클이 가장 짧은 프레이즈 형식을 선택합니다.

Note

정확한 값을 원하는 응용 프로그램은 역사적으로 설정해야했습니다extra_float_digits~ 3을 얻습니다. 버전 간의 호환성을 극대화하려면 계속해야합니다.

일반 스포츠 토토 결과 값 외에도 부동 소수점 유형에는 몇 가지 특별한 값이 있습니다.


Infinity
-infinity
NAN

이들은 IEEE 754 특수 값을 나타냅니다Infinity, 부정적인 무한대not-number30643_30764업데이트 테이블 세트 x = '-infinity'. 입력시, 이러한 문자열은 대사율로 인식됩니다. 무한대 값은 대안 적으로 철자infand-inf.

참고

IEEE 754 지정NAN다른 부동 소수점 값과 동일하게 비교해서는 안됩니다 (포함NAN). 부동 소수점 값을 트리 기반 인덱스에 정렬하고 사용하도록 허용하기 위해PostgreSQL취급NAN값은 모두 동일하고 모든 비 값보다NAN값.

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

8.1.4. 일련 유형#

note

이 섹션에서는 자동화 된 열을 생성하는 PostgreSQL 특이 적 방법을 설명합니다. 또 다른 방법은에 설명 된 SQL 표준 ID 열 기능을 사용하는 것입니다.테이블 만들기.

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

테이블 만들기TableName(Colname시리얼
);

지정과 동일합니다.

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

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

Note

왜냐하면SmallSerial, Serialandbigserial시퀀스를 사용하여 구현되며, 행에 나타나지 않더라도 열에 나타나는 일련의 값에 "구멍"또는 갭이있을 수 있습니다. 시퀀스에서 할당 된 값은 해당 값을 포함하는 행이 테이블 열에 성공적으로 삽입되지 않더라도 여전히 "사용"됩니다. 예를 들어, 트랜잭션 삽입이 롤백되는 경우 발생할 수 있습니다. 보다nextVal ()inPostgreSQL : 문서 : 16 : 9.17. 스포츠 토토 결과 조작 기능자세한 내용.

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

유형 이름SerialandSerial4동등합니다 : 둘 다 CreateInteger열. 유형 이름bigserialandSerial8a를 제외하고는 같은 방식으로 작동합니다bigint열.bigserial2 개 이상의 사용을 예상하면 사용해야합니다.31테이블의 수명에 걸친 식별자. 유형 이름SmallSerialandSerial2a를 제외하고는 같은 방식으로 작동합니다.smallint열.

A 용으로 생성 된 시퀀스Serial소유 열이 삭제되면 열이 자동으로 삭제됩니다. 열을 떨어 뜨리지 않고 시퀀스를 삭제할 수 있지만 열 기본 표현식의 제거를 강제로 제거합니다.

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면