PostgreSQL

3.1. 데이터 타입에 맞는 알맞는 테이블

술임 2022. 1. 6. 17:52

데이터 성격에 맞는 데이터 타입을 선택해야 PostgreSQL이 더 빠르고 정확하게 우리가 원하는 역할을 수행함

 

데이터 타입

프로그래밍에서 변수 선언 시 변수 앞에 데이터 타입 선언해서 변수의 성질을 정의하는 것과 비슷함

 

숫자형

PostgreSQL에서 변수는 소문자로 관리됨

데이터 타입 설명 저장용량
INTEGER - 소수점 자리를 제외한 정수만 입력
- 축약한 INT로 작성해도 됨
- 숫자 길이 제한 불가
4bytes
NUMERIC(p,q) - 소수점자리 표시 가능
- DECIMAL과 같음
- p에는 전체 자릿수, q는 소수점 자릿수 입력
- q를 빼면 p자리 정수를 의미함
가변
FLOAT - 부동소수점 활용한 연산 4bytes, 8bytes
SERIAL - INTEGER를 기본값으로 1씩 추가됨
- 값이 자동으로 생성됨
- 프라이머리 키 컬럼의 데이터 타입으로 사용됨
4bytes

 

화폐형

- 금액을 저장하는 데이터 타입

- 분수의 형태로 금액 저장

CREATE TABLE skirt_store(
price MONEY);

 

문자형

데이터 타입 설명
VARCHAR(n) - n 이하 문자의 길이 그대로 저장
- n은 양의 정수로 데이터의 크기가 아니라 문자열의 길이
- n을 지정하지 않으면 임의의 길이 모든 문자열을 허용
CHAR(n) - '문자길이+공백' 형태로 n에 맞추어 저장
- n을 지정하지 않으면 CHAR(1)과 동일함
TEXT 길이에 상관없이 모든 문자열을 저장
(n을 쓰지 않는 VARCHAR)

 

날짜 및 시간

데이터 타입 설명 저장용량
DATE 날짜 정보만 표시 4 bytes
TIME 시간 정보만 표시 (시간대 정보 반영 x, 세계표준시) 8 bytes
TIME WITH TIME ZONE 시간 정보만 표시 (시간대 정보 반영 o) 12 bytes
TIMESTAMP 현재 세계 표준시(시간대 정보 반영 x)
날짜 시간 정보 모두 나타냄
8 bytes
TIMESTAMPTZ 세계표준시 + 시간대 정보 반영 8 bytes

날짜 및 시간  TIMESTAMP - TIMESTAMP WITHOUT TIME ZONE (TIMESTAMP)

                                    - TIMESTAMP WITH TIME ZONE (=TIMESTAMPTZ)

날짜             DATE

시간             TIME          - TIME WITHOUT TIME ZONE(=TIME)

                                   - TIME WITH TIME ZONE

    

 

불리언형

논리 데이터 타입

일반적으로는 참과 거짓만 나타내지만 PostgreSQL에는 알 수 없음 상태가 존재함

데이터 타입 설명
TRUE True, yes,on, 1 모두 참
FALSE False, no, off, 0 모두 거짓
Null True도 아니고 False도 아님. 불확실성

 

배열형

여러 데이터를 하나의 집합으로 관리하기 위한 데이터 타입

하나 이상의 여러 개의 데이터를 저장할 수 있음

 

- 데이터 형식 지정

CREATE TABLE 테이블명(
변수명 INTEGER[]);

 

- 데이터 입력

대부분의 데이터탕딥은 본인의 배열 데이터타입도 가지고 있음

INTEGER는 INTEGER[]

VARCHAR는 VARCHAR[]

BOOLEAN은 BOOLEAN[] 등을 가지고 있음

 

JSON형

- json은 자바 스크립트 객체 표기법(Java Script Object Notaion)의 약자

- 서버와 웹 애플리케이션 간 데이터 주고받을 때 사용

- 키(key)와 밸류(value) 쌍으로 구성된 JSON 오브젝트와, 배열과 비슷한 구조를 가지는 JSON 배열로 나뉨

- JSON 오브젝트 밸류에는 숫자, 문자열, JSON 배열, JSON 등이 옴

 

  장점 단점
JSON - 입력 텍스트의 정확한 사본 생성
- 불러올 때는 데이터를 재분석 해서 실행
처리 속도가 느림
JSONB - 처리 속도가 비교적 빠름
- 출력 시에는 재분석 안해서 처리 속도가 빠름
- 애플리케이션에서는 일반적으로 선호함
데이터 저장 속도가 비교적 느림
CREATE TABLE 테이블명 (
변수명 JSON NOT NULL);

 

JSON 오브젝트의 구조

{"키 값" : "밸류 값"}

 

JSON 배열의 구조

[{"키 값" : "밸류 값"}, {"키 값" : "밸류 값"}]

 

데이터 타입 변경

- 기존의 데이터 타입을 변경 시 사용하는 형변환 연산자

- 저장된 정보를 미리 특정한 데이터 타입으로 지정해야할 때도 있고, 우리가 필요한 데이터 타입으로 변경 가능함

CAST 연산자

CAST (표현식 AS 바꿀 데이터 타입)

 

CAST 형 연산자

CAST 연산자를 사용하지 않고 더 간단하게 데이터 타입을 바꿀 수 잇음

:: 기호를 사용함

값::바꿀 데이터 타입

'PostgreSQL' 카테고리의 다른 글

2.2. pgAdmin4  (1) 2022.01.06
2.1. psql  (0) 2022.01.06
PostgreSQL  (0) 2022.01.03
1.3. PostgreSQL 구조  (0) 2022.01.03
1.2. PostgreSQL 개발환경 구축  (0) 2022.01.03