SELECT
u.first_name AS name,
o.total_amount AS order_total
FROM users AS u
JOIN orders AS o ON o.user_id = u.id;
output
-- name | order_total
-- Alice | 149.99
Note AS is optional in most databases but improves clarity. You cannot reference a column alias in the WHERE clause of the same query — use a subquery or CTE instead.
ALTER TABLE table_name
ADD COLUMN col type constraints,
DROP COLUMN col,
ALTER COLUMN col SET DATA TYPE new_type,
ADD CONSTRAINT name constraint_definition;
example
ALTER TABLE users
ADD COLUMN phone VARCHAR(20),
ADD COLUMN updated_at TIMESTAMP;
ALTER TABLE users
ALTER COLUMN email SET NOT NULL;
ALTER TABLE users
ADD CONSTRAINT chk_email CHECK (email LIKE '%@%');
Note ALTER TABLE syntax varies across databases. PostgreSQL uses ALTER COLUMN ... TYPE. MySQL uses MODIFY COLUMN. Adding NOT NULL to a column with existing NULLs will fail — update the data first.