PostgreSQL Data Types and Postgres Column Types
Text
Use text unless you need length validation
3 types
Numeric
Use integer for most things, numeric for money
6 types
Date / Time
Always use timestamptz, never bare timestamp
5 types
JSON
Use jsonb — faster and indexable
2 types
Boolean
Just use boolean
1 type
UUID
Use uuid with gen_random_uuid()
1 type
Binary
Use bytea; consider external storage for large files
1 type
Arrays
Use for small fixed lists; prefer junction tables otherwise
1 type
Special
Prefer GENERATED ALWAYS AS IDENTITY over serial
5 types
Need a Postgres column types guide?
The picker is built for quick comparisons, while the Postgres column types guide explains when to use common Postgres types, PostgreSQL types, and Postgres datatypes in real schemas.