본문 바로가기
DataBase/PostgreSQL

[데이터타입] 숫자, 문자, 날짜/시간

by 예스p 2023. 4. 11.

데이터 타입

PostgreSQL에서 자주쓰이는 데이터 타입들을 알아본다


숫자

  • integer :
    - 정수만을 저장할 수 있는 숫자타입
  • numeric (가변적크기) : 
    - 정수 또는 소수값을 저장한다.(Oracle의 Number타입)
  • serial :
    - PostgreSQL에서 지원하는 타입으로 시퀀스를 사용한 auto increment 기능이 있다.
--serial타입으로 칼럼을 생성할때,
CREATE TABLE test( id serial );
--내부적으로 실행되는 SQL문
CREATE SEQUENCE test_id_seq;
CREATE TABLE table_name ( id integer NOT NULL DEFAULT nextval('test_id_seq'));
ALTER SEQUENCE table_name_id_seq OWNED BY table_name.id;

 

 

문자

  • varchar (n) :
    - 제한이 있는 가변길이
  • text :
    - varchar처럼 가변길이이나 크기가 무제한이다.
    - varchar, char에 비해 약간의 오버헤드가 발생한다.
  • char (n) : 
    - 고정길이(남은자리는 널문자로 채움)
    - 문자열 길이 계산 시 널문자는 포함하지 않는다.
  • bpchar (n) : 
    - blank-padded char
    - 고정길이(남는 자리 공백으로 채움)

 

 

날짜/시간

  • timestamp :
    - 날짜+시간 (2023-05-01 12:52:43)
    - current_timestamp로 현재 날짜와 시간을 조회할 수 있다.
  • date :
    - 날짜 (2023-05-01)
    - current_date로 현재 날짜를 조회할 수 있다.
  • time 
    - 시간 (12:52:43)
    - current_time으로 현재 시간을 조회할 수 있다.
  • interval 
    - 시간 간격을 저장할 수 있는 자료형
    - 아래 단락에서 자세히 후술

 

 

그 외

  • boolean : 참/거짓
  • [] (배열)
    : PostgreSQL만의 독특한 타입 중 하나
    데이터 타입 옆에 대괄호[]를 붙여서 만들 수 있다.

 

 


Interval

시간데이터를 다룰 때 유용하게 활용할 수 있는 Interval에 대해 알아본다.


Interval이란?

  • 날짜와 시간의 간격을 표현하고 있어 date/timestamp 데이터와 함께 연산등에 활용된다
  • 표준 SQL에 포함되어있는 데이터 유형으로 다양한 DBMS에서 활용되고 있다.
    (활용방식에는 조금씩 차이가 있을 수 있다)
  • 데이터 타입이므로 변수, 매개변수, 열 등으로 사용할 수 있다.

 

 

생성하기

  • interval '' 단위  / interval '값 단위'
    : interval 키워드와 문자열로 된 값+단위 조합으로 시간간격을 생성할 수 있다.
  • 단위 종류
    - year : 년

    - month : 월
    - day : 일
    - hour : 시간
    - minute : 분
    - second : 초
    *단위는 홑따옴표 안에 쓰는경 복수형으로도 쓸 수 있다
  • 예제
    - interval '2' minute
    - interval '2 year 5 month' (여러 단위를 조합할 수 있다.)
-- 데이터를 삽입할때의 예시
CREATE TABLE my_table (my_interval INTERVAL);
INSERT INTO my_table (my_interval) VALUES (INTERVAL '1 year 2 months');

 

 

 

 

 

 

 

댓글