Adding a new column in a relational database is simple in theory. You decide the name, data type, and default value. You run ALTER TABLE ... ADD COLUMN. The database updates its schema. But the cost of that change depends on engine, indexes, and how you deploy it.
On small tables, adding a column is almost instant. On large ones with millions of rows, it can lock writes or even block reads for minutes or hours, unless you use an online schema change tool. Databases like PostgreSQL can add a nullable column without rewriting the table, but a column with a default value may still cause a full rewrite. MySQL before 8.0.12 rewrote the whole table for almost any column addition.
The safest path is backward-compatible schema changes. Add the new column as nullable, deploy code that can handle it, then backfill data in small batches. Only when data is ready should you enforce constraints or make it non-nullable. For zero-downtime systems, run migrations in steps and monitor for query plan changes.