Tutorials
Practical tutorials for the work we actually do. Pick one, read it in order, and apply it.
Connect to a database with psql and use the backslash commands to list tables and columns. After this, you can see what is inside any database you can reach.
Count rows per category with GROUP BY, sort the biggest group first and keep only large groups with HAVING. After this, one query answers a how-many-for-each question.
Find repeated values with GROUP BY and HAVING, list the full rows and catch duplicates that differ by capital letters. After this, you know what is duplicated before you delete anything.
Find the cause of the column does not exist error from the five usual ones: a typo, double quotes, an alias in WHERE, a quoted name and a missing table. After this, you can fix it in a minute instead of changing the table.
Load a CSV file into a table with the psql command copy, and read the two errors you will meet first. After this, you can import a file without writing INSERT statements.
Identify an isolated practice database, record its cluster and marker, and verify persistence through restart and container replacement before exact cleanup.
Keep customers who have no orders with LEFT JOIN, find them with IS NULL and avoid the WHERE that turns the join back into an inner join. After this, a missing match no longer removes a row from your result.
Replace SELECT * with the columns you need and see what a new column does to a query that uses the star. After this, your saved queries stop changing when the table does.
Run an UPDATE or DELETE inside a transaction, check the row count and roll back if it is wrong. After this, a missing WHERE no longer costs you the data.
See why a comparison with NULL returns no rows and fix it with IS NULL, IS DISTINCT FROM or COALESCE. After this, your WHERE clauses stop dropping rows with missing values.