숫자 스포츠 토토은 2, 4 및 8 바이트 정수, 4 바이트 및 8 바이트 플로팅 포인트 숫자 및 선택 가능한 프리렉션 소수로 구성됩니다.표 8.2사용 가능한 스포츠 토토을 나열합니다.
표 8.2. 숫자 스포츠 토토
이름 | 스토리지 크기 | 설명 | 범위 |
---|---|---|---|
smallint |
2 바이트 | 작은 범위 정수 | -32768 ~ +32767 |
정수 |
4 바이트 | 정수를위한 전형적인 선택 | -2147483648 ~ +2147483647 |
bigint |
8 바이트 | 대형 정수 | -9223372036854775808 ~ +9223372036854775807 |
Decimal |
변수 | 사용자 지정 정밀도, 정확한 | 소수점 앞에서 최대 131072 자리; 소수점 이후 최대 16383 자리 |
숫자 |
변수 | 사용자 지정 정밀도, 정확한 | 소수점 이전의 최대 131072 자리; 소수점 이후 최대 16383 자리 |
Real |
4 바이트 | 가변-프레시션, eencact | 6 십진 자릿수 정밀 |
이중 정밀 |
8 바이트 | 가변-프레시션, eencact | 15 소수 자릿수 정밀 |
SmallSerial |
2 바이트 | 작은 자동화 정수 | 1 ~ 32767 |
Serial |
4 바이트 | AutoinCrementing Integer | 1 ~ 2147483647 |
bigserial |
8 바이트 | 대형 자동화 정수 | 1 ~ 9223372036854775807 |
숫자 스포츠 토토에 대한 상수의 구문은에 설명되어 있습니다.섹션 4.1.2. 숫자 스포츠 토토에는 해당 산술 연산자 및 기능의 전체 세트가 있습니다. 참조PostgreSQL : 문서 : 11 : 9 장. 토토 캔 및자세한 내용. 다음 섹션에서는 스포츠 토토을 자세히 설명합니다.
스포츠 토토smallint
, Integer
및bigint
전체 숫자, 즉 다양한 범위의 분수 구성 요소가없는 숫자를 저장합니다. 허용 범위 외부에서 값을 저장하려는 시도는 오류가 발생합니다.
스포츠 토토Integer
는 범위, 스토리지 크기 및 성능간에 최상의 균형을 제공하기 때문에 일반적인 선택입니다. 그만큼smallint
스포츠 토토은 일반적으로 디스크 공간이 프리미엄 인 경우에만 사용됩니다. 그만큼bigint
스포츠 토토은의 범위 일 때 사용하도록 설계되었습니다.정수
스포츠 토토이 충분하지 않습니다.
SQL정수 스포츠 토토 만 지정Integer
(또는int
),smallint
및bigint
. 스포츠 토토 이름int2
, int4
및int8
다른 사람들도 사용하는 확장자입니다SQL데이터베이스 시스템.
스포츠 토토숫자
숫자를 매우 많은 숫자로 저장할 수 있습니다. 특히 정확성이 필요한 금전적 금액 및 기타 수량을 저장하는 데 권장됩니다. 계산숫자
값은 가능한 경우 정확한 결과, 예를 들어, 첨가, 빼기, 곱셈을 산출합니다. 그러나 계산숫자
값은 정수 스포츠 토토 또는 다음 섹션에 설명 된 부동 소수점 스포츠 토토에 비해 매우 느립니다.
우리는 다음 약관을 사용합니다.정밀of숫자
는 정수의 총 숫자, 즉 소수점의 양쪽에 숫자 수입니다. 그만큼스케일of숫자
는 소수점의 오른쪽에있는 분수 부분의 소수점 숫자 수입니다. 따라서 숫자 23.5141의 정밀도는 6이고 스케일은 4입니다. 정수는 스케일이 0 인 것으로 간주 될 수 있습니다.
a의 최대 정밀도와 최대 스케일 모두숫자
열을 구성 할 수 있습니다. 스포츠 토토의 열을 선언하려면숫자
구문 사용 :
숫자 (정밀
,스케일
)
정밀도는 양수, 스케일 0 또는 양수 여야합니다. 또는 :
숫자 (정밀
)
0의 스케일을 선택합니다. 지정 :
숫자
정밀도 또는 스케일이 없으면 정밀도와 스케일의 숫자 값을 저장할 수있는 열을 생성합니다. 이런 종류의 열은 입력 값을 특정 척도로 강요하지는 않지만숫자
선언 된 스케일을 가진 열은 입력 값을 해당 척도로 강요합니다. (그만큼SQL표준은 기본 스케일 0, 즉 정수 정밀도에 대한 강요가 필요합니다. 우리는 이것을 조금 쓸모 없다는 것을 알게됩니다. 이식성에 대해 걱정하는 경우 항상 정밀도를 지정하고 명시 적으로 규모를 지정하십시오.)
스포츠 토토 선언에 명시 적으로 지정된 최대 허용 정밀도는 1000;숫자
지정된 정밀도가 없으면에 설명 된 한계가 적용됩니다.표 8.2.
저장 될 값의 척도가 열의 선언 된 스케일보다 크면 시스템은 지정된 분수 숫자로 값을 반올림합니다. 그런 다음 소수점의 왼쪽 숫자가 선언 된 정밀도에서 선언 된 스케일을 초과하면 오류가 제기됩니다.
숫자 값은 추가 선행 또는 후행 제로없이 물리적으로 저장됩니다. 따라서, 열의 선언 된 정밀도와 스케일은 고정 할당이 아니라 최대입니다. (이런 의미에서숫자
스포츠 토토은 더 비슷합니다varchar (
보다n
)char (
.) 실제 스토리지 요구 사항은 4 자리 숫자의 각 그룹에 대해 2 바이트와 3-8 바이트 오버 헤드입니다.n
)
일반 숫자 값 외에도숫자
스포츠 토토은 특별한 값을 허용Nan
, 의미“not-a-number”. 모든 작업Nan
다른 생산량NAN
. SQL 명령 에서이 값을 상수로 작성할 때는 그 주위에 인용문을 넣어야합니다 (예 :업데이트 테이블 세트 x = 'nan'
. 입력에, 문자열NAN
는 대소 문자로 인식됩니다.
대부분의 구현에서“not-number”개념,NAN
다른 숫자 값과 동등한 것으로 간주되지 않습니다 (포함NAN
). 허용하기 위해숫자
트리 기반 인덱스에서 정렬되고 사용할 값,PostgreSQL취급NAN
값은 모두 동일하고 모든 비NAN
값.
스포츠 토토10 진수
and숫자
동등합니다. 두 스포츠 토토 모두의 일부입니다.SQL표준.
21194_21222숫자
타입 라운드는 0에서 멀어지고 (대부분의 기계에서)Real
and이중 정밀
스포츠 토토은 가장 가까운 짝수와 묶입니다. 예를 들어:
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 줄)
데이터 스포츠 토토Real
and이중 정밀
가변적이며 가변적 인 숫자 스포츠 토토입니다. 실제로 이러한 스포츠 토토은 일반적으로의 구현입니다.IEEE이진 부유 포인트 산술 (각각 단일 및 이중 정밀도)의 표준 754, 기본 프로세서, 운영 체제 및 컴파일러가 지원하는 정도까지.
eenceact는 일부 값을 내부 형식으로 정확하게 변환 할 수없고 근사치로 저장되어 값을 저장하고 검색하면 약간의 불일치가 나타날 수 있음을 의미합니다. 이러한 오류를 관리하고 계산을 통해 전파되는 방법을 관리하는 것은 수학 및 컴퓨터 과학의 전체 지점의 주제이며 다음과 같은 점을 제외하고 여기에서 논의되지 않습니다.
정확한 저장 및 계산이 필요한 경우 (금액 금액) 사용하십시오.숫자
대신 입력.
특히 경계 사례 (무한대, 언더 플로)에서 특정 행동에 의존하는 경우 중요한 모든 것에 대해 이러한 스포츠 토토으로 복잡한 계산을 수행하려면 구현을 신중하게 평가해야합니다..
평등에 대한 두 개의 부동 소수점 값 비교가 항상 예상대로 작동하지는 않습니다.
대부분의 플랫폼에서Real
스포츠 토토의 범위는 최소 6 자리의 정밀도로 최소 1E-37 ~ 1E+37입니다. 그만큼이중 정밀
스포츠 토토은 일반적으로 최소 15 자리 이상의 정밀도로 약 1e-307 ~ 1e+308의 범위를 갖습니다. 너무 크거나 너무 작은 값으로 인해 오류가 발생합니다. 입력 번호의 정밀도가 너무 높으면 반올림이 발생할 수 있습니다. 0과는 별개로 표현할 수없는 0에 너무 가까운 숫자는 언더 플로 오류가 발생합니다.
theextra_float_digits설정은 부동 소수점 값이 출력을 위해 텍스트로 변환 될 때 포함 된 추가 유의 숫자 수를 제어합니다. 기본값0
, 출력은 PostgreSQL에서 지원하는 모든 플랫폼에서 동일합니다. 증가하면 저장된 값을 더 정확하게 나타내지 만 포식 할 수 없을 수도 있습니다..
일반 숫자 값 외에도 부동 소수점 스포츠 토토에는 몇 가지 특별한 값이 있습니다.
Infinity
-infinity
NAN
이들은 IEEE 754 특수 값을 나타냅니다“Infinity”, “부정적인 무한대”및“not-a-number”25768_26011업데이트 테이블 세트 x = '-infinity'
. 입력시,이 문자열은 사례에 민감하지 않은 방식으로 인식됩니다.
IEEE754를 지정합니다NAN
다른 부동 소수점 값과 동일하게 비교해서는 안됩니다 (포함NAN
). 부동 소수점 값을 트리 기반 인덱스에 정렬하고 사용하도록 허용하기 위해PostgreSQL취급NAN
값은 동일하고 모든 비 값보다NAN
값.
PostgreSQLSQL 표준 표기법도 지원float
및float (
부정확 한 숫자 스포츠 토토을 지정합니다. 여기,P
)P
최소 허용 가능한 정밀도를 지정BINAGE숫자.PostgreSQLAccucctsfloat (1)
tofloat (24)
선택대로Real
whilefloat (25)
tofloat (53)
select이중 정밀
. 의 값P
허용 범위 외부에서 오류를 그립니다.float
정밀도가 지정되지 않은 상태에서 평균으로 간주됩니다이중 정밀
.
가정Real
and이중 정밀도
Mantissa에서 각각 정확히 24 및 53 비트를 갖는 것은 IEEE-Standard Floating Point 구현에 맞습니다. 비 지구 플랫폼에서는 약간 벗어날 수 있지만 단순화를 위해 동일한 범위의P
모든 플랫폼에서 사용됩니다.
이 섹션에서는 자동화 열을 생성하는 PostgreSQL 별 방법을 설명합니다. 또 다른 방법은에 설명 된 SQL 표준 ID 열 기능을 사용하는 것입니다.테이블 만들기.
데이터 스포츠 토토SmallSerial
, Serial
및bigserial
진정한 스포츠 토토은 아니지만 고유 식별자 열을 생성하기위한 표기법 편의성 일뿐입니다 (유사auto_increment
다른 데이터베이스에서 지원하는 속성). 현재 구현에서 : 지정
테이블 만들기TableName
(Colname
시리얼 );
지정과 동일합니다.
시퀀스 만들기TableName
_Colname
_Seq 정수; 테이블 작성TableName
(Colname
Integer NULL DEFAULT NEXTVAL ( 'TableName
_colname
_seq ') ); Alter SequenceTableName
_Colname
_Seq 소유TableName
.Colname
;
따라서 정수 열을 생성하고 시퀀스 생성기에서 기본값을 할당하도록 배열했습니다. 에이NOT NULL
널 값을 삽입 할 수 없도록 제약 조건이 적용됩니다. (대부분의 경우 a를 첨부하고 싶을 것입니다고유 한
또는기본 키
우연히 중복 값이 삽입되는 것을 방지하는 제약 조건이지만 자동은 아닙니다.) 마지막으로, 시퀀스는로 표시됩니다.“소유”열이나 테이블이 삭제되면 삭제되도록 열이 삭제됩니다.
때문에SmallSerial
, Serial
andbigserial
시퀀스를 사용하여 구현되며 행에 표시되지 않더라도 열에 나타나는 일련의 값에 "구멍"또는 갭이있을 수 있습니다. 시퀀스에서 할당 된 값은 해당 값을 포함하는 행이 테이블 열에 성공적으로 삽입되지 않더라도 여전히 "사용"됩니다. 예를 들어, 트랜잭션 삽입이 롤백되는 경우 발생할 수 있습니다. 보다nextVal ()
inPostgreSQL : 문서 : 11 : 9.16. 스포츠 토토 사이트자세한 내용.
시퀀스의 다음 값을 삽입하려면Serial
열,를 지정하십시오Serial
열에 기본값을 할당해야합니다. 이것은 열의 열 목록에서 열을 제외하여 수행 할 수 있습니다.삽입
진술 또는 사용을 통한기본값
키워드.
스포츠 토토 이름Serial
및Serial4
동등합니다 : 둘 다 Create정수
열. 스포츠 토토 이름bigserial
andSerial8
a를 제외하고는 같은 방식으로 작동합니다bigint
열.bigserial
2 이상 사용을 예상하면 사용해야합니다.31테이블의 수명에 걸친 식별자. 스포츠 토토 이름SmallSerial
andSerial2
a를 제외하고는 같은 방식으로 작동합니다.smallint
열.
a 시퀀스Serial
소유 열이 삭제되면 열이 자동으로 삭제됩니다. 열을 떨어 뜨리지 않고 시퀀스를 삭제할 수 있지만 열 기본 표현식의 제거를 강제로 제거합니다.