PostgreSQL / PostgreSQL / 3.1 Complex Datatypes
3.1Complex Datatypes
PGAdmin
- Tools to manage and inspect a Postgres DB
- Can conncect to local or remote databases
- Can view/change just about anything in PG
Postgres Server : can contain multiple databases
- All data for a single app lives in a single DB
Data Types
- Numbers
- 숫자 타입을 붙이는 데는 간단한 관습이 있음
- id : serial로
- 소수점 없음 : integer로
- 소수점 있는데 정말 정확해야함 : numeric
- 예를 들면 은행 계좌 잔액, gold gram, scientific calculation
- 소수점 있는데 그 정도는 아님 : double precision
- 예를 들면 호수의 물 liter 같은
- 소수점 없는 numeric types
- smallint : -32768 ~ + 32767
- integer : -2147583648 ~ +2147583647
- bigint : 더 큰 수
- 소수점 없지만 auto increment
- smallserial : 1 ~ 32767
- serial : 1 ~ 2147483647
- bigserial : 1 ~
- 소수점 있음
- decimal : 소수점 전까지 131072 자리수, 이후엔 16383 (아주 정확)
- numeric : 소수점 전까지 131072, 이후엔 16383 (아주 정확)
- real : 1E-37 ~ 1E37 (부동 소수점)
- double precision : 1E-307 ~ 1E308, 최소 15자리수 정확도 (부동 소수점)
- float : real / double precision과 동일 (부동 소수점)
- 숫자 타입을 붙이는 데는 간단한 관습이 있음
- Currency
- Binary
- Date/Time
- 유연한 Date : PostgreSQL은 다양한 형식의 DATE들 전부 인식
- 예를 들면, 아래는 전부 1980-11-20으로 인식
- 1980-11-20
- Nov-20-1980
- 20-Nov-1980
- 1980-November-20
- November 20, 1980
- TIME, TIME WITHOUT TIME ZONE(두 타입은 같음. TIME이 후자의 alias)
- TIME WITH TIME ZONE
- 01:23 AM EST ⇒ 01:23-05:00
- 05:23PM PST ⇒ 17:23-08:00
- 05:23PM UST ⇒ 18:23-00:00
- TIMESTAMP WITH TIME ZONE(timestamptz)
- INTERVAL : 시간 경과(duration)
- 연산이 가능하므로 DATE와 TIME과 함께 자주 사용
- Character
- CHAR(5) : 문자열 저장. (5)와 같이 저장하면 5자리 문자열로, 빈칸을 채워넣거나 자름
- VARCHAR : 문자열(길이 제한 없음)
- VARCHAR(40) : 40자리까지 지원하는 문자열로, 추가적으로 들어간 문자는 자동으로 자름
- TEXT : 문자열(길이 제한 없음)
- JSON
- Geometric
- Range
- Arrays
- Boolean
- TRUE 값 : true, ‘yes’, on, 1, t, y는 PostgreSQL에서 BOOLEAN으로 타입 지정시 TRUE로 받음
- FALSE 값 : 반대로, false, ‘no’, off, 0, f, n은 FALSE로
- NULL
- XML
- UUID