[PostgreSQL] 데이터타입

sunaaa·2021년 4월 14일
2

DATABASE

목록 보기
3/5

실제 테이블을 만들기 전에 PostgreSQL의 자료형을 살펴보자.

공식문서 : https://www.postgresql.org/docs/

PostgreSQL 데이터타입 표

자료형 지정

  • PostgreSQL 은 ::자료형 과 같은 명시로 자료형을 지정할 수 있다.
select now() ::timestamp as t; // 연월일 날짜, 시간
t                  |
-------------------|
2020-06-20 12:52:43|


select now() ::date as t; // 연월일
t         |
----------|
2020-06-20|


select now() ::time as t; // 시간
t       |
--------|
12:53:05|
  • interval 타입은 year, month, day, hour, minute, second 등의 단위와 결합하여 날짜/시간 연산이 가능하다.(시스템 시간 기준)
  • +,- 연산도 가능하다.
select now() ::timestamp        as date1
     , now() + interval '3 day' as date2
     ;
    
----------------------------------------
date1              |date2              |
-------------------|-------------------|
2020-06-20 13:04:15|2020-06-23 13:04:15|
----------------------------------------


select now() + interval '3 d'  
     - now() as interval
     ;
     
---------     
interval|
--------|
  3 days|
---------

문자형(Character) 데이터타입

  • 다른 데이터베이스와 유사함
  • char, varchar, text 자료형 사용
  • char(고정길이), varchar(가변길이) : 문자의 크기를 미리 지정해주어야 함. (ex. char(10), varchar(10))
  • 주의 : char(10)은 10byte가 아니고 10length임. 10자리의 한글이 들어감.
create table test_table ( col1 varchar(10) );
insert into test_table (col1) values ('가나다라마바사아자차');
select * from test_table;

col1      |
----------|
가나다라마바사아자차|

숫자형(Numeric) 데이터타입

  • interger(정수)Floating-point numbers(부동 소숫점 숫자)로 나뉨
  • 주로 int(정수), numeric(부동 소수점 숫자) 사용
  1. Integer
  • SMALLINT
  • smallint: 2byte정수, 범위 : -32,768~32,767
  • integer : 4byte정수, 범위 : -2,147,483,648 ~ 2.147,483,647
  • bigint : 8byte정수
  1. Floating-point numbers
  • numeric 또는 numeric(p,s) : 소수점 이하의 s자리수가 있는 p자리의 실수. 허용 범위가 크고 계산을 정확히 수행하는 자료형이나 다른 타입에 비해 느리다고 함(체감은 안됨). 금액 계산시 주로 사용 ! ex.numeric(10,2)` = 99999999.99

시리얼 타입

  • smallserial, serial, bigserial
  • 시리얼은 PostgreSQL이 자동으로 값을 생성해 serial열에 채우는 것을 제외하고는 정수와 같음. auto_increment와 유사하게 동작함
  • serial 타입은 시퀀스 생성기에서 자동으로 시퀀스가 생성된다.
create table test_table {
     auto_key serial
};

불리언 타입

  • true : 1, y, t 자동 매칭
  • false : 0, n, f 자동매칭
  • NULL 허용

기타 특이한 타입

  • box, line, circle 등의 도형타입
  • byte, bytea
  • xml, json
    : JSON 내부의 KEY:VALUE값을 조회해 올 수 있으며 KEY를 인덱스 설정하는것도 가능하다.
    : 9버전부터 JSON을 허용했으나 9버전은 관련 함수를 제공하지 않아 TEXT로 저장하는것과 다를 바가 없었다. 10버전부터 JSON 관련 함수들을 사용할 수 있다.
  • array
    https://codecamp.tistory.com/8?category=892632

참고자료

profile
Be Playful Front-end Developer

0개의 댓글