When you add a new column in SQL, you make a structural change to the table. In Postgres, MySQL, and other relational databases, ALTER TABLE is the canonical command. The syntax is simple:
ALTER TABLE table_name
ADD COLUMN column_name data_type [constraints];
The real work is in planning for production. Adding a new column with a default value on a large table can rewrite the entire dataset, causing downtime. On systems with millions of rows, this can cascade into blocked transactions and failed services. The alternative is adding the column as nullable, backfilling in small batches, then enforcing constraints.
For highly concurrent systems, you must consider locking behavior. Postgres will acquire an ACCESS EXCLUSIVE lock when adding certain types of new columns. On MySQL with InnoDB, some operations are online, but others still lock reads and writes. Always confirm in a staging environment using a dataset with realistic row counts.
Indexes on a new column require even more care. Creating an index is expensive on large data sets. In Postgres, use CREATE INDEX CONCURRENTLY to avoid blocking writes. In MySQL, look for ALGORITHM=INPLACE or ALGORITHM=INSTANT where supported.