[14] PostgreSQL – NUMERIC 데이터 유형
일반적으로 NUMERIC 유형은 정밀도가 필요한 화폐 또는 금액 저장에 사용됩니다.
1
2
3
4
5
|
Syntax: NUMERIC(precision, scale)
Where,
Precision: Total number of digits.
Scale: Number of digits in terms of a fraction.
|
cs |
NUMERIC 값은 소수점 이하 16,383자리, 소수점 이하 131,072자리까지 가능합니다. 스케일이 0인 NUMERIC 열에 대해 아래에 정의된 구문과 같이 0 또는 양의 스케일을 가질 수 있습니다.
1
|
Syntax: NUMERIC(precision)
|
cs |
Precision와 Scale을 모두 제거하면 정밀도 또는 배율에 제한이 없으며 구문은 다음과 같습니다.
1
|
Syntax: NUMERIC
|
cs |
NUMERIC 및 DECIMAL 유형은 PostgreSQL 및 최대 SQL 표준에서 동일합니다.
NUMERIC 값에 대한 계산이 integer, float 및 double precision보다 느리기 때문에 정밀도가 필요하지 않은 경우 NUMERIC 유형을 사용하지 않는 것이 좋습니다.
예시 1:
아래 명령을 사용하여 products라는 새 테이블을 만듭니다.
1
2
3
4
5
|
CREATE TABLE IF NOT EXISTS products (
id serial PRIMARY KEY,
name VARCHAR NOT NULL,
price NUMERIC (5, 2)
);
|
cs |
이제 가격 열에 선언된 규모를 초과하는 가격의 일부 제품을 삽입합니다.
1
2
3
4
|
INSERT INTO products (name, price)
VALUES
('Phone', 100.2157),
('Tablet', 300.2149);
|
cs |
가격 열의 스케일이 2이므로 PostgreSQL은 값 100.2157을 100.22로 반올림하고 값 300.2149를 300.21로 반올림합니다.
아래 쿼리는 제품 테이블의 모든 행을 반환합니다.
1
2
3
4
|
SELECT
*
FROM
products;
|
cs |
결과 1:
예시 2:
아래 명령을 사용하여 products라는 새 테이블을 만듭니다.
1
2
3
4
5
|
CREATE TABLE IF NOT EXISTS employee_salary(
id serial PRIMARY KEY,
name VARCHAR NOT NULL,
salary NUMERIC (10, 2)
);
|
cs |
이제 가격 열에 선언된 규모를 초과하는 가격의 일부 제품을 삽입합니다.
1
2
3
4
5
6
|
INSERT INTO employee_salary(name, salary)
VALUES
('Raju', 57896.2277),
('Abhishek', 84561.3657),
('Nikhil', 55100.11957),
('Ravi', 49300.21425849);
|
cs |
가격 열의 스케일이 2이므로 PostgreSQL은 값 57896.2277을 Raju의 경우 57896.22로, 값 84561.3657을 Abhishek의 경우 84561.36으로, 값 55100.11957을 Nikhil의 경우 55100.12로, 값 49300.21425849를 Ravi0의 경우 49300으로 반올림합니다.
아래 쿼리는 제품 테이블의 모든 행을 반환합니다.
1
2
3
4
|
SELECT
*
FROM
employee_salary;
|
cs |
결과 2:
'공부 > PostgreSQL' 카테고리의 다른 글
[16] PostgreSQL – TIME 데이터 유형 (0) | 2023.04.15 |
---|---|
[15] PostgreSQL – Date 데이터 유형 (1) | 2023.04.15 |
[13] PostgreSQL – VARCHAR 데이터 유형 (0) | 2023.04.13 |
[12] PostgreSQL – CHAR 데이터 유형 (0) | 2023.04.12 |
[11] PostgreSQL – Boolean 데이터 유형 (0) | 2023.04.12 |
댓글