The industry's default serious database.
PostgreSQL (usually just "Postgres") is a free, open-source relational database with over 30 years of development behind it. It stores data in tables and speaks SQL, like MySQL and SQLite - but it's known for its rigor and feature depth: strict data integrity, powerful indexing, and first-class JSON support, so it handles semi-structured data nearly as well as a document database.
When developers and companies need a database that will still be the right choice at a million users, Postgres is the default answer. Every major cloud offers it as a managed service.
Choose Postgres for apps you expect to grow - it scales from a side project to serious production traffic without a migration, and its JSON columns give you flexibility when your schema is still evolving. It's the standard partner to Node.js in modern stacks. For tiny projects and learning, SQLite gets you going with zero setup; on shared hosting, MySQL is usually what's pre-installed.
TEXT, INTEGER,
TIMESTAMPTZ, JSONB…), and Postgres
enforces them - bad data gets rejected, not silently stored.
NOT NULL,
UNIQUE, and foreign keys make the database itself
guarantee your data stays consistent.
CREATE TABLE users (
id SERIAL PRIMARY KEY,
email TEXT UNIQUE NOT NULL,
settings JSONB DEFAULT '{}',
created_at TIMESTAMPTZ DEFAULT now()
);
INSERT INTO users (email, settings)
VALUES ('[email protected]', '{"theme": "dark"}');
SELECT email FROM users
WHERE settings->>'theme' = 'dark';
Note the last query: that's SQL filtering inside a JSON column - relational structure and document flexibility in one database.
psql command-line tool or a GUI
like pgAdmin, and create your first table.
pg for
Node.js or
psycopg for
Python - using parameterized
queries.
CREATE TABLE "UserAccounts" means you must write "UserAccounts" with quotes forever. Use lowercase snake_case names and skip the quotes.
TIMESTAMP instead of TIMESTAMPTZ for real-world events, which leads to time zone confusion.
You don't need to run a server yourself. Neon and Supabase offer hosted PostgreSQL with free tiers, and AWS, Google Cloud and Azure all provide managed Postgres for production. Copy the connection string into an environment variable and your app can connect from anywhere.
Our Node + Express + PostgreSQL guide builds an API on a free hosted database and deploys it.