실제 테이블을 만들기 전에 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|
---------
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 |
----------|
가나다라마바사아자차|
interger(정수)과 Floating-point numbers(부동 소숫점 숫자)로 나뉨int(정수), numeric(부동 소수점 숫자) 사용smallint: 2byte정수, 범위 : -32,768~32,767integer : 4byte정수, 범위 : -2,147,483,648 ~ 2.147,483,647bigint : 8byte정수numeric 또는 numeric(p,s) : 소수점 이하의 s자리수가 있는 p자리의 실수. 허용 범위가 크고 계산을 정확히 수행하는 자료형이나 다른 타입에 비해 느리다고 함(체감은 안됨). 금액 계산시 주로 사용 ! ex.numeric(10,2)` = 99999999.99smallserial, serial, bigserial 등auto_increment와 유사하게 동작함serial 타입은 시퀀스 생성기에서 자동으로 시퀀스가 생성된다.create table test_table {
auto_key serial
};
true : 1, y, t 자동 매칭false : 0, n, f 자동매칭NULL 허용box, line, circle 등의 도형타입byte, byteaxml, jsonarray