| 젠 토토 : 문서 : 9.6 : 젠 토토 | |||
|---|---|---|---|
| PostgreSQL : 문서 : 9.6 : 데이터 배트맨 토토 | PostgreSQL : 문서 : 9.6 : 데이터 배트맨 토토 | 8장. 데이터 유형 | PostgreSQL : 문서 : 9.6 : 화폐 스포츠 토토 베트맨 |
스포츠 토토 베트맨 유형은 2바이트, 4바이트, 8바이트 정수, 4바이트 및 8바이트 부동 소수점 스포츠 토토 베트맨, 선택 가능한 정밀도 소수로 구성됩니다.표 8-2사용 가능한 유형을 나열합니다.
표 8-2. 스포츠 토토 베트맨 유형
| 이름 | 저장소 크기 | 설명 | 범위 |
|---|---|---|---|
| smallint | 2바이트 | 작은 범위의 정수 | -32768 ~ +32767 |
| 정수 | 4바이트 | 정수에 대한 일반적인 선택 | -2147483648 ~ +2147483647 |
| bigint | 8바이트 | 대규모 정수 | -9223372036854775808 ~ +9223372036854775807 |
| 십진수 | 변수 | 사용자 지정 정밀도, 정확함 | 소수점 이하 최대 131072자리; 소수점 이하 16383자리까지 |
| 스포츠 토토 베트맨 | 변수 | 사용자 지정 정밀도, 정확함 | 소수점 이하 최대 131072자리; 소수점 이하 16383자리까지 |
| 실제 | 4바이트 | 가변-정밀도, 부정확 | 십진수 6자리 정밀도 |
| 배정밀도 | 8바이트 | 가변-정밀도, 부정확 | 십진수 15자리 정밀도 |
| smallserial | 2바이트 | 작은 자동 증가 정수 | 1 ~ 32767 |
| 연재 | 4바이트 | 자동 증가하는 정수 | 1 ~ 2147483647 |
| 큰 직렬 | 8바이트 | 큰 자동 증가 정수 | 1 ~ 9223372036854775807 |
스포츠 토토 베트맨 유형에 대한 상수 구문은 다음에 설명되어 있습니다.섹션 4.1.2. 스포츠 토토 베트맨 유형에는 해당 산술 연산자 및 함수의 전체 세트가 있습니다. 참조PostgreSQL : 문서 : 9.6 : 토토 결과 및 연산자11802_11879
유형smallint, 정수및bigint정수, 즉 분수 구성요소가 없는 다양한 범위의 스포츠 토토 베트맨를 저장합니다. 허용된 범위를 벗어난 값을 저장하려고 하면 오류가 발생합니다.
유형정수범위, 저장소 크기 및 성능 간의 최상의 균형을 제공하므로 일반적인 선택입니다. 그만큼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바이트에 3~8바이트의 오버헤드를 더한 것입니다.
일반 스포츠 토토 베트맨 값 외에도스포츠 토토 베트맨유형은 특수 값을 허용합니다NaN, 의미"스포츠 토토 베트맨 아님". 모든 작업NaN다른 것을 산출NaN. 이 값을 SQL 명령의 상수로 작성할 때는 앞뒤에 따옴표를 붙여야 합니다. 예를 들면 다음과 같습니다.UPDATE 테이블 SET x = 'NaN'. 입력 시 문자열NaN대소문자를 구분하지 않고 인식됩니다.
참고:대부분의 구현에서"스포츠 토토 베트맨가 아님"개념,NaN다른 스포츠 토토 베트맨 값(포함과 동일한 것으로 간주되지 않습니다.NaN). 허용하기 위해스포츠 토토 베트맨트리 기반 색인에서 정렬 및 사용되는 값포스트그레SQL대접NaN값은 동일하고 모든 비-보다 큽니다.NaN값.
유형십진수그리고스포츠 토토 베트맨동등합니다. 두 유형 모두 다음의 일부입니다.SQL표준.
값을 반올림할 때,스포츠 토토 베트맨type은 0에서 멀어지는 방향으로 반올림하지만 (대부분의 시스템에서)진짜그리고배정밀도가장 가까운 짝수에 반올림 관계를 입력합니다. 예를 들어:
선택 x, round(x::numeric) AS num_round, round(x::배정밀도) AS dbl_round generate_series(-3.5, 3.5, 1)에서 x; 엑스 | 라운드 수 | 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행)
데이터 유형진짜그리고배정밀도은 부정확하고 가변 정밀도 스포츠 토토 베트맨 유형입니다. 실제로 이러한 유형은 일반적으로 다음을 구현합니다.IEEE기본 프로세서, 운영 체제 및 컴파일러가 지원하는 범위 내에서 이진 부동 소수점 산술(각각 단정밀도 및 배정밀도)에 대한 표준 754입니다.
부정확함은 일부 값이 내부 형식으로 정확하게 변환될 수 없으며 근사치로 저장되므로 값을 저장하고 검색할 때 약간의 불일치가 나타날 수 있음을 의미합니다. 이러한 오류를 관리하고 계산을 통해 오류가 전파되는 방법은 수학과 컴퓨터 과학 전체 분야의 주제이므로 다음 사항을 제외하고 여기에서는 논의하지 않습니다.
정확한 저장 및 계산(금전 금액 등)이 필요한 경우 다음을 사용하세요.스포츠 토토 베트맨대신 입력하세요.
중요한 사항에 대해 이러한 유형을 사용하여 복잡한 계산을 수행하려는 경우, 특히 경계 사례(무한대, 언더플로)의 특정 동작에 의존하는 경우 구현을 신중하게 평가해야 합니다.
두 개의 부동 소수점 값이 동일한지 비교하는 것이 항상 예상대로 작동하지 않을 수도 있습니다.
대부분의 플랫폼에서실제유형의 범위는 최소 1E-37부터 1E+37까지이며 정밀도는 최소 6자리의 십진수입니다. 그만큼배정밀도유형의 범위는 일반적으로 약 1E-307에서 1E+308 사이이며 정밀도는 최소 15자리입니다. 값이 너무 크거나 작으면 오류가 발생합니다. 입력 스포츠 토토 베트맨의 정밀도가 너무 높으면 반올림이 발생할 수 있습니다. 0과 구별되는 것으로 표현할 수 없는 0에 너무 가까운 스포츠 토토 베트맨는 언더플로 오류를 발생시킵니다.
참고:그extra_float_digits설정은 부동 소수점 값이 출력을 위해 텍스트로 변환될 때 포함되는 추가 유효 자릿수를 제어합니다. 기본값은0, 출력은 PostgreSQL이 지원하는 모든 플랫폼에서 동일합니다. 이 값을 늘리면 저장된 값을 더 정확하게 나타내는 출력이 생성되지만 이식이 불가능할 수 있습니다.
일반 스포츠 토토 베트맨 값 외에도 부동 소수점 유형에는 몇 가지 특수 값이 있습니다.
무한대
-무한대
NaN
참고:IEEE754는 이를 명시합니다NaN다른 부동 소수점 값(포함과 동일하게 비교해서는 안 됩니다.NaN). 부동 소수점 값을 트리 기반 인덱스에서 정렬하고 사용할 수 있도록 하려면,PostgreSQL대접NaN값은 동일하고 모든 비-보다 큽니다.NaN값.
포스트그레SQL또한 SQL 표준 표기법을 지원합니다플로트그리고부동(p)부정확한 스포츠 토토 베트맨 유형을 지정하기 위한 것입니다. 여기,p최소 허용 정밀도를 지정합니다.바이너리스포츠 토토 베트맨.포스트그레SQL수락플로트(1)에플로트(24)다음을 선택하여진짜입력, 동안플로트(25)에플로트(53)선택배정밀도. 의 값p허용된 범위를 벗어나면 오류가 발생합니다.플로트정밀도가 지정되지 않은 것은 다음을 의미합니다배정밀도.
참고:가정은진짜그리고배정밀도가수에 정확히 24비트와 53비트가 있는 것은 IEEE 표준 부동 소수점 구현에 적합합니다. IEEE가 아닌 플랫폼에서는 약간 다를 수 있지만 단순화를 위해 동일한 범위를 사용합니다.p모든 플랫폼에서 사용됩니다.
데이터 유형smallserial, 연재그리고큰 직렬은 실제 유형이 아니지만 단지 고유 식별자 열을 생성하기 위한 표기 편의일 뿐입니다(AUTO_INCREMENT다른 데이터베이스에서 지원되는 속성). 현재 구현에서는 다음을 지정합니다.
테이블 생성테이블 이름 (
열이름연속
);
다음을 지정하는 것과 동일합니다.
시퀀스 생성테이블 이름_열이름_seq;
테이블 만들기테이블 이름 (
열이름정수가 NULL이 아님 DEFAULT nextval('테이블 이름_열이름_seq')
);
시퀀스 변경테이블 이름_열이름_seq 소유자테이블 이름.열이름;
따라서 우리는 정수 열을 생성하고 그 기본값이 시퀀스 생성기에서 할당되도록 준비했습니다. 에이NULL이 아님null 값을 삽입할 수 없도록 제약 조건이 적용됩니다. (대부분의 경우 다음을 첨부하고 싶을 수도 있습니다.고유또는기본 키중복 값이 실수로 삽입되는 것을 방지하기 위한 제약이지만 자동은 아닙니다.) 마지막으로 시퀀스는 다음과 같이 표시됩니다."소유자"열, 즉 열이나 테이블이 삭제되면 삭제됩니다.
참고:왜냐하면smallserial, 연재그리고큰 직렬은 시퀀스를 사용하여 구현되므로 행이 삭제되지 않더라도 열에 나타나는 값 시퀀스에 "구멍"이나 공백이 있을 수 있습니다. 시퀀스에서 할당된 값은 해당 값을 포함하는 행이 테이블 열에 성공적으로 삽입되지 않은 경우에도 여전히 "사용"됩니다. 예를 들어 삽입 트랜잭션이 롤백되는 경우 이런 일이 발생할 수 있습니다. 보다다음값()inPostgreSQL : 문서 : 9.6 : 스포츠 토토 조작 함수자세한 내용은.
순서의 다음 값을 다음에 삽입하려면연재열, 다음을 지정하십시오.연재열에는 기본값이 할당되어야 합니다. 이는의 열 목록에서 해당 열을 제외하여 수행할 수 있습니다.삽입문장 또는를 사용하여기본값키워드.
유형 이름연재그리고연속4동등함: 둘 다 생성정수열. 유형 이름큰 직렬그리고연속8같은 방식으로 작업합니다. 단, 다음을 생성합니다.비긴트열.큰 직렬2개 이상의 사용이 예상되는 경우 사용해야 합니다.31테이블 수명 동안의 식별자. 유형 이름smallserial그리고연재2또한 동일한 방식으로 작동합니다. 단, 다음을 생성합니다.smallint열.
다음을 위해 생성된 시퀀스연재소유 열이 삭제되면 열도 자동으로 삭제됩니다. 열을 삭제하지 않고 시퀀스를 삭제할 수 있지만 이렇게 하면 열 기본 표현식이 강제로 제거됩니다.